diff --git a/homer_map_manager/CMakeLists.txt b/homer_map_manager/CMakeLists.txt index 741238e265969e5c818f33c5f2571caf9ba7290d..c659d0ab71d24a20af827740223eeada98e16713 100644 --- a/homer_map_manager/CMakeLists.txt +++ b/homer_map_manager/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8.3) project(homer_map_manager) -find_package(catkin REQUIRED COMPONENTS roscpp roslib tf homer_mapnav_msgs homer_nav_libs cmake_modules homer_tools) +find_package(catkin REQUIRED COMPONENTS roscpp roslib tf homer_mapnav_msgs homer_nav_libs cmake_modules std_srvs) find_package( Eigen3 REQUIRED ) @@ -24,23 +24,29 @@ set(Managers_SRC src/Managers/RoiManager.cpp ) -add_library(Managers ${Managers_SRC}) -target_link_libraries(Managers image_io) -add_dependencies(Managers homer_mapnav_msgs_gencpp) +add_library(homerManagers ${Managers_SRC}) +target_link_libraries(homerManagers homerImage_io) +add_dependencies(homerManagers ${catkin_EXPORTED_TARGETS}) -add_library(image_io +add_library(homerImage_io src/MapIO/image_loader.cpp src/MapIO/map_saver.cpp src/MapIO/map_loader.cpp ) -target_link_libraries(image_io SDL SDL_image yaml-cpp) -add_dependencies(image_io homer_mapnav_msgs_gencpp) +target_link_libraries(homerImage_io SDL SDL_image yaml-cpp) +add_dependencies(homerImage_io ${catkin_EXPORTED_TARGETS}) catkin_package( INCLUDE_DIRS include CATKIN_DEPENDS roscpp + roslib + tf + homer_mapnav_msgs + homer_nav_libs + std_srvs + LIBRARIES homerImage_io homerManagers ) add_executable(map_manager src/map_manager_node.cpp) @@ -48,11 +54,21 @@ add_executable(map_manager src/map_manager_node.cpp) target_link_libraries( map_manager ${catkin_LIBRARIES} - Managers - image_io + homerManagers + homerImage_io ) add_dependencies( map_manager ${catkin_EXPORTED_TARGETS} ) + +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +) + +install(TARGETS homerManagers homerImage_io map_manager + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) diff --git a/homer_map_manager/include/homer_map_manager/map_manager_node.h b/homer_map_manager/include/homer_map_manager/map_manager_node.h index 19873a71d68023ff671823e7ee0b81305a59b86f..1346403661d77d4c5dec2746745ec6366eae1c3f 100644 --- a/homer_map_manager/include/homer_map_manager/map_manager_node.h +++ b/homer_map_manager/include/homer_map_manager/map_manager_node.h @@ -28,7 +28,6 @@ #include <homer_map_manager/MapIO/map_saver.h> #include <homer_map_manager/MapIO/map_loader.h> -#include <homer_tools/loadRosConfig.h> #include <homer_nav_libs/tools.h> /** @class MapManagerNode diff --git a/homer_map_manager/package.xml b/homer_map_manager/package.xml index 2d4deb6857025661763730898605e6e935c0807f..c2e2b2bdc4b1a69f13fe336e30fc5fda33988340 100644 --- a/homer_map_manager/package.xml +++ b/homer_map_manager/package.xml @@ -1,6 +1,6 @@ <package> <name>homer_map_manager</name> - <version>1.0.0</version> + <version>0.1.0</version> <description> map_manager </description> @@ -15,14 +15,23 @@ <build_depend>tf</build_depend> <build_depend>homer_mapnav_msgs</build_depend> <build_depend>homer_nav_libs</build_depend> - <build_depend>homer_tools</build_depend> + <build_depend>cmake_modules</build_depend> + <build_depend>eigen</build_depend> + <build_depend>sdl</build_depend> + <build_depend>sdl-image</build_depend> + <build_depend>yaml-cpp</build_depend> + <build_depend>std_srvs</build_depend> <run_depend>roscpp</run_depend> <run_depend>roslib</run_depend> <run_depend>tf</run_depend> <run_depend>homer_mapnav_msgs</run_depend> <run_depend>homer_nav_libs</run_depend> - <run_depend>homer_tools</run_depend> + <run_depend>eigen</run_depend> + <run_depend>sdl</run_depend> + <run_depend>sdl-image</run_depend> + <run_depend>yaml-cpp</run_depend> + <run_depend>std_srvs</run_depend> </package> diff --git a/homer_map_manager/src/map_manager_node.cpp b/homer_map_manager/src/map_manager_node.cpp index 252e7281bd6713e3085b84a88c914a609aebb75c..59bca4741e4c1462c7f7b7592a12736a7c424924 100644 --- a/homer_map_manager/src/map_manager_node.cpp +++ b/homer_map_manager/src/map_manager_node.cpp @@ -7,10 +7,10 @@ MapManagerNode::MapManagerNode(ros::NodeHandle *nh) int mapSize; float resolution; - loadConfigValue("/homer_mapping/size", mapSize, (int) 35); - loadConfigValue("/homer_mapping/resolution", resolution, (float) 0.05); - loadConfigValue("/map_manager/roi_updates", m_roi_polling, (bool) false); - loadConfigValue("/map_manager/roi_polling_time", m_roi_polling_time, (float) 0.5); + ros::param::param("/homer_mapping/size", mapSize, (int) 35); + ros::param::param("/homer_mapping/resolution", resolution, (float) 0.05); + ros::param::param("/map_manager/roi_updates", m_roi_polling, (bool) false); + ros::param::param("/map_manager/roi_polling_time", m_roi_polling_time, (float) 0.5); m_lastROIPoll = ros::Time::now(); m_MapManager = new MapManager(nh); m_POIManager = new PoiManager(nh); @@ -66,7 +66,7 @@ MapManagerNode::MapManagerNode(ros::NodeHandle *nh) //load map file from config if present std::string mapfile; - loadConfigValue("/map_manager/default_mapfile", mapfile); + ros::param::get("/map_manager/default_mapfile", mapfile); if(mapfile != "") { std_msgs::String::Ptr mapfileMsg(new std_msgs::String); diff --git a/homer_mapnav_msgs/package.xml b/homer_mapnav_msgs/package.xml index 7c319ec91d3a14fd4b54a47d93e6c508a334d873..536fe91ff3c3eacdf9d3a5fcc5c275b17527c50d 100644 --- a/homer_mapnav_msgs/package.xml +++ b/homer_mapnav_msgs/package.xml @@ -1,6 +1,6 @@ <package> <name>homer_mapnav_msgs</name> - <version>1.0.0</version> + <version>0.1.0</version> <description> homer_mapnav_msgs contains the messages used for mapping and navigation </description> <maintainer email="vseib@uni-koblenz.de">Viktor Seib</maintainer> diff --git a/homer_mapping/CMakeLists.txt b/homer_mapping/CMakeLists.txt index c76eaafb84b88a6f3f0e3af882b13fb33b3d7ec5..fee377dbe23c1855cd1eeb04aca4b04917147b73 100644 --- a/homer_mapping/CMakeLists.txt +++ b/homer_mapping/CMakeLists.txt @@ -10,14 +10,12 @@ find_package( homer_nav_libs tf roslib - homer_tools ) find_package(OpenMP) if (OPENMP_FOUND) set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") endif() -find_package(Qt4 COMPONENTS QtCore QtGui REQUIRED) find_package(tf REQUIRED) set(CMAKE_BUILD_TYPE Release) @@ -26,7 +24,6 @@ set(CMAKE_BUILD_TYPE Release) include_directories( include ${catkin_INCLUDE_DIRS} - ${QT_INCLUDE_DIR} ) catkin_package( @@ -35,20 +32,20 @@ catkin_package( roscpp homer_mapnav_msgs homer_nav_libs + nav_msgs + tf + roslib + LIBRARIES homerOccupancyMap homerParticleFilter ) -include(${QT_USE_FILE}) -add_definitions(${QT_DEFINITIONS}) - -add_library( OccupancyMap +add_library(homerOccupancyMap src/OccupancyMap/OccupancyMap.cpp ) target_link_libraries( - OccupancyMap + homerOccupancyMap ${catkin_LIBRARIES} - ${QT_LIBRARIES} ${tf_LIBRARIES} ) set( @@ -60,12 +57,12 @@ set( ) add_library( - ParticleFilter + homerParticleFilter ${ParticleFilter_SRC} ) target_link_libraries( - ParticleFilter + homerParticleFilter ${catkin_LIBRARIES} ) @@ -74,11 +71,21 @@ add_executable(homer_mapping src/slam_node.cpp) target_link_libraries( homer_mapping ${catkin_LIBRARIES} - ParticleFilter - OccupancyMap + homerParticleFilter + homerOccupancyMap ) add_dependencies( homer_mapping ${catkin_EXPORTED_TARGETS} ) + +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +) + +install(TARGETS homerOccupancyMap homerParticleFilter homer_mapping + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) diff --git a/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h b/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h index e12e13fcda5eab612168b6aebe456ced274c15bf..a712fb390b06c70a7a311674f4ca6492fdb32a6e 100644 --- a/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h +++ b/homer_mapping/include/homer_mapping/ParticleFilter/SlamFilter.h @@ -11,8 +11,6 @@ #include <homer_nav_libs/Math/Transformation2D.h> #include <homer_nav_libs/Math/Math.h> -#include <homer_tools/loadRosConfig.h> - #include <tf/transform_broadcaster.h> #include <cmath> diff --git a/homer_mapping/include/homer_mapping/slam_node.h b/homer_mapping/include/homer_mapping/slam_node.h index 1505c91644ca56605fb3ff1bf9e2410e46d14c5a..5e4081a4a76ad6282cdbf92b55cbe2d40260fdec 100644 --- a/homer_mapping/include/homer_mapping/slam_node.h +++ b/homer_mapping/include/homer_mapping/slam_node.h @@ -27,8 +27,6 @@ #include <nav_msgs/OccupancyGrid.h> #include <tf/tf.h> -#include <homer_tools/loadRosConfig.h> - #include <homer_mapping/ParticleFilter/SlamFilter.h> #include <homer_mapping/ParticleFilter/HyperSlamFilter.h> #include <homer_nav_libs/Math/Box2D.h> diff --git a/homer_mapping/package.xml b/homer_mapping/package.xml index ddc937338cb82fc635ec749fcb1a7bf2ae012c8d..aca809027328e2e9f94b3ff3687a24a454f73d67 100644 --- a/homer_mapping/package.xml +++ b/homer_mapping/package.xml @@ -1,6 +1,6 @@ <package> <name>homer_mapping</name> - <version>1.0.0</version> + <version>0.1.0</version> <description> homer_mapping @@ -18,9 +18,8 @@ <build_depend>tf</build_depend> <build_depend>roslib</build_depend> <build_depend>homer_nav_libs</build_depend> - <build_depend>homer_mapnav_msgs</build_depend> - <build_depend>homer_tools</build_depend> + <build_depend>cmake_modules</build_depend> <run_depend>std_msgs</run_depend> @@ -30,7 +29,6 @@ <run_depend>tf</run_depend> <run_depend>roslib</run_depend> <run_depend>homer_nav_libs</run_depend> - <run_depend>homer_mapnav_msgs</run_depend> - <run_depend>homer_tools</run_depend> + </package> diff --git a/homer_mapping/src/OccupancyMap/OccupancyMap.cpp b/homer_mapping/src/OccupancyMap/OccupancyMap.cpp index d6359f24b64dcc7658d8f3a796facebf83da6acb..5ab3b94abed4e9300c1a11f610ba049548303356 100644 --- a/homer_mapping/src/OccupancyMap/OccupancyMap.cpp +++ b/homer_mapping/src/OccupancyMap/OccupancyMap.cpp @@ -14,7 +14,6 @@ #include <tf/transform_listener.h> #include <homer_mapnav_msgs/ModifyMap.h> -#include <homer_tools/loadRosConfig.h> #include <homer_nav_libs/tools.h> //uncomment this to get extended information on the tracer @@ -91,9 +90,9 @@ OccupancyMap::~OccupancyMap() void OccupancyMap::initMembers() { float mapSize; - loadConfigValue("/homer_mapping/size", mapSize); - loadConfigValue("/homer_mapping/resolution", m_Resolution); - loadConfigValue("/homer_mapping/max_laser", m_LaserMaxRange, (float) 8.0); + ros::param::get("/homer_mapping/size", mapSize); + ros::param::get("/homer_mapping/resolution", m_Resolution); + ros::param::param("/homer_mapping/max_laser", m_LaserMaxRange, (float) 8.0); //add one safety pixel m_PixelSize = mapSize / m_Resolution + 1; @@ -106,10 +105,10 @@ void OccupancyMap::initMembers() m_Origin.orientation.y = 0.0; m_Origin.orientation.z = 0.0; - loadConfigValue("/homer_mapping/backside_checking", m_BacksideChecking); - loadConfigValue("/homer_mapping/obstacle_borders", m_ObstacleBorders); - loadConfigValue("/homer_mapping/measure_sampling_step", m_MeasureSamplingStep); - loadConfigValue("/homer_mapping/laser_scanner/free_reading_distance", m_FreeReadingDistance); + ros::param::get("/homer_mapping/backside_checking", m_BacksideChecking); + ros::param::get("/homer_mapping/obstacle_borders", m_ObstacleBorders); + ros::param::get("/homer_mapping/measure_sampling_step", m_MeasureSamplingStep); + ros::param::get("/homer_mapping/laser_scanner/free_reading_distance", m_FreeReadingDistance); m_OccupancyProbability = new float[m_ByteSize]; m_MeasurementCount = new unsigned short[m_ByteSize]; @@ -158,7 +157,7 @@ OccupancyMap& OccupancyMap::operator= ( const OccupancyMap & occupancyMap ) m_PixelSize = occupancyMap.m_PixelSize; m_ByteSize = occupancyMap.m_ByteSize; - loadConfigValue("/homer_mapping/backside_checking", m_BacksideChecking); + ros::param::get("/homer_mapping/backside_checking", m_BacksideChecking); // re-allocate all arrays m_OccupancyProbability = new float[m_ByteSize]; diff --git a/homer_mapping/src/ParticleFilter/SlamFilter.cpp b/homer_mapping/src/ParticleFilter/SlamFilter.cpp index 33c280494170e39dbeee4f2ba53a9d2f3e3a0ac2..628ae187df2b2ea8d1bb131a3ac8c12083de87b6 100644 --- a/homer_mapping/src/ParticleFilter/SlamFilter.cpp +++ b/homer_mapping/src/ParticleFilter/SlamFilter.cpp @@ -20,23 +20,23 @@ SlamFilter::SlamFilter ( int particleNum ) : ParticleFilter<SlamParticle> ( part } float rotationErrorRotating = 0.0; - loadConfigValue("/particlefilter/error_values/rotation_error_rotating", rotationErrorRotating); + ros::param::get("/particlefilter/error_values/rotation_error_rotating", rotationErrorRotating); float rotationErrorTranslating = 0.0; - loadConfigValue("/particlefilter/error_values/rotation_error_translating", rotationErrorTranslating); + ros::param::get("/particlefilter/error_values/rotation_error_translating", rotationErrorTranslating); float translationErrorTranslating = 0.0; - loadConfigValue("/particlefilter/error_values/translation_error_translating", translationErrorTranslating); + ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorTranslating); float translationErrorRotating = 0.0; - loadConfigValue("/particlefilter/error_values/translation_error_translating", translationErrorRotating); + ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorRotating); float moveJitterWhileTurning = 0.0; - loadConfigValue("/particlefilter/error_values/move_jitter_while_turning", moveJitterWhileTurning); - loadConfigValue("/particlefilter/max_rotation_per_second", m_MaxRotationPerSecond); + ros::param::get("/particlefilter/error_values/move_jitter_while_turning", moveJitterWhileTurning); + ros::param::get("/particlefilter/max_rotation_per_second", m_MaxRotationPerSecond); int updateMinMoveAngleDegrees; - loadConfigValue("/particlefilter/update_min_move_angle", updateMinMoveAngleDegrees); + ros::param::get("/particlefilter/update_min_move_angle", updateMinMoveAngleDegrees); m_UpdateMinMoveAngle = Math::deg2Rad(updateMinMoveAngleDegrees); - loadConfigValue("/particlefilter/update_min_move_dist", m_UpdateMinMoveDistance); + ros::param::get("/particlefilter/update_min_move_dist", m_UpdateMinMoveDistance); double maxUpdateInterval; - loadConfigValue("/particlefilter/max_update_interval", maxUpdateInterval); + ros::param::get("/particlefilter/max_update_interval", maxUpdateInterval); m_MaxUpdateInterval = ros::Duration(maxUpdateInterval); setRotationErrorRotating ( rotationErrorRotating ); @@ -77,23 +77,23 @@ SlamFilter::SlamFilter ( SlamFilter& slamFilter ) : ParticleFilter<SlamParticle> } float rotationErrorRotating = 0.0; - loadConfigValue("/particlefilter/error_values/rotation_error_rotating", rotationErrorRotating); + ros::param::get("/particlefilter/error_values/rotation_error_rotating", rotationErrorRotating); float rotationErrorTranslating = 0.0; - loadConfigValue("/particlefilter/error_values/rotation_error_translating", rotationErrorTranslating); + ros::param::get("/particlefilter/error_values/rotation_error_translating", rotationErrorTranslating); float translationErrorTranslating = 0.0; - loadConfigValue("/particlefilter/error_values/translation_error_translating", translationErrorTranslating); + ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorTranslating); float translationErrorRotating = 0.0; - loadConfigValue("/particlefilter/error_values/translation_error_translating", translationErrorRotating); + ros::param::get("/particlefilter/error_values/translation_error_translating", translationErrorRotating); float moveJitterWhileTurning = 0.0; - loadConfigValue("/particlefilter/error_values/move_jitter_while_turning", moveJitterWhileTurning); - loadConfigValue("/particlefilter/max_rotation_per_second", m_MaxRotationPerSecond); + ros::param::get("/particlefilter/error_values/move_jitter_while_turning", moveJitterWhileTurning); + ros::param::get("/particlefilter/max_rotation_per_second", m_MaxRotationPerSecond); int updateMinMoveAngleDegrees; - loadConfigValue("/particlefilter/update_min_move_angle", updateMinMoveAngleDegrees); + ros::param::get("/particlefilter/update_min_move_angle", updateMinMoveAngleDegrees); m_UpdateMinMoveAngle = Math::deg2Rad(updateMinMoveAngleDegrees); - loadConfigValue("/particlefilter/update_min_move_dist", m_UpdateMinMoveDistance); + ros::param::get("/particlefilter/update_min_move_dist", m_UpdateMinMoveDistance); double maxUpdateInterval; - loadConfigValue("/particlefilter/max_update_interval", maxUpdateInterval); + ros::param::get("/particlefilter/max_update_interval", maxUpdateInterval); m_MaxUpdateInterval = ros::Duration(maxUpdateInterval); setRotationErrorRotating ( rotationErrorRotating ); diff --git a/homer_mapping/src/slam_node.cpp b/homer_mapping/src/slam_node.cpp index 9b906130f34db04ea4480cc6f5c79d4be8605dba..c80692b22b0c147b9c4fbad1a0407681a3589ff4 100644 --- a/homer_mapping/src/slam_node.cpp +++ b/homer_mapping/src/slam_node.cpp @@ -44,17 +44,17 @@ SlamNode::SlamNode(ros::NodeHandle* nh) void SlamNode::init() { double waitTime; - loadConfigValue("/particlefilter/wait_time", waitTime); + ros::param::get("/particlefilter/wait_time", waitTime); m_WaitDuration = ros::Duration(waitTime); - loadConfigValue("/selflocalization/scatter_var_xy", m_ScatterVarXY); - loadConfigValue("/selflocalization/scatter_var_theta", m_ScatterVarTheta); + ros::param::get("/selflocalization/scatter_var_xy", m_ScatterVarXY); + ros::param::get("/selflocalization/scatter_var_theta", m_ScatterVarTheta); m_DoMapping = true; int particleNum; - loadConfigValue("/particlefilter/particle_num", particleNum); + ros::param::get("/particlefilter/particle_num", particleNum); int particleFilterNum; - loadConfigValue("/particlefilter/hyper_slamfilter/particlefilter_num", particleFilterNum); + ros::param::get("/particlefilter/hyper_slamfilter/particlefilter_num", particleFilterNum); m_HyperSlamFilter = new HyperSlamFilter ( particleFilterNum, particleNum ); m_ReferenceOdometryTime = ros::Time(0); diff --git a/homer_nav_libs/CMakeLists.txt b/homer_nav_libs/CMakeLists.txt index bc5efcbdee0285fcb90016c8c8015e9648c43ada..c368217131a707cfd9ab2e79a104523cbea855d1 100644 --- a/homer_nav_libs/CMakeLists.txt +++ b/homer_nav_libs/CMakeLists.txt @@ -32,3 +32,13 @@ add_library(homerMappingMath src/Math/Math.cpp src/Math/Point2D.cpp ) + +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +) + +install(TARGETS homerExplorer homerMappingMath + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) diff --git a/homer_nav_libs/package.xml b/homer_nav_libs/package.xml index 117158f9d71a6c33c58212db1d2ec5d69010600d..ab43684c6615fe0d0c149b7893ea9d605c1b055e 100644 --- a/homer_nav_libs/package.xml +++ b/homer_nav_libs/package.xml @@ -1,7 +1,7 @@ <?xml version="1.0"?> <package> <name>homer_nav_libs</name> - <version>1.0.0</version> + <version>0.1.0</version> <description>The nav_libs package</description> <maintainer email="vseib@uni-koblenz.de">Viktor Seib</maintainer> @@ -12,8 +12,12 @@ <build_depend>geometry_msgs</build_depend> <build_depend>roscpp</build_depend> <build_depend>tf</build_depend> + <build_depend>cmake_modules</build_depend> + <build_depend>eigen</build_depend> + <run_depend>roscpp</run_depend> <run_depend>geometry_msgs</run_depend> <run_depend>tf</run_depend> + <run_depend>eigen</run_depend> </package> diff --git a/homer_nav_libs/src/SpeedControl/SpeedControl.cpp b/homer_nav_libs/src/SpeedControl/SpeedControl.cpp index ddb72a945d81ddbc10f1c5efe00b5c8e37555d39..c939197e0c3cf63ad6142b350b711ee7210e8e68 100644 --- a/homer_nav_libs/src/SpeedControl/SpeedControl.cpp +++ b/homer_nav_libs/src/SpeedControl/SpeedControl.cpp @@ -38,10 +38,10 @@ namespace { inline Eigen::AlignedBox2f loadRect(const string& path) { pair<float, float> pX, pY; - loadConfigValue(path + "/x_min", pX.first); - loadConfigValue(path + "/x_max", pX.second); - loadConfigValue(path + "/y_min", pY.first); - loadConfigValue(path + "/y_max", pY.second); + ros::param::get(path + "/x_min", pX.first); + ros::param::get(path + "/x_max", pX.second); + ros::param::get(path + "/y_min", pY.first); + ros::param::get(path + "/y_max", pY.second); Eigen::Vector2f first(pX.first, pY.first), second(pX.second, pY.second); return Eigen::AlignedBox2f(first, second); @@ -52,10 +52,10 @@ void SpeedControl::loadDimensions() { InnerDangerZone = loadRect("/homer_navigation/speed_control/inner_danger_zone"); InnerDangerZoneFactor; - loadConfigValue("/homer_navigation/speed_control/inner_danger_zone/speed_factor", InnerDangerZoneFactor); + ros::param::get("/homer_navigation/speed_control/inner_danger_zone/speed_factor", InnerDangerZoneFactor); OuterDangerZone = loadRect("/homer_navigation/speed_control/inner_danger_zone"); OuterDangerZoneFactor; - loadConfigValue("/homer_navigation/speed_control/outer_danger_zone/speed_factor", OuterDangerZoneFactor); + ros::param::get("/homer_navigation/speed_control/outer_danger_zone/speed_factor", OuterDangerZoneFactor); if(!OuterDangerZone.contains(InnerDangerZone)) ROS_WARN_STREAM("InnerDangerZone is not contained in OuterDangerZone"); } diff --git a/homer_navigation/CMakeLists.txt b/homer_navigation/CMakeLists.txt index 98245afb8d96f627caafe69727ed45a85218393b..94d0330758a5587db154479761e9d08fe3ee6a42 100644 --- a/homer_navigation/CMakeLists.txt +++ b/homer_navigation/CMakeLists.txt @@ -5,14 +5,12 @@ find_package(catkin REQUIRED COMPONENTS roscpp roslib homer_robbie_architecture - homer_robot_platform nav_msgs sensor_msgs homer_mapnav_msgs homer_nav_libs tf cmake_modules - homer_tools ) find_package(Eigen3 REQUIRED) @@ -21,6 +19,15 @@ set(CMAKE_BUILD_TYPE Release) catkin_package( INCLUDE_DIRS include + CATKIN_DEPENDS + roscpp + roslib + homer_robbie_architecture + nav_msgs + sensor_msgs + homer_mapnav_msgs + homer_nav_libs + tf ) include_directories( @@ -36,3 +43,13 @@ target_link_libraries(homer_navigation ${catkin_LIBRARIES} ${EIGEN3_LIBRARIES} ) + +install(DIRECTORY include/${PROJECT_NAME}/ + DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} +) + +install(TARGETS homer_navigation + ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} + RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} +) diff --git a/homer_navigation/include/homer_navigation/homer_navigation_node.h b/homer_navigation/include/homer_navigation/homer_navigation_node.h index cc3b4391c0e094b5964f5f42f7c3780b0e1b1ac9..a273994b08baa58b6c89c1369f94c5754e144515 100644 --- a/homer_navigation/include/homer_navigation/homer_navigation_node.h +++ b/homer_navigation/include/homer_navigation/homer_navigation_node.h @@ -30,9 +30,6 @@ #include <homer_ptu_msgs/CenterWorldPoint.h> #include <homer_ptu_msgs/SetPanTilt.h> -#include <homer_tools/loadRosConfig.h> - -//nav_libs #include <homer_nav_libs/tools.h> #include <homer_nav_libs/Explorer/Explorer.h> diff --git a/homer_navigation/package.xml b/homer_navigation/package.xml index ef223ca015bf0bc02b33084e0d5369c287722257..3515cfb78a01a788a847a8632dfb59f81204cfb5 100644 --- a/homer_navigation/package.xml +++ b/homer_navigation/package.xml @@ -1,7 +1,7 @@ <?xml version="1.0"?> <package> <name>homer_navigation</name> - <version>1.0.0</version> + <version>0.1.0</version> <description>The homer_navigation package</description> <maintainer email="vseib@uni-koblenz.de">Viktor Seib</maintainer> @@ -13,26 +13,24 @@ <build_depend>roscpp</build_depend> <build_depend>roslib</build_depend> - <build_depend>robbie_architecture</build_depend> - <build_depend>robot_platform</build_depend> - <build_depend>nav_libs</build_depend> + <build_depend>homer_robbie_architecture</build_depend> + <build_depend>homer_nav_libs</build_depend> <build_depend>nav_msgs</build_depend> <build_depend>sensor_msgs</build_depend> - <build_depend>mapnav_msgs</build_depend> + <build_depend>homer_mapnav_msgs</build_depend> <build_depend>std_msgs</build_depend> <build_depend>tf</build_depend> - <build_depend>homer_tools</build_depend> + <build_depend>cmake_modules</build_depend> + <build_depend>eigen</build_depend> <run_depend>roscpp</run_depend> <run_depend>roslib</run_depend> - <run_depend>robbie_architecture</run_depend> - <run_depend>robot_platform</run_depend> - <run_depend>nav_libs</run_depend> + <run_depend>homer_robbie_architecture</run_depend> + <run_depend>homer_nav_libs</run_depend> <run_depend>nav_msgs</run_depend> <run_depend>sensor_msgs</run_depend> - <run_depend>mapnav_msgs</run_depend> + <run_depend>homer_mapnav_msgs</run_depend> <run_depend>std_msgs</run_depend> <run_depend>tf</run_depend> - <run_depend>homer_tools</run_depend> </package> diff --git a/homer_navigation/src/homer_navigation_node.cpp b/homer_navigation/src/homer_navigation_node.cpp index 5e58c99021646d409b248cc87d1dfb63484a9013..9bad6a762fae86b98ca6c09892e27c66758838fd 100644 --- a/homer_navigation/src/homer_navigation_node.cpp +++ b/homer_navigation/src/homer_navigation_node.cpp @@ -41,52 +41,52 @@ HomerNavigationNode::HomerNavigationNode() void HomerNavigationNode::loadParameters() { //Explorer constructor - loadConfigValue("/homer_mapping/resolution", m_resolution, (double) 0.05); - loadConfigValue("/homer_navigation/allowed_obstacle_distance/min", m_AllowedObstacleDistance.first, (float) 0.3); - loadConfigValue("/homer_navigation/allowed_obstacle_distance/max", m_AllowedObstacleDistance.second, (float) 5.0); - loadConfigValue("/homer_navigation/safe_obstacle_distance/min", m_SafeObstacleDistance.first, (float) 0.7); - loadConfigValue("/homer_navigation/safe_obstacle_distance/max", m_SafeObstacleDistance.second, (float) 1.5); - loadConfigValue("/homer_navigation/frontier_safeness_factor", m_FrontierSafenessFactor, (float) 1.4); - loadConfigValue("/homer_navigation/safe_path_weight", m_SafePathWeight, (double) 1.2); - loadConfigValue("/homer_navigation/waypoint_sampling_threshold", m_waypoint_sampling_threshold, (float) 1.5); + ros::param::param("/homer_mapping/resolution", m_resolution, (double) 0.05); + ros::param::param("/homer_navigation/allowed_obstacle_distance/min", m_AllowedObstacleDistance.first, (float) 0.3); + ros::param::param("/homer_navigation/allowed_obstacle_distance/max", m_AllowedObstacleDistance.second, (float) 5.0); + ros::param::param("/homer_navigation/safe_obstacle_distance/min", m_SafeObstacleDistance.first, (float) 0.7); + ros::param::param("/homer_navigation/safe_obstacle_distance/max", m_SafeObstacleDistance.second, (float) 1.5); + ros::param::param("/homer_navigation/frontier_safeness_factor", m_FrontierSafenessFactor, (float) 1.4); + ros::param::param("/homer_navigation/safe_path_weight", m_SafePathWeight, (double) 1.2); + ros::param::param("/homer_navigation/waypoint_sampling_threshold", m_waypoint_sampling_threshold, (float) 1.5); m_AllowedObstacleDistance.first /= m_resolution; m_AllowedObstacleDistance.second /= m_resolution; m_SafeObstacleDistance.first /= m_resolution; m_SafeObstacleDistance.second /= m_resolution; //check path - loadConfigValue("/homer_navigation/check_path", m_check_path, (bool) true); - loadConfigValue("/homer_navigation/check_path_max_distance", m_check_path_max_distance, (float) 2.0); + ros::param::param("/homer_navigation/check_path", m_check_path, (bool) true); + ros::param::param("/homer_navigation/check_path_max_distance", m_check_path_max_distance, (float) 2.0); //collision - loadConfigValue("/homer_navigation/collision_distance", m_collision_distance, (float) 0.3); - loadConfigValue("/homer_navigation/collision_distance_near_target", m_collision_distance_near_target, (float) 0.2); - loadConfigValue("/homer_navigation/backward_collision_distance", m_backward_collision_distance, (float) 0.5); + ros::param::param("/homer_navigation/collision_distance", m_collision_distance, (float) 0.3); + ros::param::param("/homer_navigation/collision_distance_near_target", m_collision_distance_near_target, (float) 0.2); + ros::param::param("/homer_navigation/backward_collision_distance", m_backward_collision_distance, (float) 0.5); //cmd_vel config values - loadConfigValue("/homer_navigation/min_turn_angle", m_min_turn_angle, (float) 0.15); - loadConfigValue("/homer_navigation/max_turn_speed", m_max_turn_speed, (float) 0.6); - loadConfigValue("/homer_navigation/min_turn_speed", m_min_turn_speed, (float) 0.3); - loadConfigValue("/homer_navigation/max_move_speed", m_max_move_speed, (float) 0.4); - loadConfigValue("/homer_navigation/max_drive_angle", m_max_drive_angle, (float) 0.6); + ros::param::param("/homer_navigation/min_turn_angle", m_min_turn_angle, (float) 0.15); + ros::param::param("/homer_navigation/max_turn_speed", m_max_turn_speed, (float) 0.6); + ros::param::param("/homer_navigation/min_turn_speed", m_min_turn_speed, (float) 0.3); + ros::param::param("/homer_navigation/max_move_speed", m_max_move_speed, (float) 0.4); + ros::param::param("/homer_navigation/max_drive_angle", m_max_drive_angle, (float) 0.6); //caution factors - loadConfigValue("/homer_navigation/map_speed_factor", m_map_speed_factor, (float) 1.0); - loadConfigValue("/homer_navigation/waypoint_speed_factor", m_waypoint_speed_factor, (float) 1.0); - loadConfigValue("/homer_navigation/obstacle_speed_factor", m_obstacle_speed_factor, (float) 1.0); - loadConfigValue("/homer_navigation/target_distance_speed_factor", m_target_distance_speed_factor, (float) 0.4); + ros::param::param("/homer_navigation/map_speed_factor", m_map_speed_factor, (float) 1.0); + ros::param::param("/homer_navigation/waypoint_speed_factor", m_waypoint_speed_factor, (float) 1.0); + ros::param::param("/homer_navigation/obstacle_speed_factor", m_obstacle_speed_factor, (float) 1.0); + ros::param::param("/homer_navigation/target_distance_speed_factor", m_target_distance_speed_factor, (float) 0.4); //robot dimensions - loadConfigValue("/homer_navigation/min_x", m_min_x, (float) 0.3); - loadConfigValue("/homer_navigation/min_y", m_min_y, (float) 0.27); + ros::param::param("/homer_navigation/min_x", m_min_x, (float) 0.3); + ros::param::param("/homer_navigation/min_y", m_min_y, (float) 0.27); //error durations - loadConfigValue("/homer_navigation/callback_error_duration", m_callback_error_duration, (float) 0.3); + ros::param::param("/homer_navigation/callback_error_duration", m_callback_error_duration, (float) 0.3); - loadConfigValue("/homer_navigation/use_ptu", m_use_ptu, (bool) false); + ros::param::param("/homer_navigation/use_ptu", m_use_ptu, (bool) false); - loadConfigValue("/homer_navigation/unknown_threshold", m_unknown_threshold, (int) 50); - loadConfigValue("/homer_navigation/waypoint_radius_factor", m_waypoint_radius_factor, (float) 0.25); + ros::param::param("/homer_navigation/unknown_threshold", m_unknown_threshold, (int) 50); + ros::param::param("/homer_navigation/waypoint_radius_factor", m_waypoint_radius_factor, (float) 0.25); } void HomerNavigationNode::init()