From e480739deadeff63d2d644efaf388e6b4c1c105d Mon Sep 17 00:00:00 2001 From: Sergi Hernandez Juan <shernand@iri.upc.edu> Date: Mon, 4 May 2020 16:44:11 +0200 Subject: [PATCH] Removed all the old SVN files. --- .svn/entries | 1 - .svn/format | 1 - ...8de6d1e291d61d80180160aaa930b1078.svn-base | 52 ------- ...856af4709da5e821ec14e43f9884a0dca.svn-base | 11 -- ...c45be5a80a3f9f6f26f0b7c1584c2cf15.svn-base | 136 ---------------- ...83eff790481d78aef523f9ecb46456cf1.svn-base | 32 ---- ...0e7e0887f27d44d491be4fa1c7e814e69.svn-base | 43 ------ ...4f47019762a151de51830bad60889affb.svn-base | 105 ------------- ...1892b24fa882e60d2a386c7026074bb1e.svn-base | 144 ----------------- ...c41fce7bc267dc81e03df00c1ba0f1f1f.svn-base | 12 -- ...559b8184ac094cb3debde5ac0e5b63b1f.svn-base | 17 -- ...bb580a6e10a1dd499866acd3a86501c42.svn-base | 145 ------------------ ...4a20dffe9d1f790538215cb5b823a9ff9.svn-base | 26 ---- .svn/wc.db | Bin 45056 -> 0 bytes .svn/wc.db-journal | 0 15 files changed, 725 deletions(-) delete mode 100644 .svn/entries delete mode 100644 .svn/format delete mode 100644 .svn/pristine/03/034503d8de6d1e291d61d80180160aaa930b1078.svn-base delete mode 100644 .svn/pristine/19/1978df7856af4709da5e821ec14e43f9884a0dca.svn-base delete mode 100644 .svn/pristine/4c/4c66109c45be5a80a3f9f6f26f0b7c1584c2cf15.svn-base delete mode 100644 .svn/pristine/4f/4fde0d083eff790481d78aef523f9ecb46456cf1.svn-base delete mode 100644 .svn/pristine/5f/5fd21080e7e0887f27d44d491be4fa1c7e814e69.svn-base delete mode 100644 .svn/pristine/6b/6b1a5374f47019762a151de51830bad60889affb.svn-base delete mode 100644 .svn/pristine/83/835c28c1892b24fa882e60d2a386c7026074bb1e.svn-base delete mode 100644 .svn/pristine/93/9330238c41fce7bc267dc81e03df00c1ba0f1f1f.svn-base delete mode 100644 .svn/pristine/a6/a6f3057559b8184ac094cb3debde5ac0e5b63b1f.svn-base delete mode 100644 .svn/pristine/d1/d19fdb4bb580a6e10a1dd499866acd3a86501c42.svn-base delete mode 100644 .svn/pristine/ee/ee6111b4a20dffe9d1f790538215cb5b823a9ff9.svn-base delete mode 100644 .svn/wc.db delete mode 100644 .svn/wc.db-journal diff --git a/.svn/entries b/.svn/entries deleted file mode 100644 index 48082f7..0000000 --- a/.svn/entries +++ /dev/null @@ -1 +0,0 @@ -12 diff --git a/.svn/format b/.svn/format deleted file mode 100644 index 48082f7..0000000 --- a/.svn/format +++ /dev/null @@ -1 +0,0 @@ -12 diff --git a/.svn/pristine/03/034503d8de6d1e291d61d80180160aaa930b1078.svn-base b/.svn/pristine/03/034503d8de6d1e291d61d80180160aaa930b1078.svn-base deleted file mode 100644 index da40b5f..0000000 --- a/.svn/pristine/03/034503d8de6d1e291d61d80180160aaa930b1078.svn-base +++ /dev/null @@ -1,52 +0,0 @@ -#! /usr/bin/env python -#* All rights reserved. -#* -#* Redistribution and use in source and binary forms, with or without -#* modification, are permitted provided that the following conditions -#* are met: -#* -#* * Redistributions of source code must retain the above copyright -#* notice, this list of conditions and the following disclaimer. -#* * Redistributions in binary form must reproduce the above -#* copyright notice, this list of conditions and the following -#* disclaimer in the documentation and/or other materials provided -#* with the distribution. -#* * Neither the name of the Willow Garage nor the names of its -#* contributors may be used to endorse or promote products derived -#* from this software without specific prior written permission. -#* -#* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -#* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -#* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -#* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -#* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -#* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -#* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -#* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -#* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -#* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -#* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -#* POSSIBILITY OF SUCH DAMAGE. -#*********************************************************** - -# Author: - -PACKAGE='iri_hole_detection' -import roslib; roslib.load_manifest(PACKAGE) - -from dynamic_reconfigure.parameter_generator import * - -gen = ParameterGenerator() - -# Name Type Reconfiguration level Description Default Min Max -#gen.add("velocity_scale_factor", double_t, 0, "Maximum velocity scale factor", 0.5, 0.0, 1.0) -gen.add( "hole_min_p", int_t, 0, "No of Points to be hole (less points is a hole)", 30, 5, 200) -gen.add( "box_x", double_t, 0, "X distance hole detection zone", 0.6, 0, 1.5) -gen.add( "box_y_ini", double_t, 0, "Y distance hole detection zone", 0, -0.5, 0.5) -gen.add( "box_y_end", double_t, 0, "Initial Y hole detection zone", 0.1, -0.5, 0.5) -gen.add( "box_z_ini", double_t, 0, "Initial Z hole detection zone", 0.8, 0, 2) -gen.add( "box_z_end", double_t, 0, "Z distance hole detection zone", 0.9, 0.5, 2) - - - -exit(gen.generate(PACKAGE, "HoleDetectionAlgorithm", "HoleDetection")) diff --git a/.svn/pristine/19/1978df7856af4709da5e821ec14e43f9884a0dca.svn-base b/.svn/pristine/19/1978df7856af4709da5e821ec14e43f9884a0dca.svn-base deleted file mode 100644 index 7baf19e..0000000 --- a/.svn/pristine/19/1978df7856af4709da5e821ec14e43f9884a0dca.svn-base +++ /dev/null @@ -1,11 +0,0 @@ -\subsubsection parameters ROS parameters - -Reads and maintains the following parameters on the ROS server - -- \b "~hole_min_p" : \b [int] No of Points to be hole (less points is a hole) min: 5, default: 30, max: 200 -- \b "~box_x" : \b [double] X distance hole detection zone min: 0.0, default: 0.6, max: 1.5 -- \b "~box_y_ini" : \b [double] Y distance hole detection zone min: -0.5, default: 0.0, max: 0.5 -- \b "~box_y_end" : \b [double] Initial Y hole detection zone min: -0.5, default: 0.1, max: 0.5 -- \b "~box_z_ini" : \b [double] Initial Z hole detection zone min: 0.0, default: 0.8, max: 2.0 -- \b "~box_z_end" : \b [double] Z distance hole detection zone min: 0.5, default: 0.9, max: 2.0 - diff --git a/.svn/pristine/4c/4c66109c45be5a80a3f9f6f26f0b7c1584c2cf15.svn-base b/.svn/pristine/4c/4c66109c45be5a80a3f9f6f26f0b7c1584c2cf15.svn-base deleted file mode 100644 index 23bc740..0000000 --- a/.svn/pristine/4c/4c66109c45be5a80a3f9f6f26f0b7c1584c2cf15.svn-base +++ /dev/null @@ -1,136 +0,0 @@ -#include "hole_detection_alg_node.h" - -HoleDetectionAlgNode::HoleDetectionAlgNode(void) : - algorithm_base::IriBaseAlgorithm<HoleDetectionAlgorithm>(),hole_min_p(60),box_y_end(0),box_z_ini(1), - box_y_ini(-0.1),box_z_end(1.8),box_x(0.9) -{ - //init class attributes if necessary - //this->loop_rate_ = 2;//in [Hz] - - // [init publishers] - this->hole_obstacle_publisher_ = this->public_node_handle_.advertise<sensor_msgs::PointCloud>("hole_obstacle", 10); - this->hole_all_publisher_ = this->public_node_handle_.advertise<sensor_msgs::PointCloud2>("hole_zone", 10); - // [init subscribers] - this->input_subscriber_ = this->public_node_handle_.subscribe("input", 10, &HoleDetectionAlgNode::input_callback, this); - - - // [init services] - - // [init clients] - - // [init action servers] - - // [init action clients] -} - -HoleDetectionAlgNode::~HoleDetectionAlgNode(void) -{ - // [free dynamic memory] -} - -void HoleDetectionAlgNode::mainNodeThread(void) -{ - // [fill msg structures] - //this->PointCloud2_msg_.data = my_var; - - // [fill srv structure and make request to the server] - - // [fill action structure and make request to the action server] - - // [publish messages] -} -//PointCloud2_msg_ -/* [subscriber callbacks] */ -void HoleDetectionAlgNode::input_callback(const sensor_msgs::PointCloud2::ConstPtr& msg) -{ - ROS_INFO("HoleDetectionAlgNode::input_callback: New Message Received"); - - - - pcl::fromROSMsg (*msg, cloud_in); - -///////////////////////////////////////////////////////////////////////////////////// - pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_for (new pcl::PointCloud<pcl::PointXYZ>); - cloud_for->header.frame_id = cloud_in.header.frame_id; - cloud_for->is_dense=false; - cloud_for->header.stamp = ros::Time::now (); -///////////////////////////////////////////////////////////////////////////////////// - - //use appropiate mutex to shared variables if necessary - - this->alg_.lock(); - - cloud_in_rgb.points.resize(cloud_in.size()); - for (size_t i = 0; i < cloud_in.points.size(); i++) { - cloud_in_rgb.points[i].x = cloud_in.points[i].x; - cloud_in_rgb.points[i].y = cloud_in.points[i].y; - cloud_in_rgb.points[i].z = cloud_in.points[i].z; - cloud_in_rgb.points[i].r = 0; - cloud_in_rgb.points[i].g = 0; - cloud_in_rgb.points[i].b = 0; - } - cloud_in_rgb.header.frame_id = cloud_in.header.frame_id; - cloud_in_rgb.height = cloud_in.height; - cloud_in_rgb.width = cloud_in.width; - // cloud_in_rgb.fields= - // cloud_in_rgb.is_bigendian= - // cloud_in_rgb.point_step= - // cloud_in_rgb.row_step= - // cloud_in_rgb.is_dense= - - cloud_in_rgb.is_dense=false; - cloud_in_rgb.header.stamp = ros::Time::now (); - - hole_detect.cloud_all(hole_min_p, box_y_end, box_z_ini, box_x, box_y_ini, box_z_end, Xl, Xc, Xr, Y, cloud_in_rgb, cloud_for); - //unlock previously blocked shared variables - this->alg_.unlock(); - -/////////////////////////////////////////////////////////////////////////////////////// - - pcl::toROSMsg (*cloud_for, PointCloud2_msg_); - pcl::toROSMsg (cloud_in_rgb, PointCloud2_msg_all); - - sensor_msgs::convertPointCloud2ToPointCloud(PointCloud2_msg_, PointCloud_msg_); - - - this->hole_obstacle_publisher_.publish(this->PointCloud_msg_); - this->hole_all_publisher_.publish(this->PointCloud2_msg_all); - - //use appropiate mutex to shared variables if necessary - //this->alg_.lock(); - //this->input_mutex_.enter(); - - //std::cout << msg->data << std::endl; - - //unlock previously blocked shared variables - //this->alg_.unlock(); - //this->input_mutex_.exit(); -} - -/* [service callbacks] */ - -/* [action callbacks] */ - -/* [action requests] */ - -void HoleDetectionAlgNode::node_config_update(Config &config, uint32_t level) -{ - this->alg_.lock(); -hole_min_p=config.hole_min_p; -box_y_end=config.box_y_end; -box_z_ini=config.box_z_ini; -box_z_end=config.box_z_end; -box_y_ini=config.box_y_ini; -box_x=config.box_x; - this->alg_.unlock(); -} - -void HoleDetectionAlgNode::addNodeDiagnostics(void) -{ -} - -/* main function */ -int main(int argc,char *argv[]) -{ - return algorithm_base::main<HoleDetectionAlgNode>(argc, argv, "hole_detection_alg_node"); -} diff --git a/.svn/pristine/4f/4fde0d083eff790481d78aef523f9ecb46456cf1.svn-base b/.svn/pristine/4f/4fde0d083eff790481d78aef523f9ecb46456cf1.svn-base deleted file mode 100644 index 3c60b91..0000000 --- a/.svn/pristine/4f/4fde0d083eff790481d78aef523f9ecb46456cf1.svn-base +++ /dev/null @@ -1,32 +0,0 @@ -# Autogenerated param section. Do not hand edit. -param { -group.0 { -name=Dynamically Reconfigurable Parameters -desc=See the [[dynamic_reconfigure]] package for details on dynamically reconfigurable parameters. -0.name= ~hole_min_p -0.default= 30 -0.type= int -0.desc=No of Points to be hole (less points is a hole) Range: 5 to 200 -1.name= ~box_x -1.default= 0.6 -1.type= double -1.desc=X distance hole detection zone Range: 0.0 to 1.5 -2.name= ~box_y_ini -2.default= 0.0 -2.type= double -2.desc=Y distance hole detection zone Range: -0.5 to 0.5 -3.name= ~box_y_end -3.default= 0.1 -3.type= double -3.desc=Initial Y hole detection zone Range: -0.5 to 0.5 -4.name= ~box_z_ini -4.default= 0.8 -4.type= double -4.desc=Initial Z hole detection zone Range: 0.0 to 2.0 -5.name= ~box_z_end -5.default= 0.9 -5.type= double -5.desc=Z distance hole detection zone Range: 0.5 to 2.0 -} -} -# End of autogenerated section. You may edit below. diff --git a/.svn/pristine/5f/5fd21080e7e0887f27d44d491be4fa1c7e814e69.svn-base b/.svn/pristine/5f/5fd21080e7e0887f27d44d491be4fa1c7e814e69.svn-base deleted file mode 100644 index cdbf701..0000000 --- a/.svn/pristine/5f/5fd21080e7e0887f27d44d491be4fa1c7e814e69.svn-base +++ /dev/null @@ -1,43 +0,0 @@ -cmake_minimum_required(VERSION 2.4.6) -include($ENV{ROS_ROOT}/core/rosbuild/rosbuild.cmake) - -set(PROJECT_NAME hole_detection_alg_node) - -# Set the build type. Options are: -# Coverage : w/ debug symbols, w/o optimization, w/ code-coverage -# Debug : w/ debug symbols, w/o optimization -# Release : w/o debug symbols, w/ optimization -# RelWithDebInfo : w/ debug symbols, w/ optimization -# MinSizeRel : w/o debug symbols, w/ optimization, stripped binaries -#set(ROS_BUILD_TYPE RelWithDebInfo) - -rosbuild_init() - -#set the default path for built executables to the "bin" directory -set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) -#set the default path for built libraries to the "lib" directory -set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib) - -#uncomment if you have defined messages -#rosbuild_genmsg() -#uncomment if you have defined services -#rosbuild_gensrv() - -# added to include support for dynamic reconfiguration -rosbuild_find_ros_package(dynamic_reconfigure) -include(${dynamic_reconfigure_PACKAGE_PATH}/cmake/cfgbuild.cmake) -gencfg() -# end dynamic reconfiguration - -FIND_PACKAGE(iriutils REQUIRED) - -INCLUDE_DIRECTORIES(${iriutils_INCLUDE_DIR} ./include) - -#common commands for building c++ executables and libraries -#rosbuild_add_library(${PROJECT_NAME} src/example.cpp) -#target_link_libraries(${PROJECT_NAME} another_library) -#rosbuild_add_boost_directories() -#rosbuild_link_boost(${PROJECT_NAME} thread) -rosbuild_add_executable(${PROJECT_NAME} src/hole_detection_alg.cpp src/hole_detection_alg_node.cpp) - -target_link_libraries(${PROJECT_NAME} ${iriutils_LIBRARY}) diff --git a/.svn/pristine/6b/6b1a5374f47019762a151de51830bad60889affb.svn-base b/.svn/pristine/6b/6b1a5374f47019762a151de51830bad60889affb.svn-base deleted file mode 100644 index bdce98c..0000000 --- a/.svn/pristine/6b/6b1a5374f47019762a151de51830bad60889affb.svn-base +++ /dev/null @@ -1,105 +0,0 @@ -#include "hole_detection_alg.h" -using namespace std; - -HoleDetectionAlgorithm::HoleDetectionAlgorithm(void) -{ -} - -HoleDetectionAlgorithm::~HoleDetectionAlgorithm(void) -{ -} - -void HoleDetectionAlgorithm::config_update(Config& new_cfg, uint32_t level) -{ - this->lock(); - - // save the current configuration - this->config_=new_cfg; - - this->unlock(); -} - -// HoleDetectionAlgorithm Public API - -void HoleDetectionAlgorithm::cloud_all(int hole_min_p, float box_y_end, float box_z_ini, - float box_x, float box_y_ini, float box_z_end, - float Xl, float Xc, float Xr, float Y, - pcl::PointCloud<pcl::PointXYZRGB>& cloud_in, - pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud_for) -{ -int l=0; -int c=0; -int r=0; - - -for (size_t rowIndex=0, pointIndex=0; rowIndex<cloud_in.height; ++rowIndex) -{ - for (size_t colIndex=0; colIndex<cloud_in.width; ++colIndex, ++pointIndex) - { - if (box_y_ini < cloud_in.points[pointIndex].y && - cloud_in.points[pointIndex].y < box_y_end && - box_z_ini < cloud_in.points[pointIndex].z && - cloud_in.points[pointIndex].z < box_z_end) - { - if (-(box_x/2) < cloud_in.points[pointIndex].x && - cloud_in.points[pointIndex].x < ((box_x/3)-(box_x/2))) - { - cloud_in.points[pointIndex].r=0; - cloud_in.points[pointIndex].g=0; - cloud_in.points[pointIndex].b=255; - l=l+1; - } - if (((box_x/3)-(box_x/2)) < cloud_in.points[pointIndex].x && - cloud_in.points[pointIndex].x < ((box_x/2)-(box_x/3))) - { - cloud_in.points[pointIndex].r=0; - cloud_in.points[pointIndex].g=255; - cloud_in.points[pointIndex].b=255; - c=c+1; - } - if (((box_x/2)-(box_x/3)) < cloud_in.points[pointIndex].x && - cloud_in.points[pointIndex].x < (box_x/2)) - { - cloud_in.points[pointIndex].r=0; - cloud_in.points[pointIndex].g=127; - cloud_in.points[pointIndex].b=255; - r=r+1; - } - } - } -} - -////////////////////////////////////////////////////////////////////////////// -// Hole Point Cloud -////////////////////////////////////////////////////////////////////////////// - - -Y=-0.1; - -for (size_t rowIndex=0, pointIndex=0; rowIndex<5; ++rowIndex) -{ - Xl= -(box_x/2); - Xc= ((box_x/3)-(box_x/2)); - Xr= ((box_x/2)-(box_x/3)); - for (size_t colIndex=0; colIndex<5; ++colIndex, ++pointIndex) - { - if (l<hole_min_p) - { - cloud_for->points.push_back (pcl::PointXYZ(Xl+0.05, Y, box_z_ini)); - Xl=Xl+0.05; - } - if (c<hole_min_p) - { - cloud_for->points.push_back (pcl::PointXYZ(Xc+0.05, Y, box_z_ini)); - Xc=Xc+0.05; - } - if (r<hole_min_p) - { - cloud_for->points.push_back (pcl::PointXYZ(Xr+0.05, Y, box_z_ini)); - Xr=Xr+0.05; - } - } - Y=Y-0.05; -} - -} \ No newline at end of file diff --git a/.svn/pristine/83/835c28c1892b24fa882e60d2a386c7026074bb1e.svn-base b/.svn/pristine/83/835c28c1892b24fa882e60d2a386c7026074bb1e.svn-base deleted file mode 100644 index a9d24a0..0000000 --- a/.svn/pristine/83/835c28c1892b24fa882e60d2a386c7026074bb1e.svn-base +++ /dev/null @@ -1,144 +0,0 @@ -// Copyright (C) 2010-2011 Institut de Robotica i Informatica Industrial, CSIC-UPC. -// Author -// All rights reserved. -// -// This file is part of iri-ros-pkg -// iri-ros-pkg is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. -// -// IMPORTANT NOTE: This code has been generated through a script from the -// iri_ros_scripts. Please do NOT delete any comments to guarantee the correctness -// of the scripts. ROS topics can be easly add by using those scripts. Please -// refer to the IRI wiki page for more information: -// http://wikiri.upc.es/index.php/Robotics_Lab - -#ifndef _hole_detection_alg_h_ -#define _hole_detection_alg_h_ - -#include <iri_hole_detection/HoleDetectionConfig.h> -#include "mutex.h" - -#include <pcl_ros/point_cloud.h> -#include <pcl/ros/conversions.h> -#include <pcl/point_types.h> -#include <pcl/impl/point_types.hpp> - - -using namespace pcl; -using namespace std; -//include hole_detection_alg main library - -/** - * \brief IRI ROS Specific Driver Class - * - * - */ -class HoleDetectionAlgorithm -{ - protected: - /** - * \brief define config type - * - * Define a Config type with the HoleDetectionConfig. All driver implementations - * will then use the same variable type Config. - */ - CMutex alg_mutex_; - - // private attributes and methods - int hole_min_p; - float box_y_end,box_z_ini,box_x,box_y_ini,box_z_end,Xl,Xc,Xr,Y; - pcl::PointCloud<pcl::PointXYZRGB> cloud_in; - pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_for; - public: - /** - * \brief define config type - * - * Define a Config type with the HoleDetectionConfig. All driver implementations - * will then use the same variable type Config. - */ - typedef iri_hole_detection::HoleDetectionConfig Config; - - /** - * \brief config variable - * - * This variable has all the driver parameters defined in the cfg config file. - * Is updated everytime function config_update() is called. - */ - Config config_; - - /** - * \brief constructor - * - * In this constructor parameters related to the specific driver can be - * initalized. Those parameters can be also set in the openDriver() function. - * Attributes from the main node driver class IriBaseDriver such as loop_rate, - * may be also overload here. - */ - HoleDetectionAlgorithm(void); - - /** - * \brief Lock Algorithm - * - * Locks access to the Algorithm class - */ - void lock(void) { alg_mutex_.enter(); }; - - /** - * \brief Unlock Algorithm - * - * Unlocks access to the Algorithm class - */ - void unlock(void) { alg_mutex_.exit(); }; - - /** - * \brief Tries Access to Algorithm - * - * Tries access to Algorithm - * - * \return true if the lock was adquired, false otherwise - */ - bool try_enter(void) { return alg_mutex_.try_enter(); }; - - /** - * \brief config update - * - * In this function the driver parameters must be updated with the input - * config variable. Then the new configuration state will be stored in the - * Config attribute. - * - * \param new_cfg the new driver configuration state - * - * \param level level in which the update is taken place - */ - void config_update(Config& new_cfg, uint32_t level=0); - - // here define all hole_detection_alg interface methods to retrieve and set - // the driver parameters - - /** - * \brief Destructor - * - * This destructor is called when the object is about to be destroyed. - * - */ - ~HoleDetectionAlgorithm(void); - - void cloud_all(int hole_min_p, float box_y_end, float box_z_ini, - float box_x, float box_y_ini, float box_z_end, - float Xl, float Xc, float Xr, float Y, - pcl::PointCloud<pcl::PointXYZRGB>& cloud_in, - pcl::PointCloud<pcl::PointXYZ>::Ptr& cloud_out); - -}; - -#endif diff --git a/.svn/pristine/93/9330238c41fce7bc267dc81e03df00c1ba0f1f1f.svn-base b/.svn/pristine/93/9330238c41fce7bc267dc81e03df00c1ba0f1f1f.svn-base deleted file mode 100644 index 426411e..0000000 --- a/.svn/pristine/93/9330238c41fce7bc267dc81e03df00c1ba0f1f1f.svn-base +++ /dev/null @@ -1,12 +0,0 @@ -\subsubsection usage Usage -\verbatim -<node name="HoleDetectionAlgorithm" pkg="iri_hole_detection" type="HoleDetectionAlgorithm"> - <param name="hole_min_p" type="int" value="30" /> - <param name="box_x" type="double" value="0.6" /> - <param name="box_y_ini" type="double" value="0.0" /> - <param name="box_y_end" type="double" value="0.1" /> - <param name="box_z_ini" type="double" value="0.8" /> - <param name="box_z_end" type="double" value="0.9" /> -</node> -\endverbatim - diff --git a/.svn/pristine/a6/a6f3057559b8184ac094cb3debde5ac0e5b63b1f.svn-base b/.svn/pristine/a6/a6f3057559b8184ac094cb3debde5ac0e5b63b1f.svn-base deleted file mode 100644 index a4cd4fc..0000000 --- a/.svn/pristine/a6/a6f3057559b8184ac094cb3debde5ac0e5b63b1f.svn-base +++ /dev/null @@ -1,17 +0,0 @@ -<package> - <description brief="iri_hole_detection"> - - iri_hole_detection - - </description> - <author>asantamaria</author> - <license>LGPL</license> - <review status="unreviewed" notes=""/> - <url>http://ros.org/wiki/iri_hole_detection</url> - <depend package="roscpp"/> - <depend package="iri_base_algorithm"/> - <depend package="sensor_msgs"/> - <depend package="pcl_ros"/> -</package> - - diff --git a/.svn/pristine/d1/d19fdb4bb580a6e10a1dd499866acd3a86501c42.svn-base b/.svn/pristine/d1/d19fdb4bb580a6e10a1dd499866acd3a86501c42.svn-base deleted file mode 100644 index bdc9912..0000000 --- a/.svn/pristine/d1/d19fdb4bb580a6e10a1dd499866acd3a86501c42.svn-base +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright (C) 2010-2011 Institut de Robotica i Informatica Industrial, CSIC-UPC. -// Author -// All rights reserved. -// -// This file is part of iri-ros-pkg -// iri-ros-pkg is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. -// -// IMPORTANT NOTE: This code has been generated through a script from the -// iri_ros_scripts. Please do NOT delete any comments to guarantee the correctness -// of the scripts. ROS topics can be easly add by using those scripts. Please -// refer to the IRI wiki page for more information: -// http://wikiri.upc.es/index.php/Robotics_Lab - -#ifndef _hole_detection_alg_node_h_ -#define _hole_detection_alg_node_h_ - -#include <iri_base_algorithm/iri_base_algorithm.h> -#include "hole_detection_alg.h" - -#include <ros/ros.h> -//#include <ros/publisher.h> - -#include <pcl_ros/point_cloud.h> -#include <pcl/ros/conversions.h> -#include <pcl/point_types.h> - - - -// [publisher subscriber headers] -#include <sensor_msgs/PointCloud2.h> -#include <sensor_msgs/PointCloud.h> -#include <sensor_msgs/point_cloud_conversion.h> -// [service client headers] - -// [action server client headers] - -using namespace std; - -/** - * \brief IRI ROS Specific Algorithm Class - * - */ -class HoleDetectionAlgNode : public algorithm_base::IriBaseAlgorithm<HoleDetectionAlgorithm> -{ - private: - - int hole_min_p; - float box_y_end,box_z_ini,box_y_ini,box_z_end,box_x,Xl,Xc,Xr,Y; -// bool L,C,R; - - // [publisher attributes] - ros::Publisher hole_obstacle_publisher_; - sensor_msgs::PointCloud2 PointCloud2_msg_; - sensor_msgs::PointCloud PointCloud_msg_; - - - ros::Publisher hole_all_publisher_; - sensor_msgs::PointCloud2 PointCloud2_msg_all; - pcl::PointCloud<pcl::PointXYZ> cloud_in; - pcl::PointCloud<pcl::PointXYZRGB> cloud_in_rgb; - - // [subscriber attributes] - ros::Subscriber input_subscriber_; - void input_callback(const sensor_msgs::PointCloud2::ConstPtr& msg); - CMutex input_mutex_; - - // [service attributes] - - // [client attributes] - - // [action server attributes] - HoleDetectionAlgorithm hole_detect; - // [action client attributes] - - public: - /** - * \brief Constructor - * - * This constructor initializes specific class attributes and all ROS - * communications variables to enable message exchange. - */ - HoleDetectionAlgNode(void); - - /** - * \brief Destructor - * - * This destructor frees all necessary dynamic memory allocated within this - * this class. - */ - ~HoleDetectionAlgNode(void); - - protected: - /** - * \brief main node thread - * - * This is the main thread node function. Code written here will be executed - * in every node loop while the algorithm is on running state. Loop frequency - * can be tuned by modifying loop_rate attribute. - * - * Here data related to the process loop or to ROS topics (mainly data structs - * related to the MSG and SRV files) must be updated. ROS publisher objects - * must publish their data in this process. ROS client servers may also - * request data to the corresponding server topics. - */ - void mainNodeThread(void); - - /** - * \brief dynamic reconfigure server callback - * - * This method is called whenever a new configuration is received through - * the dynamic reconfigure. The derivated generic algorithm class must - * implement it. - * - * \param config an object with new configuration from all algorithm - * parameters defined in the config file. - * \param level integer referring the level in which the configuration - * has been changed. - */ - void node_config_update(Config &config, uint32_t level); - - /** - * \brief node add diagnostics - * - * In this abstract function additional ROS diagnostics applied to the - * specific algorithms may be added. - */ - void addNodeDiagnostics(void); - - // [diagnostic functions] - - // [test functions] -}; - -#endif diff --git a/.svn/pristine/ee/ee6111b4a20dffe9d1f790538215cb5b823a9ff9.svn-base b/.svn/pristine/ee/ee6111b4a20dffe9d1f790538215cb5b823a9ff9.svn-base deleted file mode 100644 index 1884406..0000000 --- a/.svn/pristine/ee/ee6111b4a20dffe9d1f790538215cb5b823a9ff9.svn-base +++ /dev/null @@ -1,26 +0,0 @@ -/** -\mainpage -\htmlinclude manifest.html - -\b iri_hole_detection is ... - -<!-- -Provide an overview of your package. ---> - - -\section codeapi Code API - -<!-- -Provide links to specific auto-generated API documentation within your -package that is of particular interest to a reader. Doxygen will -document pretty much every part of your code, so do your best here to -point the reader to the actual API. - -If your codebase is fairly large or has different sets of APIs, you -should use the doxygen 'group' tag to keep these APIs together. For -example, the roscpp documentation has 'libros' group. ---> - - -*/ diff --git a/.svn/wc.db b/.svn/wc.db deleted file mode 100644 index b44250c25b539205dcf02775f549a78d550f2c72..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45056 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 diff --git a/.svn/wc.db-journal b/.svn/wc.db-journal deleted file mode 100644 index e69de29..0000000 -- GitLab