├── img ├── bot.png ├── editedmap.png ├── map.png ├── nav01.png ├── nav02.png ├── nav03.png ├── nav04.png ├── navImage.jpg ├── navImage01.jpg └── robot.png ├── readme.md ├── src ├── CMakeLists.txt ├── depthimage_to_laserscan │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.md │ ├── cfg │ │ └── Depth.cfg │ ├── include │ │ └── depthimage_to_laserscan │ │ │ ├── DepthImageToLaserScan.h │ │ │ ├── DepthImageToLaserScanROS.h │ │ │ └── depth_traits.h │ ├── launch │ │ ├── depthimage_to_laserscan_test.launch │ │ ├── gmapping.launch │ │ ├── gmapping_zed.launch │ │ ├── laser_filter.yaml │ │ └── slam_gmapping_zed.launch │ ├── mainpage.dox │ ├── nodelets.xml │ ├── package.xml │ ├── rviz │ │ └── gmapping.rviz │ ├── src │ │ ├── DepthImageToLaserScan.cpp │ │ ├── DepthImageToLaserScanNodelet.cpp │ │ ├── DepthImageToLaserScanROS.cpp │ │ └── depthimage_to_laserscan.cpp │ └── test │ │ ├── DepthImageToLaserScanTest.cpp │ │ ├── depthimage_to_laserscan_rostest.cpp │ │ └── rostest │ │ └── depthimage_to_laserscan.test ├── navigation │ ├── CMakeLists.txt │ ├── config │ │ ├── base_local_planner_params.yaml │ │ ├── costmap_common_params.yaml │ │ ├── dwa_local_planner_params.yaml │ │ ├── global_costmap_params.yaml │ │ └── local_costmap_params.yaml │ ├── launch │ │ ├── gmapping_demo.launch │ │ ├── mybot_teleop.launch │ │ └── slam_amcl.launch │ ├── map │ │ ├── map-a-.pgm │ │ ├── map-a-.yaml │ │ ├── map-a.pgm │ │ ├── map-a.yaml │ │ ├── map-b.pgm │ │ └── map-b.yaml │ ├── package.xml │ └── rviz │ │ └── amcl.rviz ├── src_20180529.zip ├── test_serial │ ├── CMakeLists.txt │ ├── launch │ │ ├── serial.launch │ │ └── teleop.launch │ ├── package.xml │ └── src │ │ └── serial_node.cpp ├── vel_to_odom │ ├── CMakeLists.txt │ ├── launch │ │ └── vel2odom.launch │ ├── package.xml │ └── src │ │ └── vel2odom_node.cpp └── zed-ros-wrapper │ ├── CMakeLists.txt │ ├── LICENSE │ ├── README.md │ ├── cfg │ └── Zed.cfg │ ├── launch │ ├── README.md │ ├── display.launch │ ├── zed.launch │ ├── zed_camera.launch │ ├── zed_multi_cam.launch │ ├── zed_multi_gpu.launch │ └── zed_tf.launch │ ├── nodelet_plugins.xml │ ├── package.xml │ ├── records │ ├── record_depth.sh │ └── record_stereo.sh │ ├── rviz │ └── zed.rviz │ ├── src │ ├── zed_wrapper_node.cpp │ └── zed_wrapper_nodelet.cpp │ └── urdf │ ├── ZED.stl │ └── zed.urdf └── ~study ├── decuong.txt ├── run-gazebo.sh ├── run-mapping-nav.sh ├── run-mapping-rviz.sh ├── run-mapping-savemap.sh ├── run-mapping-teleop.sh ├── run-nav-amcl.sh ├── run-nav-rvizamcl.sh └── src ├── CMakeLists.txt ├── navigation-kinetic-devel ├── .gitignore ├── .travis.yml ├── README.md ├── amcl │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── cfg │ │ └── AMCL.cfg │ ├── examples │ │ ├── amcl_diff.launch │ │ └── amcl_omni.launch │ ├── include │ │ └── amcl │ │ │ ├── map │ │ │ └── map.h │ │ │ ├── pf │ │ │ ├── eig3.h │ │ │ ├── pf.h │ │ │ ├── pf_kdtree.h │ │ │ ├── pf_pdf.h │ │ │ └── pf_vector.h │ │ │ └── sensors │ │ │ ├── amcl_laser.h │ │ │ ├── amcl_odom.h │ │ │ └── amcl_sensor.h │ ├── package.xml │ ├── src │ │ ├── amcl │ │ │ ├── map │ │ │ │ ├── map.c │ │ │ │ ├── map_cspace.cpp │ │ │ │ ├── map_draw.c │ │ │ │ ├── map_range.c │ │ │ │ └── map_store.c │ │ │ ├── pf │ │ │ │ ├── eig3.c │ │ │ │ ├── pf.c │ │ │ │ ├── pf_draw.c │ │ │ │ ├── pf_kdtree.c │ │ │ │ ├── pf_pdf.c │ │ │ │ └── pf_vector.c │ │ │ └── sensors │ │ │ │ ├── amcl_laser.cpp │ │ │ │ ├── amcl_odom.cpp │ │ │ │ └── amcl_sensor.cpp │ │ └── amcl_node.cpp │ └── test │ │ ├── basic_localization.py │ │ ├── basic_localization_stage.xml │ │ ├── global_localization_stage.xml │ │ ├── rosie_multilaser.xml │ │ ├── set_initial_pose.xml │ │ ├── set_initial_pose_delayed.xml │ │ ├── set_pose.py │ │ ├── small_loop_crazy_driving_prg.xml │ │ ├── small_loop_crazy_driving_prg_corrected.xml │ │ ├── small_loop_prf.xml │ │ ├── texas_greenroom_loop.xml │ │ ├── texas_greenroom_loop_corrected.xml │ │ ├── texas_willow_hallway_loop.xml │ │ └── texas_willow_hallway_loop_corrected.xml ├── base_local_planner │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── blp_plugin.xml │ ├── cfg │ │ ├── BaseLocalPlanner.cfg │ │ └── LocalPlannerLimits.cfg │ ├── include │ │ └── base_local_planner │ │ │ ├── costmap_model.h │ │ │ ├── footprint_helper.h │ │ │ ├── goal_functions.h │ │ │ ├── latched_stop_rotate_controller.h │ │ │ ├── line_iterator.h │ │ │ ├── local_planner_limits.h │ │ │ ├── local_planner_util.h │ │ │ ├── map_cell.h │ │ │ ├── map_grid.h │ │ │ ├── map_grid_cost_function.h │ │ │ ├── map_grid_cost_point.h │ │ │ ├── map_grid_visualizer.h │ │ │ ├── obstacle_cost_function.h │ │ │ ├── odometry_helper_ros.h │ │ │ ├── oscillation_cost_function.h │ │ │ ├── planar_laser_scan.h │ │ │ ├── point_grid.h │ │ │ ├── prefer_forward_cost_function.h │ │ │ ├── simple_scored_sampling_planner.h │ │ │ ├── simple_trajectory_generator.h │ │ │ ├── trajectory.h │ │ │ ├── trajectory_cost_function.h │ │ │ ├── trajectory_inc.h │ │ │ ├── trajectory_planner.h │ │ │ ├── trajectory_planner_ros.h │ │ │ ├── trajectory_sample_generator.h │ │ │ ├── trajectory_search.h │ │ │ ├── twirling_cost_function.h │ │ │ ├── velocity_iterator.h │ │ │ ├── voxel_grid_model.h │ │ │ └── world_model.h │ ├── msg │ │ └── Position2DInt.msg │ ├── package.xml │ ├── setup.py │ ├── src │ │ ├── costmap_model.cpp │ │ ├── footprint_helper.cpp │ │ ├── goal_functions.cpp │ │ ├── latched_stop_rotate_controller.cpp │ │ ├── local_planner_limits │ │ │ ├── .gitignore │ │ │ └── __init__.py │ │ ├── local_planner_util.cpp │ │ ├── map_cell.cpp │ │ ├── map_grid.cpp │ │ ├── map_grid_cost_function.cpp │ │ ├── map_grid_visualizer.cpp │ │ ├── obstacle_cost_function.cpp │ │ ├── odometry_helper_ros.cpp │ │ ├── oscillation_cost_function.cpp │ │ ├── point_grid.cpp │ │ ├── prefer_forward_cost_function.cpp │ │ ├── simple_scored_sampling_planner.cpp │ │ ├── simple_trajectory_generator.cpp │ │ ├── trajectory.cpp │ │ ├── trajectory_planner.cpp │ │ ├── trajectory_planner_ros.cpp │ │ ├── twirling_cost_function.cpp │ │ └── voxel_grid_model.cpp │ └── test │ │ ├── footprint_helper_test.cpp │ │ ├── gtest_main.cpp │ │ ├── line_iterator_test.cpp │ │ ├── map_grid_test.cpp │ │ ├── trajectory_generator_test.cpp │ │ ├── utest.cpp │ │ ├── velocity_iterator_test.cpp │ │ └── wavefront_map_accessor.h ├── carrot_planner │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── bgp_plugin.xml │ ├── include │ │ └── carrot_planner │ │ │ └── carrot_planner.h │ ├── package.xml │ └── src │ │ └── carrot_planner.cpp ├── clear_costmap_recovery │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── ccr_plugin.xml │ ├── include │ │ └── clear_costmap_recovery │ │ │ └── clear_costmap_recovery.h │ ├── package.xml │ ├── src │ │ └── clear_costmap_recovery.cpp │ └── test │ │ ├── clear_tester.cpp │ │ ├── clear_tests.launch │ │ └── params.yaml ├── costmap_2d │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── cfg │ │ ├── Costmap2D.cfg │ │ ├── GenericPlugin.cfg │ │ ├── InflationPlugin.cfg │ │ ├── ObstaclePlugin.cfg │ │ └── VoxelPlugin.cfg │ ├── costmap_plugins.xml │ ├── include │ │ └── costmap_2d │ │ │ ├── array_parser.h │ │ │ ├── cost_values.h │ │ │ ├── costmap_2d.h │ │ │ ├── costmap_2d_publisher.h │ │ │ ├── costmap_2d_ros.h │ │ │ ├── costmap_layer.h │ │ │ ├── costmap_math.h │ │ │ ├── footprint.h │ │ │ ├── inflation_layer.h │ │ │ ├── layer.h │ │ │ ├── layered_costmap.h │ │ │ ├── observation.h │ │ │ ├── observation_buffer.h │ │ │ ├── obstacle_layer.h │ │ │ ├── static_layer.h │ │ │ ├── testing_helper.h │ │ │ └── voxel_layer.h │ ├── launch │ │ ├── example.launch │ │ └── example_params.yaml │ ├── msg │ │ └── VoxelGrid.msg │ ├── package.xml │ ├── plugins │ │ ├── inflation_layer.cpp │ │ ├── obstacle_layer.cpp │ │ ├── static_layer.cpp │ │ └── voxel_layer.cpp │ ├── src │ │ ├── array_parser.cpp │ │ ├── costmap_2d.cpp │ │ ├── costmap_2d_cloud.cpp │ │ ├── costmap_2d_markers.cpp │ │ ├── costmap_2d_node.cpp │ │ ├── costmap_2d_publisher.cpp │ │ ├── costmap_2d_ros.cpp │ │ ├── costmap_layer.cpp │ │ ├── costmap_math.cpp │ │ ├── footprint.cpp │ │ ├── layer.cpp │ │ ├── layered_costmap.cpp │ │ └── observation_buffer.cpp │ └── test │ │ ├── TenByTen.pgm │ │ ├── TenByTen.yaml │ │ ├── array_parser_test.cpp │ │ ├── costmap_params.yaml │ │ ├── costmap_tester.cpp │ │ ├── footprint_tests.cpp │ │ ├── footprint_tests.launch │ │ ├── inflation_tests.cpp │ │ ├── inflation_tests.launch │ │ ├── module_tests.cpp │ │ ├── obstacle_tests.cpp │ │ ├── obstacle_tests.launch │ │ ├── simple_driving_test.xml │ │ ├── static_tests.cpp │ │ └── static_tests.launch ├── dwa_local_planner │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── blp_plugin.xml │ ├── cfg │ │ └── DWAPlanner.cfg │ ├── include │ │ └── dwa_local_planner │ │ │ ├── dwa_planner.h │ │ │ └── dwa_planner_ros.h │ ├── package.xml │ └── src │ │ ├── dwa_planner.cpp │ │ └── dwa_planner_ros.cpp ├── fake_localization │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── fake_localization.cpp │ ├── package.xml │ └── static_odom_broadcaster.py ├── global_planner │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── bgp_plugin.xml │ ├── cfg │ │ └── GlobalPlanner.cfg │ ├── include │ │ └── global_planner │ │ │ ├── astar.h │ │ │ ├── dijkstra.h │ │ │ ├── expander.h │ │ │ ├── gradient_path.h │ │ │ ├── grid_path.h │ │ │ ├── orientation_filter.h │ │ │ ├── planner_core.h │ │ │ ├── potential_calculator.h │ │ │ ├── quadratic_calculator.h │ │ │ └── traceback.h │ ├── package.xml │ └── src │ │ ├── astar.cpp │ │ ├── dijkstra.cpp │ │ ├── gradient_path.cpp │ │ ├── grid_path.cpp │ │ ├── orientation_filter.cpp │ │ ├── plan_node.cpp │ │ ├── planner_core.cpp │ │ └── quadratic_calculator.cpp ├── map_server │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ │ └── map_server │ │ │ └── image_loader.h │ ├── package.xml │ ├── scripts │ │ └── crop_map │ ├── src │ │ ├── image_loader.cpp │ │ ├── main.cpp │ │ ├── map_saver.cpp │ │ └── map_server.dox │ └── test │ │ ├── consumer.py │ │ ├── rtest.cpp │ │ ├── rtest.xml │ │ ├── test_constants.cpp │ │ ├── test_constants.h │ │ ├── testmap.bmp │ │ ├── testmap.png │ │ ├── testmap.yaml │ │ └── utest.cpp ├── move_base │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── cfg │ │ └── MoveBase.cfg │ ├── include │ │ └── move_base │ │ │ └── move_base.h │ ├── package.xml │ ├── planner_test.xml │ └── src │ │ ├── move_base.cpp │ │ └── move_base_node.cpp ├── move_slow_and_clear │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ │ └── move_slow_and_clear │ │ │ └── move_slow_and_clear.h │ ├── package.xml │ ├── recovery_plugin.xml │ └── src │ │ └── move_slow_and_clear.cpp ├── nav_core │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ │ └── nav_core │ │ │ ├── base_global_planner.h │ │ │ ├── base_local_planner.h │ │ │ └── recovery_behavior.h │ └── package.xml ├── navfn │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── Makefile.orig │ ├── bgp_plugin.xml │ ├── include │ │ └── navfn │ │ │ ├── navfn.h │ │ │ ├── navfn_ros.h │ │ │ ├── navwin.h │ │ │ ├── potarr_point.h │ │ │ └── read_pgm_costmap.h │ ├── package.xml │ ├── src │ │ ├── navfn.cpp │ │ ├── navfn_node.cpp │ │ ├── navfn_ros.cpp │ │ ├── navtest.cpp │ │ ├── navwin.cpp │ │ └── read_pgm_costmap.cpp │ ├── srv │ │ ├── MakeNavPlan.srv │ │ └── SetCostmap.srv │ └── test │ │ ├── CMakeLists.txt │ │ ├── path_calc_test.cpp │ │ └── willow_costmap.pgm ├── navigation │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── README.rst │ └── package.xml ├── robot_pose_ekf │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── example_with_gps.launch │ ├── include │ │ └── robot_pose_ekf │ │ │ ├── nonlinearanalyticconditionalgaussianodo.h │ │ │ ├── odom_estimation.h │ │ │ └── odom_estimation_node.h │ ├── package.xml │ ├── plotekf.m │ ├── robot_pose_ekf.launch │ ├── scripts │ │ └── wtf.py │ ├── src │ │ ├── nonlinearanalyticconditionalgaussianodo.cpp │ │ ├── odom_estimation.cpp │ │ └── odom_estimation_node.cpp │ ├── srv │ │ └── GetStatus.srv │ └── test │ │ ├── test_robot_pose_ekf.cpp │ │ ├── test_robot_pose_ekf.launch │ │ ├── test_robot_pose_ekf_zero_covariance.cpp │ │ └── test_robot_pose_ekf_zero_covariance.launch ├── rotate_recovery │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ │ └── rotate_recovery │ │ │ └── rotate_recovery.h │ ├── package.xml │ ├── rotate_plugin.xml │ └── src │ │ └── rotate_recovery.cpp └── voxel_grid │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── include │ └── voxel_grid │ │ └── voxel_grid.h │ ├── package.xml │ ├── src │ └── voxel_grid.cpp │ └── test │ └── voxel_grid_tests.cpp ├── robot_description ├── CMakeLists.txt ├── launch │ ├── mybot_rviz.launch │ ├── mybot_rviz_amcl.launch │ └── mybot_rviz_gmapping.launch ├── meshes │ └── hokuyo.dae ├── package.xml ├── rviz │ ├── amcl.rviz │ └── mapping.rviz └── urdf │ ├── macros.xacro │ ├── materials.xacro │ ├── mybot.gazebo │ ├── mybot.xacro │ └── sensor.tar.gz ├── robot_gazebo ├── CMakeLists.txt ├── launch │ ├── mybot_world.launch │ └── read first ├── package.xml └── worlds │ ├── mybot.world │ └── turtlebot_playground.world └── robot_navigation ├── CMakeLists.txt ├── config ├── base_local_planner_params.yaml ├── costmap_common_params.yaml ├── global_costmap_params.yaml └── local_costmap_params.yaml ├── launch ├── amcl_demo.launch ├── gmapping_demo.launch ├── laser_filter.yaml └── mybot_teleop.launch ├── map ├── map_test_8.pgm ├── map_test_8.yaml ├── test_map.pgm └── test_map.yaml └── package.xml /img/bot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/img/bot.png -------------------------------------------------------------------------------- /img/editedmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/img/editedmap.png -------------------------------------------------------------------------------- /img/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/img/map.png -------------------------------------------------------------------------------- /img/nav01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/img/nav01.png -------------------------------------------------------------------------------- /img/nav02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/img/nav02.png -------------------------------------------------------------------------------- /img/nav03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/img/nav03.png -------------------------------------------------------------------------------- /img/nav04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/img/nav04.png -------------------------------------------------------------------------------- /img/navImage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/img/navImage.jpg -------------------------------------------------------------------------------- /img/navImage01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/img/navImage01.jpg -------------------------------------------------------------------------------- /img/robot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/img/robot.png -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package depthimage_to_laserscan 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.0.7 (2014-06-16) 6 | ------------------ 7 | * Merge pull request `#11 `_ from ros-perception/hydro-devel 8 | Update indigo devel with angle fix 9 | * Merge pull request `#8 `_ from vliedel/hydro-devel 10 | fixed angle_increment 11 | * fixed angle_increment 12 | * Merge pull request `#7 `_ from bulwahn/hydro-devel 13 | check for CATKIN_ENABLE_TESTING 14 | * check for CATKIN_ENABLE_TESTING 15 | * Added ARCHIVE DESTINATION 16 | * Contributors: Chad Rockey, Lukas Bulwahn, vliedel 17 | 18 | 1.0.6 (2013-10-31) 19 | ------------------ 20 | * Removed y component from projected beam radius. 21 | 22 | 1.0.5 (2013-08-21) 23 | ------------------ 24 | * No more Willow Garage email. 25 | * Merge pull request `#4 `_ from ericperko/groovy-devel 26 | Cleaned up CMakeLists a bit 27 | * Cleaned up CMakeLists a bit 28 | 29 | 1.0.4 (2013-01-22) 30 | ------------------ 31 | * Update version to 1.0.4 32 | * Merge pull request `#3 `_ from ahendrix/fix_testdeps 33 | Fix testdeps 34 | * Removed redundant test-depends. 35 | * Remove old makefile. 36 | 37 | 1.0.3 (2012-12-23) 38 | ------------------ 39 | * fix exported libraries (fix `#2 `_) 40 | 41 | 1.0.2 (2012-12-19) 42 | ------------------ 43 | * fix dyn reconf 44 | * Updated description. 45 | * Updated readme to link to wiki. 46 | 47 | 1.0.1 (2012-12-14) 48 | ------------------ 49 | * Update package.xml 50 | New release for missing catkin build_depend. 51 | * Merge pull request `#1 `_ from ablasdel/groovy-devel 52 | updated catkin buildtool_depend 53 | * updated catkin buildtool_depend 54 | 55 | 1.0.0 (2012-12-05) 56 | ------------------ 57 | * Cleanup of the CMakeLists.txt 58 | * First attempt at Catkinizing. 59 | * Pushing fuerte-devel to github. 60 | * Initial commit 61 | -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # http://ros.org/doc/groovy/api/catkin/html/user_guide/supposed.html 2 | cmake_minimum_required(VERSION 2.8) 3 | project(depthimage_to_laserscan) 4 | 5 | # Load catkin and all dependencies required for this package 6 | find_package(catkin REQUIRED dynamic_reconfigure image_geometry image_transport nodelet roscpp sensor_msgs) 7 | #find_package(OpenCV REQUIRED) 8 | 9 | # Dynamic reconfigure support 10 | generate_dynamic_reconfigure_options(cfg/Depth.cfg) 11 | 12 | catkin_package( 13 | INCLUDE_DIRS include 14 | LIBRARIES DepthImageToLaserScan DepthImageToLaserScanROS DepthImageToLaserScanNodelet 15 | CATKIN_DEPENDS dynamic_reconfigure image_geometry image_transport nodelet roscpp sensor_msgs 16 | ) 17 | 18 | include_directories(include ${catkin_INCLUDE_DIRS}) 19 | 20 | add_library(DepthImageToLaserScan src/DepthImageToLaserScan.cpp) 21 | target_link_libraries(DepthImageToLaserScan ${catkin_LIBRARIES}) 22 | 23 | add_library(DepthImageToLaserScanROS src/DepthImageToLaserScanROS.cpp) 24 | add_dependencies(DepthImageToLaserScanROS ${PROJECT_NAME}_gencfg) 25 | target_link_libraries(DepthImageToLaserScanROS DepthImageToLaserScan ${catkin_LIBRARIES}) 26 | 27 | add_library(DepthImageToLaserScanNodelet src/DepthImageToLaserScanNodelet.cpp) 28 | target_link_libraries(DepthImageToLaserScanNodelet DepthImageToLaserScanROS ${catkin_LIBRARIES}) 29 | 30 | add_executable(depthimage_to_laserscan src/depthimage_to_laserscan.cpp) 31 | target_link_libraries(depthimage_to_laserscan DepthImageToLaserScanROS ${catkin_LIBRARIES}) 32 | 33 | if(CATKIN_ENABLE_TESTING) 34 | # Test the library 35 | catkin_add_gtest(libtest test/DepthImageToLaserScanTest.cpp) 36 | target_link_libraries(libtest DepthImageToLaserScan ${catkin_LIBRARIES}) 37 | endif() 38 | 39 | # add the test executable, keep it from being built by "make all" 40 | add_executable(test_dtl EXCLUDE_FROM_ALL test/depthimage_to_laserscan_rostest.cpp) 41 | 42 | # Install targets 43 | install(TARGETS DepthImageToLaserScan DepthImageToLaserScanROS DepthImageToLaserScanNodelet depthimage_to_laserscan 44 | RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 45 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 46 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}) 47 | 48 | install(DIRECTORY include/${PROJECT_NAME}/ 49 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 50 | ) 51 | install(FILES nodelets.xml 52 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 53 | ) 54 | -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/README.md: -------------------------------------------------------------------------------- 1 | depthimage_to_laserscan 2 | ======================= 3 | 4 | Converts a depth image to a laser scan for use with navigation and localization. 5 | 6 | ROS Wiki Page: 7 | http://www.ros.org/wiki/depthimage_to_laserscan 8 | -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/cfg/Depth.cfg: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env python 2 | 3 | PACKAGE='depthimage_to_laserscan' 4 | 5 | from dynamic_reconfigure.parameter_generator_catkin import * 6 | 7 | from math import pi 8 | 9 | gen = ParameterGenerator() 10 | # Name Type Reconfiguration level Description Default Min Max 11 | gen.add("scan_height", int_t, 0, "Height of the laser band (in pixels).", 1, 1, 500) 12 | gen.add("scan_time", double_t, 0, "Time for the entire scan sweep.", 0.033, 0.0, 1.0) 13 | gen.add("range_min", double_t, 0, "Minimum reported range (in meters).", 0.45, 0.0, 10.0) 14 | gen.add("range_max", double_t, 0, "Maximum reported range (in meters).", 10.0, 0.0, 10.0) 15 | gen.add("output_frame_id", str_t, 0, "Output frame_id for the laserscan.", "camera_depth_frame") 16 | 17 | exit(gen.generate(PACKAGE, "depthimage_to_laserscan", "Depth")) -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/launch/laser_filter.yaml: -------------------------------------------------------------------------------- 1 | scan_filter_chain: 2 | - name: angle 3 | type: LaserScanAngularBoundsFilter 4 | params: 5 | lower_angle: -1.57 6 | upper_angle: -1 7 | - name: angle1 8 | type: LaserScanAngularBoundsFilter 9 | params: 10 | lower_angle: 1 11 | upper_angle: 1.57 12 | - name: interpolation 13 | type: InterpolationFilter 14 | -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/mainpage.dox: -------------------------------------------------------------------------------- 1 | /** 2 | \mainpage 3 | \htmlinclude manifest.html 4 | 5 | \b depthimage_to_laserscan provides an efficient method to project laserscans directly from depth images. These messages are used to run laserscan based software such as gmapping, amcl, or the navigation stack from robots with only depth cameras such as the Mircosoft Kinect or ASUS Xtion. 6 | 7 | 8 | */ 9 | -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/nodelets.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | Nodelet to convert raw depth images to sensor_msgs/LaserScans. 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/package.xml: -------------------------------------------------------------------------------- 1 | 2 | depthimage_to_laserscan 3 | 1.0.7 4 | depthimage_to_laserscan 5 | Chad Rockey 6 | 7 | BSD 8 | 9 | http://ros.org/wiki/depthimage_to_laserscan 10 | https://github.com/ros-perception/depthimage_to_laserscan/issues 11 | https://github.com/ros-perception/depthimage_to_laserscan 12 | 13 | Chad Rockey 14 | 15 | catkin 16 | 17 | roscpp 18 | gtest 19 | sensor_msgs 20 | nodelet 21 | image_transport 22 | image_geometry 23 | dynamic_reconfigure 24 | roscpp 25 | sensor_msgs 26 | nodelet 27 | image_transport 28 | image_geometry 29 | dynamic_reconfigure 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/src/DepthImageToLaserScanNodelet.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012, Willow Garage, Inc. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * * Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * * Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * * Neither the name of the Willow Garage, Inc. nor the names of its 14 | * contributors may be used to endorse or promote products derived from 15 | * this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | /* 31 | * Author: Chad Rockey 32 | */ 33 | 34 | #include 35 | #include 36 | 37 | 38 | namespace depthimage_to_laserscan 39 | { 40 | 41 | class DepthImageToLaserScanNodelet : public nodelet::Nodelet 42 | { 43 | public: 44 | DepthImageToLaserScanNodelet() {}; 45 | 46 | ~DepthImageToLaserScanNodelet() {} 47 | 48 | private: 49 | virtual void onInit() 50 | { 51 | dtl.reset(new DepthImageToLaserScanROS(getNodeHandle(), getPrivateNodeHandle())); 52 | }; 53 | 54 | boost::shared_ptr dtl; 55 | }; 56 | 57 | } 58 | 59 | #include 60 | PLUGINLIB_DECLARE_CLASS(depthimage_to_laserscan, DepthImageToLaserScanNodelet, depthimage_to_laserscan::DepthImageToLaserScanNodelet, nodelet::Nodelet); 61 | 62 | -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/src/depthimage_to_laserscan.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012, Willow Garage, Inc. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * * Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * * Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * * Neither the name of the Willow Garage, Inc. nor the names of its 14 | * contributors may be used to endorse or promote products derived from 15 | * this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | /* 31 | * Author: Chad Rockey 32 | */ 33 | 34 | #include 35 | 36 | int main(int argc, char **argv){ 37 | ros::init(argc, argv, "depthimage_to_laserscan"); 38 | ros::NodeHandle n; 39 | ros::NodeHandle pnh("~"); 40 | 41 | depthimage_to_laserscan::DepthImageToLaserScanROS dtl(n, pnh); 42 | 43 | ros::spin(); 44 | 45 | return 0; 46 | } -------------------------------------------------------------------------------- /src/depthimage_to_laserscan/test/rostest/depthimage_to_laserscan.test: -------------------------------------------------------------------------------- 1 | 2 | \ 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/navigation/config/base_local_planner_params.yaml: -------------------------------------------------------------------------------- 1 | TrajectoryPlannerROS: 2 | max_vel_x: 0.5 3 | min_vel_x: 0.0 4 | max_vel_theta: 0.5 5 | min_in_place_vel_theta: 0 6 | 7 | acc_lim_theta: 0.01 8 | acc_lim_x: 0.01 9 | acc_lim_y: 0.01 10 | 11 | holonomic_robot: false 12 | -------------------------------------------------------------------------------- /src/navigation/config/costmap_common_params.yaml: -------------------------------------------------------------------------------- 1 | obstacle_range: 2.5 2 | raytrace_range: 3.0 3 | #footprint: [[x0, y0], [x1, y1], ... [xn, yn]] 4 | #robot_radius: ir_of_robot 5 | robot_radius: 0.3 # distance a circular robot should be clear of the obstacle 6 | inflation_radius: 0.3 7 | 8 | observation_sources: laser_scan_sensor #point_cloud_sensor 9 | 10 | # marking - add obstacle information to cost map 11 | # clearing - clear obstacle information to cost map 12 | laser_scan_sensor: {sensor_frame: zed_center, data_type: LaserScan, topic: /scan, marking: true, clearing: true} 13 | 14 | #point_cloud_sensor: {sensor_frame: frame_name, data_type: PointCloud, topic: topic_name, marking: true, clearing: true} 15 | -------------------------------------------------------------------------------- /src/navigation/config/dwa_local_planner_params.yaml: -------------------------------------------------------------------------------- 1 | DWAPlannerROS: 2 | acc_lim_x: 0.1 3 | acc_lim_y: 0 4 | acc_lim_th: 0.05 5 | max_trans_vel: 1.0 6 | min_trans_vel: 0.0 7 | max_vel_x: 0.5 8 | min_vel_x: 0.1 9 | max_vel_y: 0 10 | min_vel_y: 0 11 | max_rot_vel: 0.6 12 | min_rot_vel: 0.0 13 | 14 | yaw_goal_tolerance: 0.7 15 | xy_goal_tolerance: 0.2 16 | latch_xy_goal_tolerance: false 17 | 18 | sim_time: 1.5 19 | sim_granularity: 0.025 20 | vx_samples: 10 21 | vy_samples: 0 22 | vtheta_samples: 20 23 | controller_frequency: 10 24 | penalize_negative_x: true 25 | 26 | path_distance_bias: 1.0 27 | goal_distance_bias: 0.8 28 | occdist_scale: 0.01 29 | forward_point_distance: 0.325 30 | stop_time_buffer: 0.2 31 | scaling_speed: 1 32 | max_scaling_factor: 0.2 33 | 34 | oscillation_reset_dist: 0.05 35 | 36 | prune_plan: false 37 | 38 | sim_period: 0.1 39 | rot_stopped_vel: 0.01 40 | trans_stopped_vel: 0.01 41 | -------------------------------------------------------------------------------- /src/navigation/config/global_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | # static_map - True if using existing map 2 | 3 | global_costmap: 4 | global_frame: map 5 | robot_base_frame: base_frame 6 | update_frequency: 1.0 7 | publish_frequency: 1.0 8 | resolution: 0.05 9 | static_map: true 10 | width: 40.0 11 | height: 40.0 12 | map_type: costmap 13 | -------------------------------------------------------------------------------- /src/navigation/config/local_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | local_costmap: 2 | global_frame: map 3 | robot_base_frame: base_frame 4 | update_frequency: 2.0 5 | publish_frequency: 1.0 6 | static_map: false 7 | rolling_window: true 8 | width: 6.0 9 | height: 6.0 10 | resolution: 0.05 11 | -------------------------------------------------------------------------------- /src/navigation/launch/gmapping_demo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /src/navigation/launch/mybot_teleop.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/navigation/map/map-a-.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/src/navigation/map/map-a-.pgm -------------------------------------------------------------------------------- /src/navigation/map/map-a-.yaml: -------------------------------------------------------------------------------- 1 | image: map-a-.pgm 2 | resolution: 0.020000 3 | origin: [-20.000000, -20.000000, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /src/navigation/map/map-a.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/src/navigation/map/map-a.pgm -------------------------------------------------------------------------------- /src/navigation/map/map-a.yaml: -------------------------------------------------------------------------------- 1 | image: map-a.pgm 2 | resolution: 0.020000 3 | origin: [-20.000000, -20.000000, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /src/navigation/map/map-b.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/src/navigation/map/map-b.pgm -------------------------------------------------------------------------------- /src/navigation/map/map-b.yaml: -------------------------------------------------------------------------------- 1 | image: map-b.pgm 2 | resolution: 0.020000 3 | origin: [-20.000000, -20.000000, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /src/navigation/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | navigation 4 | 0.0.0 5 | The navigation package 6 | 7 | 8 | 9 | 10 | silent 11 | 12 | 13 | 14 | 15 | 16 | TODO 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | catkin 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /src/src_20180529.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/src/src_20180529.zip -------------------------------------------------------------------------------- /src/test_serial/launch/serial.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/test_serial/launch/teleop.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/vel_to_odom/launch/vel2odom.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017, Stereolabs 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | * Neither the name of zed-ros-wrapper nor the names of its 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 22 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 24 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | 29 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/README.md: -------------------------------------------------------------------------------- 1 | # Stereolabs ZED Camera - ROS Integration 2 | 3 | This package lets you use the ZED stereo camera with ROS. It outputs the camera left and right images, depth map, point cloud, odometry information and supports the use of multiple ZED cameras. 4 | 5 | ## Getting started 6 | 7 | - First, download the latest version of the ZED SDK on [stereolabs.com](https://www.stereolabs.com/developers/) 8 | - Download the ZED ROS wrapper [here](https://github.com/stereolabs/zed-ros-wrapper/archive/master.zip). 9 | - For more information, check out our [ROS documentation](https://www.stereolabs.com/documentation/guides/using-zed-with-ros/introduction.html), our [ROS wiki](http://wiki.ros.org/zed-ros-wrapper) or our [blog post](https://www.stereolabs.com/blog/index.php/2015/09/07/use-your-zed-camera-with-ros/). If you want to customize the wrapper, check the [ZED API documentation](https://www.stereolabs.com/developers/documentation/API/). 10 | 11 | ### Prerequisites 12 | 13 | - Ubuntu 16.04 14 | - [ZED SDK **≥ 2.1**](https://www.stereolabs.com/developers/) and its dependencies ([OpenCV](http://docs.opencv.org/3.1.0/d7/d9f/tutorial_linux_install.html), [CUDA](https://developer.nvidia.com/cuda-downloads)) 15 | - [ROS Kinetic](http://wiki.ros.org/kinetic/Installation/Ubuntu) 16 | - [Point Cloud Library (PCL)](https://github.com/PointCloudLibrary/pcl) 17 | 18 | ### Build the program 19 | 20 | The zed_ros_wrapper is a catkin package. It depends on the following ROS packages: 21 | 22 | - tf2_ros 23 | - tf2_geometry_msgs 24 | - nav_msgs 25 | - roscpp 26 | - rosconsole 27 | - sensor_msgs 28 | - opencv 29 | - image_transport 30 | - dynamic_reconfigure 31 | - urdf 32 | 33 | Place the package folder `zed_wrapper` in your catkin workspace source folder `~/catkin_ws/src`. 34 | 35 | Open a terminal and build the package: 36 | 37 | cd ~/catkin_ws/ 38 | catkin_make 39 | source ./devel/setup.bash 40 | 41 | ### Run the program 42 | 43 | To launch the wrapper along with an Rviz preview, open a terminal and launch: 44 | 45 | roslaunch zed_wrapper display.launch 46 | 47 | To launch the wrapper without Rviz, use: 48 | 49 | roslaunch zed_wrapper zed.launch 50 | 51 | [More](https://www.stereolabs.com/documentation/guides/using-zed-with-ros/introduction.html) 52 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/cfg/Zed.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | PACKAGE = "zed_wrapper" 3 | 4 | from dynamic_reconfigure.parameter_generator_catkin import * 5 | 6 | gen = ParameterGenerator() 7 | 8 | gen.add("confidence", int_t, 0, "Confidence threshold, the lower the better", 80, 1, 100) 9 | 10 | exit(gen.generate(PACKAGE, "zed_wrapper", "Zed")) 11 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/launch/README.md: -------------------------------------------------------------------------------- 1 | # Launch Files 2 | 3 | Launch files provide a convenient way to start up multiple nodes and a master, as well as setting parameters. 4 | 5 | Use **roslaunch** to open ZED launch files. 6 | ``` 7 | roslaunch zed_wrapper zed.launch 8 | ``` 9 | 10 | ### Start the node with one ZED 11 | Use the **zed.launch** file to launch a single camera nodelet. It includes one instance of **zed\_camera.launch**. 12 | ``` 13 | roslaunch zed_wrapper zed.launch 14 | ``` 15 | 16 | ### Start the node with multiple ZED 17 | To use multiple ZED, launch the **zed\_multi\_cam.launch** file which describes the different cameras. This example includes two instances of **zed\_camera.launch**. 18 | ``` 19 | roslaunch zed_wrapper zed_multi_cam.launch 20 | ``` 21 | 22 | ### Start the node with multiple ZED and GPUs 23 | You can configure the wrapper to assign a GPU to a ZED. In that case, it it is not possible to use several instances of **zed\_camera.launch** because different parameters need to be set for each ZED. 24 | A sample **zed\_multi\_gpu.launch** file is available to show how to work with different ZED and GPUs. 25 | ``` 26 | roslaunch zed_wrapper zed_multi_gpu.launch 27 | ``` 28 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/launch/display.launch: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/launch/zed.launch: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/launch/zed_multi_cam.launch: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/launch/zed_multi_gpu.launch: -------------------------------------------------------------------------------- 1 | 2 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/launch/zed_tf.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 8 | 9 | 11 | 12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/nodelet_plugins.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | This is the nodelet of ROS interface for Stereolabs ZED Camera. 6 | 7 | 8 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | zed_wrapper 4 | 1.0.0 5 | zed_wrapper is a ROS wrapper for the ZED library 6 | for interfacing with the ZED camera. 7 | 8 | STEREOLABS 9 | BSD 10 | 11 | catkin 12 | 13 | tf2_ros 14 | tf2_geometry_msgs 15 | nav_msgs 16 | roscpp 17 | rosconsole 18 | sensor_msgs 19 | opencv 20 | image_transport 21 | dynamic_reconfigure 22 | pcl_conversions 23 | urdf 24 | nodelet 25 | 26 | tf2_ros 27 | tf2_geometry_msgs 28 | nav_msgs 29 | roscpp 30 | rosconsole 31 | sensor_msgs 32 | opencv 33 | image_transport 34 | dynamic_reconfigure 35 | pcl_conversions 36 | nodelet 37 | robot_state_publisher 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/records/record_depth.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | rosbag record /camera/rgb/camera_info /camera/depth_registered/image_raw/compressedDepth /camera/rgb/image_rect_color/compressed /tf 3 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/records/record_stereo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | rosbag record /camera/left/camera_info /camera/right/camera_info /camera/left/image_raw/compressed /camera/right/image_raw/compressed /tf 3 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/src/zed_wrapper_node.cpp: -------------------------------------------------------------------------------- 1 | /////////////////////////////////////////////////////////////////////////// 2 | // 3 | // Copyright (c) 2017, STEREOLABS. 4 | // 5 | // All rights reserved. 6 | // 7 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 8 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 9 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 10 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 11 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 12 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 13 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 14 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 15 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 16 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 17 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 18 | // 19 | /////////////////////////////////////////////////////////////////////////// 20 | 21 | #include 22 | #include 23 | 24 | int main(int argc, char** argv) { 25 | ros::init(argc, argv, "zed_wrapper_node"); 26 | 27 | nodelet::Loader nodelet; 28 | nodelet::M_string remap(ros::names::getRemappings()); 29 | nodelet::V_string nargv; 30 | nodelet.load(ros::this_node::getName(), 31 | "zed_wrapper/ZEDWrapperNodelet", 32 | remap, nargv); 33 | 34 | ros::spin(); 35 | 36 | return 0; 37 | } 38 | -------------------------------------------------------------------------------- /src/zed-ros-wrapper/urdf/ZED.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/src/zed-ros-wrapper/urdf/ZED.stl -------------------------------------------------------------------------------- /~study/decuong.txt: -------------------------------------------------------------------------------- 1 | cd dev/robot_ws 2 | source devel/setup.bash 3 | 4 | ###Creating the Map 5 | sudo killall rosmaster 6 | sudo killall gzserver 7 | sudo killall gzclient 8 | roslaunch mybot_gazebo mybot_world.launch 9 | 10 | roslaunch mybot_navigation gmapping_demo.launch 11 | 12 | roslaunch mybot_description mybot_rviz_gmapping.launch 13 | 14 | roslaunch mybot_navigation mybot_teleop.launch 15 | 16 | ###Saving the Map 17 | rosrun map_server map_saver -f ~/mybot_ws/src/mybot_navigation/maps/test_map 18 | 19 | ###Loading the Map 20 | roslaunch mybot_gazebo mybot_world.launch 21 | 22 | roslaunch mybot_navigation amcl_demo.launch 23 | 24 | roslaunch mybot_description mybot_rviz_amcl.launch 25 | 26 | 27 | 28 | ###Create map### 29 | run-gazebo.sh 30 | run-mapping-nav.sh 31 | run-mapping-rviz.sh 32 | run-mapping-teleop.sh 33 | 34 | ###Save map### 35 | run-mapping-savemap.sh 36 | 37 | ###Load map### 38 | run-gazebo.sh 39 | run-nav-amcl.sh 40 | run-nav-rvizamcl.sh 41 | -------------------------------------------------------------------------------- /~study/run-gazebo.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source devel/setup.bash 4 | 5 | sudo killall gzserver 6 | sudo killall gzclient 7 | sudo killall rviz 8 | sudo killall roscore 9 | sudo killall rosmaster 10 | 11 | roslaunch robot_gazebo mybot_world.launch 12 | -------------------------------------------------------------------------------- /~study/run-mapping-nav.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source devel/setup.bash 4 | 5 | roslaunch robot_navigation gmapping_demo.launch 6 | -------------------------------------------------------------------------------- /~study/run-mapping-rviz.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source devel/setup.bash 4 | 5 | roslaunch robot_description mybot_rviz_gmapping.launch 6 | -------------------------------------------------------------------------------- /~study/run-mapping-savemap.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source devel/setup.bash 4 | 5 | rosrun map_server map_saver -f ~/dev/robot_ws/src/robot_navigation/map/test_map 6 | -------------------------------------------------------------------------------- /~study/run-mapping-teleop.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source devel/setup.bash 4 | 5 | roslaunch robot_navigation mybot_teleop.launch 6 | -------------------------------------------------------------------------------- /~study/run-nav-amcl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source devel/setup.bash 4 | 5 | roslaunch robot_navigation amcl_demo.launch 6 | -------------------------------------------------------------------------------- /~study/run-nav-rvizamcl.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | source devel/setup.bash 4 | 5 | roslaunch robot_description mybot_rviz_amcl.launch 6 | -------------------------------------------------------------------------------- /~study/src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.project 3 | *.cproject 4 | 5 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/.travis.yml: -------------------------------------------------------------------------------- 1 | # This config file for Travis CI utilizes ros-industrial/industrial_ci package. 2 | # For more info for the package, see https://github.com/ros-industrial/industrial_ci/blob/master/README.rst 3 | sudo: required 4 | dist: trusty 5 | services: 6 | - docker 7 | language: generic 8 | compiler: 9 | - gcc 10 | notifications: 11 | email: 12 | on_success: always 13 | on_failure: always 14 | recipients: 15 | - gm130s@gmail.com 16 | env: 17 | matrix: 18 | - ROS_DISTRO="kinetic" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu USE_DEB=true 19 | - ROS_DISTRO="kinetic" PRERELEASE=true PRERELEASE_DOWNSTREAM_DEPTH=0 20 | matrix: 21 | allow_failures: 22 | - env: ROS_DISTRO="kinetic" PRERELEASE=true PRERELEASE_DOWNSTREAM_DEPTH=0 23 | install: 24 | - git clone https://github.com/ros-industrial/industrial_ci.git .ci_config && source .ci_config/travis.sh 25 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/README.md: -------------------------------------------------------------------------------- 1 | ROS Navigation Stack 2 | ==================== 3 | 4 | A 2D navigation stack that takes in information from odometry, sensor 5 | streams, and a goal pose and outputs safe velocity commands that are sent 6 | to a mobile base. 7 | 8 | * AMD64 Debian Job Status: [![Build Status](http://build.ros.org/buildStatus/icon?job=Kbin_uX64__navigation__ubuntu_xenial_amd64__binary)](http://build.ros.org/view/Kbin_uX64/job/Kbin_uX64__navigation__ubuntu_xenial_amd64__binary/) 9 | 10 | Related stacks: 11 | 12 | * http://github.com/ros-planning/navigation_msgs (new in Jade+) 13 | * http://github.com/ros-planning/navigation_tutorials 14 | * http://github.com/ros-planning/navigation_experimental 15 | 16 | For discussion, please check out the 17 | https://groups.google.com/group/ros-sig-navigation mailing list. 18 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/examples/amcl_diff.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/examples/amcl_omni.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/include/amcl/pf/eig3.h: -------------------------------------------------------------------------------- 1 | 2 | /* Eigen-decomposition for symmetric 3x3 real matrices. 3 | Public domain, copied from the public domain Java library JAMA. */ 4 | 5 | #ifndef _eig_h 6 | 7 | /* Symmetric matrix A => eigenvectors in columns of V, corresponding 8 | eigenvalues in d. */ 9 | void eigen_decomposition(double A[3][3], double V[3][3], double d[3]); 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/package.xml: -------------------------------------------------------------------------------- 1 | 2 | amcl 3 | 1.14.3 4 | 5 |

6 | amcl is a probabilistic localization system for a robot moving in 7 | 2D. It implements the adaptive (or KLD-sampling) Monte Carlo 8 | localization approach (as described by Dieter Fox), which uses a 9 | particle filter to track the pose of a robot against a known map. 10 |

11 |

12 | This node is derived, with thanks, from Andrew Howard's excellent 13 | 'amcl' Player driver. 14 |

15 |
16 | http://wiki.ros.org/amcl 17 | Brian P. Gerkey 18 | contradict@gmail.com 19 | David V. Lu!! 20 | Michael Ferguson 21 | Aaron Hoy 22 | LGPL 23 | 24 | catkin 25 | 26 | rosbag 27 | dynamic_reconfigure 28 | message_filters 29 | nav_msgs 30 | roscpp 31 | std_srvs 32 | tf 33 | 34 | rosbag 35 | roscpp 36 | dynamic_reconfigure 37 | tf 38 | nav_msgs 39 | std_srvs 40 | 41 | rostest 42 | map_server 43 |
44 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/src/amcl/map/map.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Player - One Hell of a Robot Server 3 | * Copyright (C) 2000 Brian Gerkey & Kasper Stoy 4 | * gerkey@usc.edu kaspers@robotics.usc.edu 5 | * 6 | * This library is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU Lesser General Public 8 | * License as published by the Free Software Foundation; either 9 | * version 2.1 of the License, or (at your option) any later version. 10 | * 11 | * This library is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | * Lesser General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU Lesser General Public 17 | * License along with this library; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 | * 20 | */ 21 | /************************************************************************** 22 | * Desc: Global map (grid-based) 23 | * Author: Andrew Howard 24 | * Date: 6 Feb 2003 25 | * CVS: $Id: map.c 1713 2003-08-23 04:03:43Z inspectorg $ 26 | **************************************************************************/ 27 | 28 | #include 29 | #include 30 | #include 31 | #include 32 | #include 33 | 34 | #include "amcl/map/map.h" 35 | 36 | 37 | // Create a new map 38 | map_t *map_alloc(void) 39 | { 40 | map_t *map; 41 | 42 | map = (map_t*) malloc(sizeof(map_t)); 43 | 44 | // Assume we start at (0, 0) 45 | map->origin_x = 0; 46 | map->origin_y = 0; 47 | 48 | // Make the size odd 49 | map->size_x = 0; 50 | map->size_y = 0; 51 | map->scale = 0; 52 | 53 | // Allocate storage for main map 54 | map->cells = (map_cell_t*) NULL; 55 | 56 | return map; 57 | } 58 | 59 | 60 | // Destroy a map 61 | void map_free(map_t *map) 62 | { 63 | free(map->cells); 64 | free(map); 65 | return; 66 | } 67 | 68 | 69 | // Get the cell at the given point 70 | map_cell_t *map_get_cell(map_t *map, double ox, double oy, double oa) 71 | { 72 | int i, j; 73 | map_cell_t *cell; 74 | 75 | i = MAP_GXWX(map, ox); 76 | j = MAP_GYWY(map, oy); 77 | 78 | if (!MAP_VALID(map, i, j)) 79 | return NULL; 80 | 81 | cell = map->cells + MAP_INDEX(map, i, j); 82 | return cell; 83 | } 84 | 85 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/test/basic_localization_stage.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 49 | 50 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/test/global_localization_stage.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 49 | 50 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/test/rosie_multilaser.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 49 | 50 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/test/set_pose.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rospy 4 | 5 | import math 6 | from tf import transformations 7 | from geometry_msgs.msg import PoseWithCovarianceStamped 8 | 9 | 10 | class PoseSetter(rospy.SubscribeListener): 11 | def __init__(self, pose, stamp, publish_time): 12 | self.pose = pose 13 | self.stamp = stamp 14 | self.publish_time = publish_time 15 | 16 | def peer_subscribe(self, topic_name, topic_publish, peer_publish): 17 | p = PoseWithCovarianceStamped() 18 | p.header.frame_id = "map" 19 | p.header.stamp = self.stamp 20 | p.pose.pose.position.x = self.pose[0] 21 | p.pose.pose.position.y = self.pose[1] 22 | (p.pose.pose.orientation.x, 23 | p.pose.pose.orientation.y, 24 | p.pose.pose.orientation.z, 25 | p.pose.pose.orientation.w) = transformations.quaternion_from_euler(0, 0, self.pose[2]) 26 | p.pose.covariance[6*0+0] = 0.5 * 0.5 27 | p.pose.covariance[6*1+1] = 0.5 * 0.5 28 | p.pose.covariance[6*3+3] = math.pi/12.0 * math.pi/12.0 29 | # wait for the desired publish time 30 | while rospy.get_rostime() < self.publish_time: 31 | rospy.sleep(0.01) 32 | peer_publish(p) 33 | 34 | 35 | if __name__ == '__main__': 36 | pose = map(float, rospy.myargv()[1:4]) 37 | t_stamp = rospy.Time() 38 | t_publish = rospy.Time() 39 | if len(rospy.myargv()) > 4: 40 | t_stamp = rospy.Time.from_sec(float(rospy.myargv()[4])) 41 | if len(rospy.myargv()) > 5: 42 | t_publish = rospy.Time.from_sec(float(rospy.myargv()[5])) 43 | rospy.init_node('pose_setter', anonymous=True) 44 | rospy.loginfo("Going to publish pose {} with stamp {} at {}".format(pose, t_stamp.to_sec(), t_publish.to_sec())) 45 | pub = rospy.Publisher("initialpose", PoseWithCovarianceStamped, PoseSetter(pose, stamp=t_stamp, publish_time=t_publish), queue_size=1) 46 | rospy.spin() 47 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/test/small_loop_prf.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 46 | 47 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/test/texas_greenroom_loop.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 38 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/test/texas_greenroom_loop_corrected.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 38 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/amcl/test/texas_willow_hallway_loop_corrected.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 37 | 38 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/blp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A implementation of a local planner using either a DWA or Trajectory Rollout approach based on configuration parameters. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/cfg/LocalPlannerLimits.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # Generic Local Planner configuration 3 | 4 | # from dynamic_reconfigure.parameter_generator_catkin import * 5 | 6 | 7 | # if __name__ == "__main__": 8 | # gen = ParameterGenerator() 9 | # add_generic_localplanner_params(gen) 10 | # exit(gen.generate(PACKAGE, "base_local_planner", "LocalPlannerLimits")) 11 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/include/base_local_planner/planar_laser_scan.h: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | * 3 | * Software License Agreement (BSD License) 4 | * 5 | * Copyright (c) 2008, Willow Garage, Inc. 6 | * All rights reserved. 7 | * 8 | * Redistribution and use in source and binary forms, with or without 9 | * modification, are permitted provided that the following conditions 10 | * are met: 11 | * 12 | * * Redistributions of source code must retain the above copyright 13 | * notice, this list of conditions and the following disclaimer. 14 | * * Redistributions in binary form must reproduce the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer in the documentation and/or other materials provided 17 | * with the distribution. 18 | * * Neither the name of the Willow Garage nor the names of its 19 | * contributors may be used to endorse or promote products derived 20 | * from this software without specific prior written permission. 21 | * 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 25 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 26 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 27 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 28 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 29 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 30 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 | * POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | * Author: Eitan Marder-Eppstein 36 | *********************************************************************/ 37 | #ifndef TRAJECTORY_ROLLOUT_PLANAR_LASER_SCAN_H_ 38 | #define TRAJECTORY_ROLLOUT_PLANAR_LASER_SCAN_H_ 39 | 40 | #include 41 | #include 42 | 43 | namespace base_local_planner { 44 | /** 45 | * @class PlanarLaserScan 46 | * @brief Stores a scan from a planar laser that can be used to clear freespace 47 | */ 48 | class PlanarLaserScan { 49 | public: 50 | PlanarLaserScan() {} 51 | geometry_msgs::Point32 origin; 52 | sensor_msgs::PointCloud cloud; 53 | double angle_min, angle_max, angle_increment; 54 | }; 55 | }; 56 | 57 | #endif 58 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/include/base_local_planner/trajectory_inc.h: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Copyright (c) 2008, Willow Garage, Inc. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions 9 | * are met: 10 | * 11 | * * Redistributions of source code must retain the above copyright 12 | * notice, this list of conditions and the following disclaimer. 13 | * * Redistributions in binary form must reproduce the above 14 | * copyright notice, this list of conditions and the following 15 | * disclaimer in the documentation and/or other materials provided 16 | * with the distribution. 17 | * * Neither the name of the Willow Garage nor the names of its 18 | * contributors may be used to endorse or promote products derived 19 | * from this software without specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | * POSSIBILITY OF SUCH DAMAGE. 33 | *********************************************************************/ 34 | #ifndef TRAJECTORY_INC_H_ 35 | #define TRAJECTORY_INC_H_ 36 | 37 | #include 38 | 39 | #ifndef DBL_MAX /* Max decimal value of a double */ 40 | #define DBL_MAX std::numeric_limits::max() // 1.7976931348623157e+308 41 | #endif 42 | 43 | #ifndef DBL_MIN //Min decimal value of a double 44 | #define DBL_MIN std::numeric_limits::min() // 2.2250738585072014e-308 45 | #endif 46 | 47 | #endif 48 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/msg/Position2DInt.msg: -------------------------------------------------------------------------------- 1 | int64 x 2 | int64 y -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from distutils.core import setup 3 | from catkin_pkg.python_setup import generate_distutils_setup 4 | 5 | d = generate_distutils_setup( 6 | packages = ['local_planner_limits'], 7 | package_dir = {'': 'src'}, 8 | ) 9 | 10 | setup(**d) 11 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/src/local_planner_limits/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/src/map_cell.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Copyright (c) 2008, Willow Garage, Inc. 5 | * All rights reserved. 6 | * 7 | * Redistribution and use in source and binary forms, with or without 8 | * modification, are permitted provided that the following conditions 9 | * are met: 10 | * 11 | * * Redistributions of source code must retain the above copyright 12 | * notice, this list of conditions and the following disclaimer. 13 | * * Redistributions in binary form must reproduce the above 14 | * copyright notice, this list of conditions and the following 15 | * disclaimer in the documentation and/or other materials provided 16 | * with the distribution. 17 | * * Neither the name of the Willow Garage nor the names of its 18 | * contributors may be used to endorse or promote products derived 19 | * from this software without specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | * POSSIBILITY OF SUCH DAMAGE. 33 | *********************************************************************/ 34 | 35 | #include 36 | 37 | namespace base_local_planner{ 38 | 39 | MapCell::MapCell() 40 | : cx(0), cy(0), 41 | target_dist(DBL_MAX), 42 | target_mark(false), 43 | within_robot(false) 44 | {} 45 | 46 | MapCell::MapCell(const MapCell& mc) 47 | : cx(mc.cx), cy(mc.cy), 48 | target_dist(mc.target_dist), 49 | target_mark(mc.target_mark), 50 | within_robot(mc.within_robot) 51 | {} 52 | }; 53 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/src/prefer_forward_cost_function.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * prefer_forward_cost_function.cpp 3 | * 4 | * Created on: Apr 4, 2012 5 | * Author: tkruse 6 | */ 7 | 8 | #include 9 | 10 | #include 11 | 12 | namespace base_local_planner { 13 | 14 | 15 | double PreferForwardCostFunction::scoreTrajectory(Trajectory &traj) { 16 | // backward motions bad on a robot without backward sensors 17 | if (traj.xv_ < 0.0) { 18 | return penalty_; 19 | } 20 | // strafing motions also bad on such a robot 21 | if (traj.xv_ < 0.1 && fabs(traj.thetav_) < 0.2) { 22 | return penalty_; 23 | } 24 | // the more we rotate, the less we progress forward 25 | return fabs(traj.thetav_) * 10; 26 | } 27 | 28 | } /* namespace base_local_planner */ 29 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/src/twirling_cost_function.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * twirling_cost_function.cpp 3 | * 4 | * Created on: Apr 20, 2016 5 | * Author: Morgan Quigley 6 | */ 7 | 8 | #include 9 | 10 | #include 11 | 12 | namespace base_local_planner { 13 | 14 | double TwirlingCostFunction::scoreTrajectory(Trajectory &traj) { 15 | return fabs(traj.thetav_); // add cost for making the robot spin 16 | } 17 | 18 | } /* namespace base_local_planner */ 19 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/test/gtest_main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * gtest_main.cpp 3 | * 4 | * Created on: Apr 6, 2012 5 | * Author: tkruse 6 | */ 7 | 8 | #include 9 | 10 | #include 11 | 12 | int main(int argc, char **argv) { 13 | std::cout << "Running main() from gtest_main.cc\n"; 14 | 15 | testing::InitGoogleTest(&argc, argv); 16 | return RUN_ALL_TESTS(); 17 | } 18 | 19 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/test/trajectory_generator_test.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * footprint_helper_test.cpp 3 | * 4 | * Created on: May 2, 2012 5 | * Author: tkruse 6 | */ 7 | 8 | #include 9 | 10 | #include 11 | 12 | #include 13 | 14 | namespace base_local_planner { 15 | 16 | class TrajectoryGeneratorTest : public testing::Test { 17 | public: 18 | SimpleTrajectoryGenerator tg; 19 | 20 | TrajectoryGeneratorTest() { 21 | } 22 | 23 | virtual void TestBody(){} 24 | }; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/base_local_planner/test/wavefront_map_accessor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * wavefront_map_accessor.h 3 | * 4 | * Created on: May 2, 2012 5 | * Author: tkruse 6 | */ 7 | 8 | #ifndef WAVEFRONT_MAP_ACCESSOR_H_ 9 | #define WAVEFRONT_MAP_ACCESSOR_H_ 10 | #include 11 | namespace base_local_planner { 12 | 13 | /** 14 | * Map_grids rely on costmaps to identify obstacles. We need a costmap that we can easily manipulate for unit tests. 15 | * This class has a grid map where we can set grid cell state, and a synchronize method to make the costmap match. 16 | */ 17 | class WavefrontMapAccessor : public costmap_2d::Costmap2D { 18 | public: 19 | WavefrontMapAccessor(MapGrid* map, double outer_radius) 20 | : costmap_2d::Costmap2D(map->size_x_, map->size_y_, 1, 0, 0), 21 | map_(map), outer_radius_(outer_radius) { 22 | synchronize(); 23 | } 24 | 25 | virtual ~WavefrontMapAccessor(){}; 26 | 27 | void synchronize(){ 28 | // Write Cost Data from the map 29 | for(unsigned int x = 0; x < size_x_; x++){ 30 | for (unsigned int y = 0; y < size_y_; y++){ 31 | unsigned int ind = x + (y * size_x_); 32 | if(map_->operator ()(x, y).target_dist == 1) { 33 | costmap_[ind] = costmap_2d::LETHAL_OBSTACLE; 34 | } else { 35 | costmap_[ind] = 0; 36 | } 37 | } 38 | } 39 | } 40 | 41 | private: 42 | MapGrid* map_; 43 | double outer_radius_; 44 | }; 45 | 46 | } 47 | 48 | 49 | 50 | #endif /* WAVEFRONT_MAP_ACCESSOR_H_ */ 51 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/carrot_planner/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package carrot_planner 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.14.3 (2018-03-16) 6 | ------------------- 7 | * Merge pull request `#672 `_ from ros-planning/email_update_kinetic 8 | update maintainer email (kinetic) 9 | * Merge pull request `#648 `_ from aaronhoy/kinetic_add_ahoy 10 | Add myself as a maintainer. 11 | * Contributors: Aaron Hoy, Michael Ferguson 12 | 13 | 1.14.2 (2017-08-14) 14 | ------------------- 15 | 16 | 1.14.1 (2017-08-07) 17 | ------------------- 18 | * Fix CMakeLists + package.xmls (`#548 `_) 19 | * Contributors: Martin Günther, Vincent Rabaud 20 | 21 | 1.14.0 (2016-05-20) 22 | ------------------- 23 | 24 | 1.13.1 (2015-10-29) 25 | ------------------- 26 | 27 | 1.13.0 (2015-03-17) 28 | ------------------- 29 | 30 | 1.12.0 (2015-02-04) 31 | ------------------- 32 | * update maintainer email 33 | * Contributors: Michael Ferguson 34 | 35 | 1.11.15 (2015-02-03) 36 | -------------------- 37 | * Add ARCHIVE_DESTINATION for static builds 38 | * Contributors: Gary Servin 39 | 40 | 1.11.14 (2014-12-05) 41 | -------------------- 42 | 43 | 1.11.13 (2014-10-02) 44 | -------------------- 45 | 46 | 1.11.12 (2014-10-01) 47 | -------------------- 48 | 49 | 1.11.11 (2014-07-23) 50 | -------------------- 51 | 52 | 1.11.10 (2014-06-25) 53 | -------------------- 54 | 55 | 1.11.9 (2014-06-10) 56 | ------------------- 57 | 58 | 1.11.8 (2014-05-21) 59 | ------------------- 60 | 61 | 1.11.7 (2014-05-21) 62 | ------------------- 63 | 64 | 1.11.4 (2013-09-27) 65 | ------------------- 66 | * Package URL Updates 67 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/carrot_planner/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(carrot_planner) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | roscpp 7 | tf 8 | nav_core 9 | costmap_2d 10 | base_local_planner 11 | pluginlib 12 | ) 13 | 14 | include_directories( 15 | include 16 | ${catkin_INCLUDE_DIRS} 17 | ) 18 | add_definitions(${EIGEN3_DEFINITIONS}) 19 | 20 | catkin_package( 21 | INCLUDE_DIRS include 22 | LIBRARIES carrot_planner 23 | CATKIN_DEPENDS 24 | roscpp 25 | pluginlib 26 | costmap_2d 27 | base_local_planner 28 | nav_core 29 | ) 30 | 31 | add_library(carrot_planner src/carrot_planner.cpp) 32 | add_dependencies(carrot_planner ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 33 | target_link_libraries(carrot_planner 34 | ${catkin_LIBRARIES} 35 | ) 36 | 37 | install(TARGETS carrot_planner 38 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 39 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 40 | ) 41 | 42 | install(DIRECTORY include/${PROJECT_NAME}/ 43 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 44 | PATTERN ".svn" EXCLUDE 45 | ) 46 | 47 | install(FILES bgp_plugin.xml 48 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 49 | ) 50 | 51 | 52 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/carrot_planner/bgp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A simple planner that seeks to place a legal carrot in-front of the robot 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/carrot_planner/package.xml: -------------------------------------------------------------------------------- 1 | 2 | carrot_planner 3 | 1.14.3 4 | 5 | 6 | This planner attempts to find a legal place to put a carrot for the robot to follow. It does this by moving back along the vector between the robot and the goal point. 7 | 8 | 9 | Eitan Marder-Eppstein 10 | Sachin Chitta 11 | contradict@gmail.com 12 | David V. Lu!! 13 | Michael Ferguson 14 | Aaron Hoy 15 | BSD 16 | http://wiki.ros.org/carrot_planner 17 | 18 | catkin 19 | 20 | roscpp 21 | costmap_2d 22 | pluginlib 23 | nav_core 24 | base_local_planner 25 | tf 26 | 27 | eigen 28 | 29 | roscpp 30 | costmap_2d 31 | pluginlib 32 | nav_core 33 | base_local_planner 34 | tf 35 | 36 | eigen 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/clear_costmap_recovery/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package clear_costmap_recovery 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.14.3 (2018-03-16) 6 | ------------------- 7 | * Merge pull request `#672 `_ from ros-planning/email_update_kinetic 8 | update maintainer email (kinetic) 9 | * Merge pull request `#648 `_ from aaronhoy/kinetic_add_ahoy 10 | Add myself as a maintainer. 11 | * update to use non deprecated pluginlib macro (`#630 `_) 12 | * update to use non deprecated pluginlib macro 13 | * multiline version as well 14 | * Contributors: Aaron Hoy, Michael Ferguson, Mikael Arguedas 15 | 16 | 1.14.2 (2017-08-14) 17 | ------------------- 18 | 19 | 1.14.1 (2017-08-07) 20 | ------------------- 21 | * Fix CMakeLists + package.xmls (`#548 `_) 22 | * remove GCC warnings 23 | * Contributors: Martin Günther, Vincent Rabaud 24 | 25 | 1.14.0 (2016-05-20) 26 | ------------------- 27 | 28 | 1.13.1 (2015-10-29) 29 | ------------------- 30 | * proper locking during costmap update 31 | * Contributors: Michael Ferguson 32 | 33 | 1.13.0 (2015-03-17) 34 | ------------------- 35 | 36 | 1.12.0 (2015-02-04) 37 | ------------------- 38 | * update maintainer email 39 | * Contributors: Michael Ferguson 40 | 41 | 1.11.15 (2015-02-03) 42 | -------------------- 43 | * Add ARCHIVE_DESTINATION for static builds 44 | * Contributors: Gary Servin 45 | 46 | 1.11.14 (2014-12-05) 47 | -------------------- 48 | 49 | 1.11.13 (2014-10-02) 50 | -------------------- 51 | * Fix the build (layers library is exported by costmap_2d) 52 | * Contributors: Michael Ferguson 53 | 54 | 1.11.12 (2014-10-01) 55 | -------------------- 56 | * Clarify debug messages 57 | * Initial Clearing Costmap parameter change 58 | * Contributors: David Lu!!, Michael Ferguson 59 | 60 | 1.11.11 (2014-07-23) 61 | -------------------- 62 | 63 | 1.11.10 (2014-06-25) 64 | -------------------- 65 | 66 | 1.11.9 (2014-06-10) 67 | ------------------- 68 | 69 | 1.11.8 (2014-05-21) 70 | ------------------- 71 | 72 | 1.11.7 (2014-05-21) 73 | ------------------- 74 | * update build to find eigen using cmake_modules 75 | * Contributors: Michael Ferguson 76 | 77 | 1.11.5 (2014-01-30) 78 | ------------------- 79 | * Misc. other commits from Groovy Branch 80 | * Change maintainer from Hersh to Lu 81 | 82 | 1.11.4 (2013-09-27) 83 | ------------------- 84 | * Package URL Updates 85 | * Fix bounds setting 86 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/clear_costmap_recovery/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(clear_costmap_recovery) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | cmake_modules 7 | costmap_2d 8 | nav_core 9 | pluginlib 10 | roscpp 11 | tf 12 | ) 13 | 14 | find_package(Eigen3 REQUIRED) 15 | find_package(PCL REQUIRED) 16 | remove_definitions(-DDISABLE_LIBUSB-1.0) 17 | include_directories( 18 | include 19 | ${catkin_INCLUDE_DIRS} 20 | ${EIGEN3_INCLUDE_DIRS} 21 | ${PCL_INCLUDE_DIRS} 22 | ) 23 | add_definitions(${EIGEN3_DEFINITIONS}) 24 | 25 | catkin_package( 26 | INCLUDE_DIRS include 27 | LIBRARIES clear_costmap_recovery 28 | CATKIN_DEPENDS 29 | costmap_2d 30 | nav_core 31 | pluginlib 32 | roscpp 33 | tf 34 | ) 35 | 36 | add_library(clear_costmap_recovery src/clear_costmap_recovery.cpp) 37 | add_dependencies(clear_costmap_recovery ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 38 | target_link_libraries(clear_costmap_recovery ${catkin_LIBRARIES}) 39 | 40 | 41 | ## Configure Tests 42 | if(CATKIN_ENABLE_TESTING) 43 | # Find package test dependencies 44 | find_package(rostest REQUIRED) 45 | 46 | # Add the test folder to the include directories 47 | include_directories(test) 48 | 49 | # Create targets for test executables 50 | add_rostest_gtest(clear_tester test/clear_tests.launch test/clear_tester.cpp) 51 | target_link_libraries(clear_tester clear_costmap_recovery ${GTEST_LIBRARIES}) 52 | endif() 53 | 54 | 55 | install(TARGETS clear_costmap_recovery 56 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 57 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 58 | ) 59 | 60 | install(FILES ccr_plugin.xml 61 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 62 | ) 63 | 64 | install(DIRECTORY include/${PROJECT_NAME}/ 65 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 66 | PATTERN ".svn" EXCLUDE 67 | ) 68 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/clear_costmap_recovery/ccr_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A recovery behavior that reverts the costmap to the static map outside of a user specified window. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/clear_costmap_recovery/package.xml: -------------------------------------------------------------------------------- 1 | 2 | clear_costmap_recovery 3 | 1.14.3 4 | 5 | 6 | This package provides a recovery behavior for the navigation stack that attempts to clear space by reverting the costmaps used by the navigation stack to the static map outside of a given area. 7 | 8 | 9 | Eitan Marder-Eppstein 10 | contradict@gmail.com 11 | David V. Lu!! 12 | Michael Ferguson 13 | Aaron Hoy 14 | BSD 15 | http://wiki.ros.org/clear_costmap_recovery 16 | 17 | catkin 18 | 19 | cmake_modules 20 | roscpp 21 | tf 22 | costmap_2d 23 | nav_core 24 | pluginlib 25 | eigen 26 | 27 | roscpp 28 | tf 29 | costmap_2d 30 | nav_core 31 | pluginlib 32 | eigen 33 | 34 | rostest 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/clear_costmap_recovery/test/clear_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/clear_costmap_recovery/test/params.yaml: -------------------------------------------------------------------------------- 1 | base: 2 | global: 3 | plugins: 4 | - {name: static_map, type: "costmap_2d::StaticLayer"} 5 | - {name: obstacles, type: "costmap_2d::ObstacleLayer"} 6 | - {name: inflation, type: "costmap_2d::InflationLayer"} 7 | obstacles: 8 | track_unknown_space: true 9 | local: 10 | plugins: [] 11 | robot_radius: .5 12 | clear: 13 | clearing_distance: 7.0 14 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/cfg/Costmap2D.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator, double_t, int_t, str_t 4 | 5 | gen = ParameterGenerator() 6 | 7 | gen.add("transform_tolerance", double_t, 0, "Specifies the delay in transform (tf) data that is tolerable in seconds.", 0.3, 0, 10) 8 | gen.add("update_frequency", double_t, 0, "The frequency in Hz for the map to be updated.", 5, 0, 100) 9 | gen.add("publish_frequency", double_t, 0, "The frequency in Hz for the map to be publish display information.", 0, 0, 100) 10 | 11 | #map params 12 | gen.add("width", int_t, 0, "The width of the map in meters.", 10, 0) 13 | gen.add("height", int_t, 0, "The height of the map in meters.", 10, 0) 14 | gen.add("resolution", double_t, 0, "The resolution of the map in meters/cell.", 0.05, 0, 50) 15 | gen.add("origin_x", double_t, 0, "The x origin of the map in the global frame in meters.", 0) 16 | gen.add("origin_y", double_t, 0, "The y origin of the map in the global frame in meters.", 0) 17 | 18 | # robot footprint shape 19 | gen.add("footprint", str_t, 0, "The footprint of the robot specified in the robot_base_frame coordinate frame as a list in the format: [ [x1, y1], [x2, y2], ...., [xn, yn] ].", "[]") 20 | gen.add("robot_radius", double_t, 0, 'The radius of the robot in meters, this parameter should only be set for circular robots, all others should use the footprint parameter described above.', 0.46, 0, 10) 21 | gen.add("footprint_padding", double_t, 0, "How much to pad (increase the size of) the footprint, in meters.", 0.01) 22 | 23 | exit(gen.generate("costmap_2d", "costmap_2d", "Costmap2D")) 24 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/cfg/GenericPlugin.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator, bool_t 4 | 5 | gen = ParameterGenerator() 6 | gen.add("enabled", bool_t, 0, "Whether to apply this plugin or not", True) 7 | exit(gen.generate("costmap_2d", "costmap_2d", "GenericPlugin")) 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/cfg/InflationPlugin.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator, bool_t, double_t 4 | 5 | gen = ParameterGenerator() 6 | 7 | gen.add("enabled", bool_t, 0, "Whether to apply this plugin or not", True) 8 | gen.add("cost_scaling_factor", double_t, 0, "A scaling factor to apply to cost values during inflation.", 10, 0, 100) 9 | gen.add("inflation_radius", double_t, 0, "The radius in meters to which the map inflates obstacle cost values.", 0.55, 0, 50) 10 | gen.add("inflate_unknown", bool_t, 0, "Whether to inflate unknown cells.", False) 11 | 12 | exit(gen.generate("costmap_2d", "costmap_2d", "InflationPlugin")) 13 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/cfg/ObstaclePlugin.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator, bool_t, double_t, int_t 4 | 5 | gen = ParameterGenerator() 6 | 7 | gen.add("enabled", bool_t, 0, "Whether to apply this plugin or not", True) 8 | gen.add("footprint_clearing_enabled", bool_t, 0, "Whether to clear the robot's footprint of lethal obstacles", True) 9 | gen.add("max_obstacle_height", double_t, 0, "The maximum height of any obstacle to be inserted into the costmap in meters.", 2, 0, 50) 10 | 11 | combo_enum = gen.enum([ gen.const("Overwrite", int_t, 0, "Overwrite values"), 12 | gen.const("Maximum", int_t, 1, "Take the maximum of the values"), 13 | gen.const("Nothing", int_t, 99, "Do nothing") 14 | ], 15 | "Method for combining layers enum") 16 | 17 | gen.add("combination_method", int_t, 0, "Method for combining two layers", 1, edit_method=combo_enum) 18 | 19 | 20 | #gen.add("max_obstacle_range", double_t, 0, "The default maximum distance from the robot at which an obstacle will be inserted into the cost map in meters.", 2.5, 0, 50) 21 | #gen.add("raytrace_range", double_t, 0, "The default range in meters at which to raytrace out obstacles from the map using sensor data.", 3, 0, 50) 22 | exit(gen.generate("costmap_2d", "costmap_2d", "ObstaclePlugin")) 23 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/cfg/VoxelPlugin.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator, bool_t, double_t, int_t 4 | 5 | gen = ParameterGenerator() 6 | 7 | gen.add("enabled", bool_t, 0, "Whether to use this plugin or not", True) 8 | gen.add("footprint_clearing_enabled", bool_t, 0, "Whether to clear the robot's footprint of lethal obstacles", True) 9 | gen.add("max_obstacle_height", double_t, 0, "Max Obstacle Height", 2.0, 0, 50) 10 | gen.add("origin_z", double_t, 0, "The z origin of the map in meters.", 0, 0) 11 | gen.add("z_resolution", double_t, 0, "The z resolution of the map in meters/cell.", 0.2, 0, 50) 12 | gen.add("z_voxels", int_t, 0, "The number of voxels to in each vertical column.", 10, 0, 16) 13 | gen.add("unknown_threshold", int_t, 0, 'The number of unknown cells allowed in a column considered to be known', 15, 0, 16) 14 | gen.add("mark_threshold", int_t, 0, 'The maximum number of marked cells allowed in a column considered to be free', 0, 0, 16) 15 | 16 | combo_enum = gen.enum([ gen.const("Overwrite", int_t, 0, "b"), 17 | gen.const("Maximum", int_t, 1, "a") ], 18 | "Method for combining layers enum") 19 | 20 | gen.add("combination_method", int_t, 0, "Method for combining two layers", 1, 0, 2, edit_method=combo_enum) 21 | 22 | exit(gen.generate("costmap_2d", "costmap_2d", "VoxelPlugin")) 23 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/costmap_plugins.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Inflates obstacles to speed collision checking and to make robot prefer to stay away from obstacles. 5 | 6 | 7 | Listens to laser scan and point cloud messages and marks and clears grid cells. 8 | 9 | 10 | Listens to OccupancyGrid messages and copies them in, like from map_server. 11 | 12 | 13 | Similar to obstacle costmap, but uses 3D voxel grid to store data. 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/include/costmap_2d/array_parser.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012, Willow Garage, Inc. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * * Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * * Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * * Neither the name of the Willow Garage, Inc. nor the names of its 14 | * contributors may be used to endorse or promote products derived from 15 | * this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | * 29 | * author: Dave Hershberger 30 | */ 31 | #ifndef COSTMAP_2D_ARRAY_PARSER_H 32 | #define COSTMAP_2D_ARRAY_PARSER_H 33 | 34 | #include 35 | #include 36 | 37 | namespace costmap_2d 38 | { 39 | 40 | /** @brief Parse a vector of vectors of floats from a string. 41 | * @param error_return If no error, error_return is set to "". If 42 | * error, error_return will describe the error. 43 | * Syntax is [[1.0, 2.0], [3.3, 4.4, 5.5], ...] 44 | * 45 | * On error, error_return is set and the return value could be 46 | * anything, like part of a successful parse. */ 47 | std::vector > parseVVF(const std::string& input, std::string& error_return); 48 | 49 | } // end namespace costmap_2d 50 | 51 | #endif // COSTMAP_2D_ARRAY_PARSER_H 52 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/include/costmap_2d/cost_values.h: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | * 3 | * Software License Agreement (BSD License) 4 | * 5 | * Copyright (c) 2008, 2013, Willow Garage, Inc. 6 | * All rights reserved. 7 | * 8 | * Redistribution and use in source and binary forms, with or without 9 | * modification, are permitted provided that the following conditions 10 | * are met: 11 | * 12 | * * Redistributions of source code must retain the above copyright 13 | * notice, this list of conditions and the following disclaimer. 14 | * * Redistributions in binary form must reproduce the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer in the documentation and/or other materials provided 17 | * with the distribution. 18 | * * Neither the name of Willow Garage, Inc. nor the names of its 19 | * contributors may be used to endorse or promote products derived 20 | * from this software without specific prior written permission. 21 | * 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 25 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 26 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 27 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 28 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 29 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 30 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 | * POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | * Author: Eitan Marder-Eppstein 36 | *********************************************************************/ 37 | #ifndef COSTMAP_2D_COST_VALUES_H_ 38 | #define COSTMAP_2D_COST_VALUES_H_ 39 | /** Provides a mapping for often used cost values */ 40 | namespace costmap_2d 41 | { 42 | static const unsigned char NO_INFORMATION = 255; 43 | static const unsigned char LETHAL_OBSTACLE = 254; 44 | static const unsigned char INSCRIBED_INFLATED_OBSTACLE = 253; 45 | static const unsigned char FREE_SPACE = 0; 46 | } 47 | #endif // COSTMAP_2D_COST_VALUES_H_ 48 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/launch/example.launch: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/launch/example_params.yaml: -------------------------------------------------------------------------------- 1 | global_frame: /map 2 | robot_base_frame: base_link 3 | update_frequency: 5.0 4 | publish_frequency: 1.0 5 | 6 | #set if you want the voxel map published 7 | publish_voxel_map: true 8 | 9 | #set to true if you want to initialize the costmap from a static map 10 | static_map: false 11 | 12 | #begin - COMMENT these lines if you set static_map to true 13 | rolling_window: true 14 | width: 6.0 15 | height: 6.0 16 | resolution: 0.025 17 | #end - COMMENT these lines if you set static_map to true 18 | 19 | #START VOXEL STUFF 20 | map_type: voxel 21 | origin_z: 0.0 22 | z_resolution: 0.2 23 | z_voxels: 10 24 | unknown_threshold: 10 25 | mark_threshold: 0 26 | #END VOXEL STUFF 27 | 28 | transform_tolerance: 0.3 29 | obstacle_range: 2.5 30 | max_obstacle_height: 2.0 31 | raytrace_range: 3.0 32 | footprint: [[-0.325, -0.325], [-0.325, 0.325], [0.325, 0.325], [0.46, 0.0], [0.325, -0.325]] 33 | #robot_radius: 0.46 34 | footprint_padding: 0.01 35 | inflation_radius: 0.55 36 | cost_scaling_factor: 10.0 37 | lethal_cost_threshold: 100 38 | observation_sources: base_scan 39 | base_scan: {data_type: LaserScan, expected_update_rate: 0.4, 40 | observation_persistence: 0.0, marking: true, clearing: true, max_obstacle_height: 0.4, min_obstacle_height: 0.08} 41 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/msg/VoxelGrid.msg: -------------------------------------------------------------------------------- 1 | Header header 2 | uint32[] data 3 | geometry_msgs/Point32 origin 4 | geometry_msgs/Vector3 resolutions 5 | uint32 size_x 6 | uint32 size_y 7 | uint32 size_z 8 | 9 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/src/costmap_2d_node.cpp: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | * 3 | * Software License Agreement (BSD License) 4 | * 5 | * Copyright (c) 2008, 2013, Willow Garage, Inc. 6 | * All rights reserved. 7 | * 8 | * Redistribution and use in source and binary forms, with or without 9 | * modification, are permitted provided that the following conditions 10 | * are met: 11 | * 12 | * * Redistributions of source code must retain the above copyright 13 | * notice, this list of conditions and the following disclaimer. 14 | * * Redistributions in binary form must reproduce the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer in the documentation and/or other materials provided 17 | * with the distribution. 18 | * * Neither the name of Willow Garage, Inc. nor the names of its 19 | * contributors may be used to endorse or promote products derived 20 | * from this software without specific prior written permission. 21 | * 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 25 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 26 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 27 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 28 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 29 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 30 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 | * POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | * Author: Eitan Marder-Eppstein 36 | * David V. Lu!! 37 | *********************************************************************/ 38 | #include 39 | #include 40 | 41 | int main(int argc, char** argv) 42 | { 43 | ros::init(argc, argv, "costmap_node"); 44 | tf::TransformListener tf(ros::Duration(10)); 45 | costmap_2d::Costmap2DROS lcr("costmap", tf); 46 | 47 | ros::spin(); 48 | 49 | return (0); 50 | } 51 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/src/layer.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013, Willow Garage, Inc. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * * Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * * Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * * Neither the name of the Willow Garage, Inc. nor the names of its 14 | * contributors may be used to endorse or promote products derived from 15 | * this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | #include "costmap_2d/layer.h" 31 | 32 | namespace costmap_2d 33 | { 34 | 35 | Layer::Layer() 36 | : layered_costmap_(NULL) 37 | , current_(false) 38 | , enabled_(false) 39 | , name_() 40 | , tf_(NULL) 41 | {} 42 | 43 | void Layer::initialize(LayeredCostmap* parent, std::string name, tf::TransformListener *tf) 44 | { 45 | layered_costmap_ = parent; 46 | name_ = name; 47 | tf_ = tf; 48 | onInitialize(); 49 | } 50 | 51 | const std::vector& Layer::getFootprint() const 52 | { 53 | return layered_costmap_->getFootprint(); 54 | } 55 | 56 | } // end namespace costmap_2d 57 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/test/TenByTen.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/~study/src/navigation-kinetic-devel/costmap_2d/test/TenByTen.pgm -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/test/TenByTen.yaml: -------------------------------------------------------------------------------- 1 | image: TenByTen.pgm 2 | resolution: 1.0 3 | origin: [0,0,0] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/test/costmap_params.yaml: -------------------------------------------------------------------------------- 1 | global_frame: /map 2 | robot_base_frame: base_link 3 | update_frequency: 5.0 4 | publish_frequency: 0.0 5 | static_map: true 6 | rolling_window: false 7 | 8 | #START VOXEL STUFF 9 | map_type: voxel 10 | origin_z: 0.0 11 | z_resolution: 0.2 12 | z_voxels: 10 13 | unknown_threshold: 10 14 | mark_threshold: 0 15 | #END VOXEL STUFF 16 | 17 | transform_tolerance: 0.3 18 | obstacle_range: 2.5 19 | max_obstacle_height: 2.0 20 | raytrace_range: 3.0 21 | footprint: [[-0.325, -0.325], [-0.325, 0.325], [0.325, 0.325], [0.46, 0.0], [0.325, -0.325]] 22 | #robot_radius: 0.46 23 | footprint_padding: 0.01 24 | inflation_radius: 0.55 25 | cost_scaling_factor: 10.0 26 | lethal_cost_threshold: 100 27 | observation_sources: base_scan 28 | base_scan: {data_type: LaserScan, expected_update_rate: 0.4, 29 | observation_persistence: 0.0, marking: true, clearing: true, max_obstacle_height: 0.4, min_obstacle_height: 0.08} 30 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/test/footprint_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | footprint_padding: 0 15 | footprint: [[0.1, 0.1], [-0.1, 0.1], [-0.1, -0.1], [0.1, -0.1]] 16 | 17 | 18 | 19 | footprint_padding: 0 20 | footprint: [[0.1, 0.1], [-0.1, 0.1, 77.0], [-0.1, -0.1], [0.1, -0.1]] 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/test/inflation_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/test/obstacle_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/test/simple_driving_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/costmap_2d/test/static_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/dwa_local_planner/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(dwa_local_planner) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | base_local_planner 7 | cmake_modules 8 | costmap_2d 9 | dynamic_reconfigure 10 | nav_core 11 | nav_msgs 12 | pluginlib 13 | pcl_conversions 14 | roscpp 15 | tf 16 | ) 17 | 18 | find_package(Eigen3 REQUIRED) 19 | find_package(PCL REQUIRED) 20 | remove_definitions(-DDISABLE_LIBUSB-1.0) 21 | include_directories( 22 | include 23 | ${catkin_INCLUDE_DIRS} 24 | ${EIGEN3_INCLUDE_DIRS} 25 | ${PCL_INCLUDE_DIRS} 26 | ) 27 | add_definitions(${EIGEN3_DEFINITIONS}) 28 | 29 | # dynamic reconfigure 30 | generate_dynamic_reconfigure_options( 31 | cfg/DWAPlanner.cfg 32 | ) 33 | 34 | catkin_package( 35 | INCLUDE_DIRS include 36 | LIBRARIES dwa_local_planner 37 | CATKIN_DEPENDS 38 | dynamic_reconfigure 39 | nav_msgs 40 | pluginlib 41 | roscpp 42 | ) 43 | 44 | add_library(dwa_local_planner src/dwa_planner.cpp src/dwa_planner_ros.cpp) 45 | add_dependencies(dwa_local_planner ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 46 | target_link_libraries(dwa_local_planner ${catkin_LIBRARIES}) 47 | 48 | install(TARGETS dwa_local_planner 49 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 50 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 51 | ) 52 | 53 | install(FILES blp_plugin.xml 54 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 55 | ) 56 | 57 | install(DIRECTORY include/${PROJECT_NAME}/ 58 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 59 | PATTERN ".svn" EXCLUDE 60 | ) 61 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/dwa_local_planner/blp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A implementation of a local planner using either a DWA approach based on configuration parameters. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/dwa_local_planner/package.xml: -------------------------------------------------------------------------------- 1 | 2 | dwa_local_planner 3 | 1.14.3 4 | 5 | 6 | This package provides an implementation of the Dynamic Window Approach to 7 | local robot navigation on a plane. Given a global plan to follow and a 8 | costmap, the local planner produces velocity commands to send to a mobile 9 | base. This package supports any robot who's footprint can be represented as 10 | a convex polygon or cicrle, and exposes its configuration as ROS parameters 11 | that can be set in a launch file. The parameters for this planner are also 12 | dynamically reconfigurable. This package's ROS wrapper adheres to the 13 | BaseLocalPlanner interface specified in the nav_core package. 14 | 15 | 16 | Eitan Marder-Eppstein 17 | contradict@gmail.com 18 | David V. Lu!! 19 | Michael Ferguson 20 | Aaron Hoy 21 | BSD 22 | http://wiki.ros.org/dwa_local_planner 23 | 24 | catkin 25 | 26 | base_local_planner 27 | cmake_modules 28 | costmap_2d 29 | dynamic_reconfigure 30 | eigen 31 | nav_core 32 | nav_msgs 33 | pluginlib 34 | pcl_conversions 35 | roscpp 36 | tf 37 | 38 | base_local_planner 39 | costmap_2d 40 | dynamic_reconfigure 41 | eigen 42 | nav_core 43 | nav_msgs 44 | pluginlib 45 | roscpp 46 | tf 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/fake_localization/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fake_localization 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.14.3 (2018-03-16) 6 | ------------------- 7 | * Merge pull request `#672 `_ from ros-planning/email_update_kinetic 8 | update maintainer email (kinetic) 9 | * Merge pull request `#648 `_ from aaronhoy/kinetic_add_ahoy 10 | Add myself as a maintainer. 11 | * Contributors: Aaron Hoy, Michael Ferguson 12 | 13 | 1.14.2 (2017-08-14) 14 | ------------------- 15 | 16 | 1.14.1 (2017-08-07) 17 | ------------------- 18 | * Fix CMakeLists + package.xmls (`#548 `_) 19 | * Contributors: Martin Günther, Vincent Rabaud 20 | 21 | 1.14.0 (2016-05-20) 22 | ------------------- 23 | 24 | 1.13.1 (2015-10-29) 25 | ------------------- 26 | * More tolerant initial pose transform lookup. 27 | * Contributors: Daniel Stonier 28 | 29 | 1.13.0 (2015-03-17) 30 | ------------------- 31 | 32 | 1.12.0 (2015-02-04) 33 | ------------------- 34 | * update maintainer email 35 | * Contributors: Michael Ferguson 36 | 37 | 1.11.15 (2015-02-03) 38 | -------------------- 39 | 40 | 1.11.14 (2014-12-05) 41 | -------------------- 42 | 43 | 1.11.13 (2014-10-02) 44 | -------------------- 45 | 46 | 1.11.12 (2014-10-01) 47 | -------------------- 48 | 49 | 1.11.11 (2014-07-23) 50 | -------------------- 51 | 52 | 1.11.10 (2014-06-25) 53 | -------------------- 54 | 55 | 1.11.9 (2014-06-10) 56 | ------------------- 57 | 58 | 1.11.8 (2014-05-21) 59 | ------------------- 60 | 61 | 1.11.7 (2014-05-21) 62 | ------------------- 63 | 64 | 1.11.4 (2013-09-27) 65 | ------------------- 66 | * Package URL Updates 67 | * amcl_pose and particle cloud are now published latched 68 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/fake_localization/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(fake_localization) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | angles 7 | geometry_msgs 8 | message_filters 9 | nav_msgs 10 | rosconsole 11 | roscpp 12 | rospy 13 | tf2_geometry_msgs 14 | ) 15 | 16 | 17 | find_package(Boost REQUIRED COMPONENTS signals) 18 | 19 | catkin_package( 20 | CATKIN_DEPENDS 21 | geometry_msgs 22 | nav_msgs 23 | roscpp 24 | rospy 25 | ) 26 | 27 | include_directories(${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) 28 | 29 | add_executable(fake_localization fake_localization.cpp) 30 | target_link_libraries(fake_localization 31 | ${catkin_LIBRARIES} 32 | ${Boost_LIBRARIES} 33 | ) 34 | add_dependencies(fake_localization ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 35 | 36 | install( 37 | PROGRAMS 38 | static_odom_broadcaster.py 39 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 40 | ) 41 | 42 | install( 43 | TARGETS 44 | fake_localization 45 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 46 | ) 47 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/fake_localization/package.xml: -------------------------------------------------------------------------------- 1 | 2 | fake_localization 3 | 1.14.3 4 | A ROS node that simply forwards odometry information. 5 | Ioan A. Sucan 6 | contradict@gmail.com 7 | David V. Lu!! 8 | Michael Ferguson 9 | Aaron Hoy 10 | BSD 11 | http://wiki.ros.org/fake_localization 12 | 13 | catkin 14 | 15 | angles 16 | roscpp 17 | rosconsole 18 | nav_msgs 19 | geometry_msgs 20 | tf2_geometry_msgs 21 | tf2_ros 22 | message_filters 23 | rospy 24 | 25 | roscpp 26 | rosconsole 27 | nav_msgs 28 | geometry_msgs 29 | tf2_ros 30 | message_filters 31 | rospy 32 | 33 | 34 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/fake_localization/static_odom_broadcaster.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | # 4 | # Similar to static_transform_broadcaster, this node constantly publishes 5 | # static odometry information (Odometry msg and tf). This can be used 6 | # with fake_localization to evaluate planning algorithms without running 7 | # an actual robot with odometry or localization 8 | # 9 | # Author: Armin Hornung 10 | # License: BSD 11 | 12 | import rospy 13 | 14 | import tf 15 | from nav_msgs.msg import Odometry 16 | from geometry_msgs.msg import Pose, Quaternion, Point 17 | 18 | 19 | def publishOdom(): 20 | rospy.init_node('fake_odom') 21 | base_frame_id = rospy.get_param("~base_frame_id", "base_link") 22 | odom_frame_id = rospy.get_param("~odom_frame_id", "odom") 23 | publish_frequency = rospy.get_param("~publish_frequency", 10.0) 24 | pub = rospy.Publisher('odom', Odometry) 25 | tf_pub = tf.TransformBroadcaster() 26 | 27 | #TODO: static pose could be made configurable (cmd.line or parameters) 28 | quat = tf.transformations.quaternion_from_euler(0, 0, 0) 29 | 30 | odom = Odometry() 31 | odom.header.frame_id = odom_frame_id 32 | odom.pose.pose = Pose(Point(0, 0, 0), Quaternion(*quat)) 33 | 34 | rospy.loginfo("Publishing static odometry from \"%s\" to \"%s\"", odom_frame_id, base_frame_id) 35 | r = rospy.Rate(publish_frequency) 36 | while not rospy.is_shutdown(): 37 | odom.header.stamp = rospy.Time.now() 38 | pub.publish(odom) 39 | tf_pub.sendTransform((0, 0, 0), quat, 40 | odom.header.stamp, base_frame_id, odom_frame_id) 41 | r.sleep() 42 | 43 | if __name__ == '__main__': 44 | try: 45 | publishOdom() 46 | except rospy.ROSInterruptException: 47 | pass 48 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/global_planner/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(global_planner) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | angles 7 | costmap_2d 8 | dynamic_reconfigure 9 | geometry_msgs 10 | nav_core 11 | navfn 12 | nav_msgs 13 | pluginlib 14 | roscpp 15 | tf 16 | ) 17 | 18 | generate_dynamic_reconfigure_options( 19 | cfg/GlobalPlanner.cfg 20 | ) 21 | 22 | catkin_package( 23 | INCLUDE_DIRS include 24 | LIBRARIES ${PROJECT_NAME} 25 | CATKIN_DEPENDS 26 | costmap_2d 27 | dynamic_reconfigure 28 | geometry_msgs 29 | nav_core 30 | navfn 31 | nav_msgs 32 | pluginlib 33 | roscpp 34 | tf 35 | ) 36 | 37 | include_directories( 38 | include 39 | ${catkin_INCLUDE_DIRS} 40 | ) 41 | 42 | add_library(${PROJECT_NAME} 43 | src/quadratic_calculator.cpp 44 | src/dijkstra.cpp 45 | src/astar.cpp 46 | src/grid_path.cpp 47 | src/gradient_path.cpp 48 | src/orientation_filter.cpp 49 | src/planner_core.cpp 50 | ) 51 | add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 52 | target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES}) 53 | 54 | add_executable(planner 55 | src/plan_node.cpp 56 | ) 57 | add_dependencies(planner ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 58 | target_link_libraries(planner 59 | ${PROJECT_NAME} 60 | ${catkin_LIBRARIES} 61 | ) 62 | 63 | install(TARGETS ${PROJECT_NAME} planner 64 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 65 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 66 | RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) 67 | 68 | install(DIRECTORY include/${PROJECT_NAME}/ 69 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 70 | PATTERN ".svn" EXCLUDE) 71 | 72 | install(FILES bgp_plugin.xml 73 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) 74 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/global_planner/bgp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A implementation of a grid based planner using Dijkstras or A* 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/global_planner/cfg/GlobalPlanner.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | PACKAGE = "global_planner" 3 | 4 | from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator, int_t, double_t, bool_t 5 | 6 | gen = ParameterGenerator() 7 | 8 | gen.add("lethal_cost", int_t, 0, "Lethal Cost", 253, 1, 255) 9 | gen.add("neutral_cost", int_t, 0, "Neutral Cost", 50, 1, 255) 10 | gen.add("cost_factor", double_t, 0, "Factor to multiply each cost from costmap by", 3.0, 0.01, 5.0) 11 | gen.add("publish_potential", bool_t, 0, "Publish Potential Costmap", True) 12 | 13 | orientation_enum = gen.enum([ 14 | gen.const("None", int_t, 0, "No orientations added except goal orientation"), 15 | gen.const("Forward", int_t, 1, "Orientations point to the next point on the path"), 16 | gen.const("Interpolate", int_t, 2, "Orientations are a linear blend of start and goal pose"), 17 | gen.const("ForwardThenInterpolate", 18 | int_t, 3, "Forward orientation until last straightaway, then a linear blend until the goal pose"), 19 | ], "How to set the orientation of each point") 20 | 21 | gen.add("orientation_mode", int_t, 0, "How to set the orientation of each point", 1, 0, 3, 22 | edit_method=orientation_enum) 23 | 24 | exit(gen.generate(PACKAGE, "global_planner", "GlobalPlanner")) 25 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/global_planner/include/global_planner/grid_path.h: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | * 3 | * Software License Agreement (BSD License) 4 | * 5 | * Copyright (c) 2008, 2013, Willow Garage, Inc. 6 | * All rights reserved. 7 | * 8 | * Redistribution and use in source and binary forms, with or without 9 | * modification, are permitted provided that the following conditions 10 | * are met: 11 | * 12 | * * Redistributions of source code must retain the above copyright 13 | * notice, this list of conditions and the following disclaimer. 14 | * * Redistributions in binary form must reproduce the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer in the documentation and/or other materials provided 17 | * with the distribution. 18 | * * Neither the name of Willow Garage, Inc. nor the names of its 19 | * contributors may be used to endorse or promote products derived 20 | * from this software without specific prior written permission. 21 | * 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 25 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 26 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 27 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 28 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 29 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 30 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 | * POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | * Author: Eitan Marder-Eppstein 36 | * David V. Lu!! 37 | *********************************************************************/ 38 | #ifndef _GRID_PATH_H 39 | #define _GRID_PATH_H 40 | #include 41 | #include 42 | 43 | namespace global_planner { 44 | 45 | class GridPath : public Traceback { 46 | public: 47 | GridPath(PotentialCalculator* p_calc): Traceback(p_calc){} 48 | bool getPath(float* potential, double start_x, double start_y, double end_x, double end_y, std::vector >& path); 49 | }; 50 | 51 | } //end namespace global_planner 52 | #endif 53 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/global_planner/include/global_planner/quadratic_calculator.h: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | * 3 | * Software License Agreement (BSD License) 4 | * 5 | * Copyright (c) 2008, 2013, Willow Garage, Inc. 6 | * All rights reserved. 7 | * 8 | * Redistribution and use in source and binary forms, with or without 9 | * modification, are permitted provided that the following conditions 10 | * are met: 11 | * 12 | * * Redistributions of source code must retain the above copyright 13 | * notice, this list of conditions and the following disclaimer. 14 | * * Redistributions in binary form must reproduce the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer in the documentation and/or other materials provided 17 | * with the distribution. 18 | * * Neither the name of Willow Garage, Inc. nor the names of its 19 | * contributors may be used to endorse or promote products derived 20 | * from this software without specific prior written permission. 21 | * 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 25 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 26 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 27 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 28 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 29 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 30 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 | * POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | * Author: Eitan Marder-Eppstein 36 | * David V. Lu!! 37 | *********************************************************************/ 38 | #ifndef _QUADRATIC_CALCULATOR_H 39 | #define _QUADRATIC_CALCULATOR_H 40 | #include 41 | #include 42 | 43 | namespace global_planner { 44 | 45 | class QuadraticCalculator : public PotentialCalculator { 46 | public: 47 | QuadraticCalculator(int nx, int ny): PotentialCalculator(nx,ny) {} 48 | 49 | float calculatePotential(float* potential, unsigned char cost, int n, float prev_potential); 50 | }; 51 | 52 | 53 | } //end namespace global_planner 54 | #endif 55 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/global_planner/package.xml: -------------------------------------------------------------------------------- 1 | 2 | global_planner 3 | 1.14.3 4 | 5 | A path planner library and node. 6 | 7 | David V. Lu!! 8 | Michael Ferguson 9 | Aaron Hoy 10 | BSD 11 | 12 | David Lu!! 13 | http://wiki.ros.org/global_planner 14 | 15 | catkin 16 | 17 | angles 18 | costmap_2d 19 | dynamic_reconfigure 20 | geometry_msgs 21 | nav_core 22 | nav_msgs 23 | navfn 24 | pluginlib 25 | roscpp 26 | tf 27 | 28 | costmap_2d 29 | dynamic_reconfigure 30 | geometry_msgs 31 | nav_core 32 | nav_msgs 33 | navfn 34 | pluginlib 35 | roscpp 36 | tf 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/map_server/package.xml: -------------------------------------------------------------------------------- 1 | 2 | map_server 3 | 1.14.3 4 | 5 | 6 | map_server provides the map_server ROS Node, which offers map data as a ROS Service. It also provides the map_saver command-line utility, which allows dynamically generated maps to be saved to file. 7 | 8 | 9 | Brian Gerkey, Tony Pratkanis 10 | contradict@gmail.com 11 | David V. Lu!! 12 | Michael Ferguson 13 | Aaron Hoy 14 | http://wiki.ros.org/map_server 15 | BSD 16 | 17 | catkin 18 | 19 | bullet 20 | nav_msgs 21 | roscpp 22 | sdl 23 | sdl-image 24 | tf2 25 | yaml-cpp 26 | 27 | bullet 28 | nav_msgs 29 | roscpp 30 | sdl 31 | sdl-image 32 | tf2 33 | yaml-cpp 34 | 35 | rospy 36 | rostest 37 | rosunit 38 | 39 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/map_server/src/map_server.dox: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | @mainpage 4 | 5 | @htmlinclude manifest.html 6 | 7 | Command-line usage is in the wiki. 8 | */ 9 | 10 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/map_server/test/rtest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/map_server/test/test_constants.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2008, Willow Garage, Inc. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * * Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * * Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * * Neither the name of the Willow Garage, Inc. nor the names of its 14 | * contributors may be used to endorse or promote products derived from 15 | * this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | #ifndef MAP_SERVER_TEST_CONSTANTS_H 30 | #define MAP_SERVER_TEST_CONSTANTS_H 31 | 32 | /* Author: Brian Gerkey */ 33 | 34 | /* This file externs global constants shared among tests */ 35 | 36 | extern const unsigned int g_valid_image_width; 37 | extern const unsigned int g_valid_image_height; 38 | extern const char g_valid_image_content[]; 39 | extern const char* g_valid_png_file; 40 | extern const char* g_valid_bmp_file; 41 | extern const float g_valid_image_res; 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/map_server/test/testmap.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/~study/src/navigation-kinetic-devel/map_server/test/testmap.bmp -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/map_server/test/testmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/~study/src/navigation-kinetic-devel/map_server/test/testmap.png -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/map_server/test/testmap.yaml: -------------------------------------------------------------------------------- 1 | image: testmap.png 2 | resolution: 0.1 3 | origin: [2.0, 3.0, 1.0] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/move_base/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(move_base) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | actionlib 7 | base_local_planner 8 | clear_costmap_recovery 9 | cmake_modules 10 | costmap_2d 11 | dynamic_reconfigure 12 | geometry_msgs 13 | message_generation 14 | move_base_msgs 15 | nav_core 16 | nav_msgs 17 | navfn 18 | pluginlib 19 | roscpp 20 | rospy 21 | rotate_recovery 22 | std_srvs 23 | tf 24 | ) 25 | find_package(Eigen3 REQUIRED) 26 | add_definitions(${EIGEN3_DEFINITIONS}) 27 | 28 | # dynamic reconfigure 29 | generate_dynamic_reconfigure_options( 30 | cfg/MoveBase.cfg 31 | ) 32 | 33 | catkin_package( 34 | CATKIN_DEPENDS 35 | dynamic_reconfigure 36 | geometry_msgs 37 | move_base_msgs 38 | nav_msgs 39 | roscpp 40 | ) 41 | 42 | include_directories( 43 | include 44 | ${catkin_INCLUDE_DIRS} 45 | ${EIGEN3_INCLUDE_DIRS} 46 | ) 47 | 48 | # move_base 49 | add_library(move_base 50 | src/move_base.cpp 51 | ) 52 | target_link_libraries(move_base 53 | ${Boost_LIBRARIES} 54 | ${catkin_LIBRARIES} 55 | ) 56 | add_dependencies(move_base ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 57 | 58 | add_executable(move_base_node 59 | src/move_base_node.cpp 60 | ) 61 | add_dependencies(move_base_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 62 | target_link_libraries(move_base_node move_base) 63 | set_target_properties(move_base_node PROPERTIES OUTPUT_NAME move_base) 64 | 65 | install( 66 | TARGETS 67 | move_base 68 | move_base_node 69 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 70 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 71 | RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 72 | ) 73 | 74 | ## Mark cpp header files for installation 75 | install(DIRECTORY include/${PROJECT_NAME}/ 76 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 77 | FILES_MATCHING PATTERN "*.h" 78 | ) 79 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/move_base/planner_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/move_base/src/move_base_node.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2013, Willow Garage, Inc. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * * Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * * Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * * Neither the name of the Willow Garage, Inc. nor the names of its 14 | * contributors may be used to endorse or promote products derived from 15 | * this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | 30 | #include 31 | 32 | int main(int argc, char** argv){ 33 | ros::init(argc, argv, "move_base_node"); 34 | tf::TransformListener tf(ros::Duration(10)); 35 | 36 | move_base::MoveBase move_base( tf ); 37 | 38 | //ros::MultiThreadedSpinner s; 39 | ros::spin(); 40 | 41 | return(0); 42 | } 43 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/move_slow_and_clear/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package move_slow_and_clear 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.14.3 (2018-03-16) 6 | ------------------- 7 | * Merge pull request `#672 `_ from ros-planning/email_update_kinetic 8 | update maintainer email (kinetic) 9 | * Merge pull request `#648 `_ from aaronhoy/kinetic_add_ahoy 10 | Add myself as a maintainer. 11 | * update to use non deprecated pluginlib macro (`#630 `_) 12 | * update to use non deprecated pluginlib macro 13 | * multiline version as well 14 | * Contributors: Aaron Hoy, Michael Ferguson, Mikael Arguedas 15 | 16 | 1.14.2 (2017-08-14) 17 | ------------------- 18 | 19 | 1.14.1 (2017-08-07) 20 | ------------------- 21 | * Fix CMakeLists + package.xmls (`#548 `_) 22 | * address gcc6 build error 23 | * remove GCC warnings 24 | * Contributors: Lukas Bulwahn, Martin Günther, Vincent Rabaud 25 | 26 | 1.14.0 (2016-05-20) 27 | ------------------- 28 | 29 | 1.13.1 (2015-10-29) 30 | ------------------- 31 | 32 | 1.13.0 (2015-03-17) 33 | ------------------- 34 | 35 | 1.12.0 (2015-02-04) 36 | ------------------- 37 | * update maintainer email 38 | * Contributors: Michael Ferguson 39 | 40 | 1.11.15 (2015-02-03) 41 | -------------------- 42 | * Add ARCHIVE_DESTINATION for static builds 43 | * Contributors: Gary Servin 44 | 45 | 1.11.14 (2014-12-05) 46 | -------------------- 47 | 48 | 1.11.13 (2014-10-02) 49 | -------------------- 50 | 51 | 1.11.12 (2014-10-01) 52 | -------------------- 53 | 54 | 1.11.11 (2014-07-23) 55 | -------------------- 56 | * Use service call, rather than system call, to call dynamic 57 | reconfigure when decreasing move_base speed. 58 | * Contributors: Ryohei Ueda 59 | 60 | 1.11.10 (2014-06-25) 61 | -------------------- 62 | 63 | 1.11.9 (2014-06-10) 64 | ------------------- 65 | 66 | 1.11.8 (2014-05-21) 67 | ------------------- 68 | 69 | 1.11.7 (2014-05-21) 70 | ------------------- 71 | * update build to find eigen using cmake_modules 72 | * Contributors: Michael Ferguson 73 | 74 | 1.11.4 (2013-09-27) 75 | ------------------- 76 | * Package URL Updates 77 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/move_slow_and_clear/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(move_slow_and_clear) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | cmake_modules 7 | costmap_2d 8 | geometry_msgs 9 | nav_core 10 | pluginlib 11 | roscpp 12 | ) 13 | 14 | 15 | find_package(Eigen3 REQUIRED) 16 | find_package(PCL REQUIRED) 17 | remove_definitions(-DDISABLE_LIBUSB-1.0) 18 | find_package(Boost REQUIRED COMPONENTS thread) 19 | include_directories( 20 | include 21 | ${catkin_INCLUDE_DIRS} 22 | ${EIGEN3_INCLUDE_DIRS} 23 | ${PCL_INCLUDE_DIRS} 24 | ) 25 | add_definitions(${EIGEN3_DEFINITIONS}) 26 | 27 | catkin_package( 28 | INCLUDE_DIRS include 29 | LIBRARIES move_slow_and_clear 30 | CATKIN_DEPENDS 31 | geometry_msgs 32 | nav_core 33 | pluginlib 34 | roscpp 35 | ) 36 | 37 | add_library(${PROJECT_NAME} src/move_slow_and_clear.cpp) 38 | add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 39 | target_link_libraries(${PROJECT_NAME} 40 | ${Boost_LIBRARIES} 41 | ${catkin_LIBRARIES} 42 | ) 43 | 44 | ## Install project namespaced headers 45 | install(DIRECTORY include/${PROJECT_NAME}/ 46 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 47 | FILES_MATCHING PATTERN "*.h" 48 | PATTERN ".svn" EXCLUDE) 49 | 50 | install(TARGETS move_slow_and_clear 51 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 52 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 53 | ) 54 | 55 | install(FILES recovery_plugin.xml 56 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 57 | ) 58 | 59 | 60 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/move_slow_and_clear/package.xml: -------------------------------------------------------------------------------- 1 | 2 | move_slow_and_clear 3 | 1.14.3 4 | 5 | 6 | move_slow_and_clear 7 | 8 | 9 | Eitan Marder-Eppstein 10 | contradict@gmail.com 11 | David V. Lu!! 12 | Michael Ferguson 13 | Aaron Hoy 14 | BSD 15 | http://wiki.ros.org/move_slow_and_clear 16 | 17 | catkin 18 | 19 | cmake_modules 20 | roscpp 21 | nav_core 22 | costmap_2d 23 | geometry_msgs 24 | pluginlib 25 | pluginlib 26 | 27 | roscpp 28 | nav_core 29 | costmap_2d 30 | geometry_msgs 31 | pluginlib 32 | pluginlib 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/move_slow_and_clear/recovery_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A recovery behavior that clears information in the costmap within the circumscribed radius of the robot and then limits the speed of the robot. Note, this recovery behavior is not truly safe, the robot may hit things, it'll just happen at a user-specified speed. Also, this recovery behavior is only compatible with local planners that allow maximum speeds to be set via dynamic reconfigure. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/nav_core/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package nav_core 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.14.3 (2018-03-16) 6 | ------------------- 7 | * Merge pull request `#672 `_ from ros-planning/email_update_kinetic 8 | update maintainer email (kinetic) 9 | * Merge pull request `#648 `_ from aaronhoy/kinetic_add_ahoy 10 | Add myself as a maintainer. 11 | * Contributors: Aaron Hoy, Michael Ferguson 12 | 13 | 1.14.2 (2017-08-14) 14 | ------------------- 15 | 16 | 1.14.1 (2017-08-07) 17 | ------------------- 18 | * makePlan overload must return. 19 | * Contributors: Eric Tappan 20 | 21 | 1.14.0 (2016-05-20) 22 | ------------------- 23 | 24 | 1.13.1 (2015-10-29) 25 | ------------------- 26 | * Merge pull request `#338 `_ from mikeferguson/planner_review 27 | * fix doxygen, couple style fixes 28 | * Contributors: Michael Ferguson 29 | 30 | 1.13.0 (2015-03-17) 31 | ------------------- 32 | * adding makePlan function with returned cost to base_global_planner 33 | * Contributors: phil0stine 34 | 35 | 1.12.0 (2015-02-04) 36 | ------------------- 37 | * update maintainer email 38 | * Contributors: Michael Ferguson 39 | 40 | 1.11.15 (2015-02-03) 41 | -------------------- 42 | 43 | 1.11.14 (2014-12-05) 44 | -------------------- 45 | 46 | 1.11.13 (2014-10-02) 47 | -------------------- 48 | 49 | 1.11.12 (2014-10-01) 50 | -------------------- 51 | 52 | 1.11.11 (2014-07-23) 53 | -------------------- 54 | 55 | 1.11.10 (2014-06-25) 56 | -------------------- 57 | 58 | 1.11.9 (2014-06-10) 59 | ------------------- 60 | 61 | 1.11.8 (2014-05-21) 62 | ------------------- 63 | 64 | 1.11.7 (2014-05-21) 65 | ------------------- 66 | 67 | 1.11.4 (2013-09-27) 68 | ------------------- 69 | * Package URL Updates 70 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/nav_core/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(nav_core) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | std_msgs 7 | geometry_msgs 8 | tf 9 | costmap_2d 10 | ) 11 | 12 | catkin_package( 13 | INCLUDE_DIRS 14 | include 15 | CATKIN_DEPENDS 16 | std_msgs 17 | geometry_msgs 18 | tf 19 | costmap_2d 20 | ) 21 | 22 | 23 | ## Install project namespaced headers 24 | install(DIRECTORY include/${PROJECT_NAME}/ 25 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 26 | FILES_MATCHING PATTERN "*.h" 27 | PATTERN ".svn" EXCLUDE) 28 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/nav_core/package.xml: -------------------------------------------------------------------------------- 1 | 2 | nav_core 3 | 1.14.3 4 | 5 | 6 | This package provides common interfaces for navigation specific robot actions. Currently, this package provides the BaseGlobalPlanner, BaseLocalPlanner, and RecoveryBehavior interfaces, which can be used to build actions that can easily swap their planner, local controller, or recovery behavior for new versions adhering to the same interface. 7 | 8 | 9 | Eitan Marder-Eppstein 10 | contradict@gmail.com 11 | David V. Lu!! 12 | Michael Ferguson 13 | Aaron Hoy 14 | BSD 15 | http://wiki.ros.org/nav_core 16 | 17 | catkin 18 | 19 | std_msgs 20 | geometry_msgs 21 | costmap_2d 22 | tf 23 | 24 | std_msgs 25 | geometry_msgs 26 | costmap_2d 27 | tf 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navfn/Makefile.orig: -------------------------------------------------------------------------------- 1 | # 2 | # Makefile for navigation function planner 3 | # 4 | 5 | CC = g++ 6 | CXX = g++ 7 | LD = g++ 8 | CPPFLAGS = -Wall -g -O3 -Iinclude -I/usr/local/include -I/usr/local/include/opencv 9 | CFLAGS = -DGCC -msse2 -mpreferred-stack-boundary=4 -O3 -Wall -Iinclude -I/usr/local/include 10 | GCC = g++ 11 | LDFLAGS = -Lbin 12 | SHAREDFLAGS = -shared -Wl,-soname, 13 | LIBS = -lfltk -lnetpbm 14 | 15 | OBJECTS = navfn navwin 16 | 17 | all: bin/navtest 18 | 19 | bin/navtest: obj/navtest.o $(OBJECTS:%=obj/%.o) 20 | $(LD) $(LDFLAGS) -o $@ $(OBJECTS:%=obj/%.o) obj/navtest.o $(LIBS) 21 | 22 | # general cpp command from src->obj 23 | obj/%.o:src/%.cpp 24 | $(GCC) $(CPPFLAGS) -c $< -o $@ 25 | 26 | # general c command from src->obj 27 | obj/%.o:src/%.c 28 | $(GCC) $(CFLAGS) -c $< -o $@ 29 | 30 | obj/navfn.o: include/navfn/navfn.h 31 | 32 | clean: 33 | - rm obj/*.o 34 | - rm bin/navtest 35 | 36 | dist: 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navfn/bgp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A implementation of a grid based planner using Dijkstra 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navfn/include/navfn/navwin.h: -------------------------------------------------------------------------------- 1 | // 2 | // drawing fns for nav fn 3 | // 4 | 5 | #include 6 | #include 7 | #include 8 | 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | 15 | #include "navfn.h" 16 | 17 | namespace navfn { 18 | class NavWin 19 | : public Fl_Double_Window 20 | { 21 | public: 22 | NavWin(int w, int h, const char *name); 23 | ~NavWin(); 24 | 25 | int nw,nh; // width and height of image 26 | int pw,ph; // width and height of pot field 27 | int dec, inc; // decimation or expansion for display 28 | 29 | float maxval; // max potential value 30 | void drawPot(NavFn *nav); // draw everything... 31 | 32 | void drawOverlay(); 33 | 34 | uchar *im; // image for drawing 35 | int *pc, *pn, *po; // priority buffers 36 | int pce, pne, poe; // buffer sizes 37 | int goal[2]; 38 | int start[2]; 39 | int *path; // path buffer, cell indices 40 | int pathlen; // how many we have 41 | int pathbuflen; // how big the path buffer is 42 | 43 | void draw(); // draw the image 44 | }; 45 | }; 46 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navfn/include/navfn/potarr_point.h: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | * 3 | * Software License Agreement (BSD License) 4 | * 5 | * Copyright (c) 2008, (Simon) Ye Cheng 6 | * All rights reserved. 7 | * 8 | * Redistribution and use in source and binary forms, with or without 9 | * modification, are permitted provided that the following conditions 10 | * are met: 11 | * 12 | * * Redistributions of source code must retain the above copyright 13 | * notice, this list of conditions and the following disclaimer. 14 | * * Redistributions in binary form must reproduce the above 15 | * copyright notice, this list of conditions and the following 16 | * disclaimer in the documentation and/or other materials provided 17 | * with the distribution. 18 | * * Neither the name of the Willow Garage nor the names of its 19 | * contributors may be used to endorse or promote products derived 20 | * from this software without specific prior written permission. 21 | * 22 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 25 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 26 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 27 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 28 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 29 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 30 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 32 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 33 | * POSSIBILITY OF SUCH DAMAGE. 34 | * 35 | *********************************************************************/ 36 | 37 | #ifndef POTARR_POINT_H_ 38 | #define POTARR_POINT_H_ 39 | 40 | #include 41 | 42 | namespace navfn { 43 | struct PotarrPoint { 44 | float x; 45 | float y; 46 | float z; 47 | float pot_value; 48 | }; 49 | } 50 | 51 | POINT_CLOUD_REGISTER_POINT_STRUCT( 52 | navfn::PotarrPoint, 53 | (float, x, x) 54 | (float, y, y) 55 | (float, z, z) 56 | (float, pot_value, pot_value)); 57 | 58 | #endif 59 | 60 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navfn/include/navfn/read_pgm_costmap.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2012, Willow Garage, Inc. 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * 8 | * * Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * * Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * * Neither the name of the Willow Garage, Inc. nor the names of its 14 | * contributors may be used to endorse or promote products derived from 15 | * this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 18 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 21 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 | * POSSIBILITY OF SUCH DAMAGE. 28 | */ 29 | #ifndef READ_PGM_COSTMAP_H 30 | #define READ_PGM_COSTMAP_H 31 | 32 | // is true for ROS-generated raw cost maps 33 | COSTTYPE *readPGM(const char *fname, int *width, int *height, bool raw = false); 34 | 35 | #endif // READ_PGM_COSTMAP_H 36 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navfn/srv/MakeNavPlan.srv: -------------------------------------------------------------------------------- 1 | geometry_msgs/PoseStamped start 2 | geometry_msgs/PoseStamped goal 3 | --- 4 | 5 | uint8 plan_found 6 | string error_message 7 | 8 | # if plan_found is true, this is an array of waypoints from start to goal, where the first one equals start and the last one equals goal 9 | geometry_msgs/PoseStamped[] path 10 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navfn/srv/SetCostmap.srv: -------------------------------------------------------------------------------- 1 | uint8[] costs 2 | uint16 height 3 | uint16 width 4 | --- -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navfn/test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | catkin_add_gtest(path_calc_test path_calc_test.cpp ../src/read_pgm_costmap.cpp) 2 | target_link_libraries(path_calc_test navfn netpbm) 3 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navfn/test/willow_costmap.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/~study/src/navigation-kinetic-devel/navfn/test/willow_costmap.pgm -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navigation/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package navigation 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.14.3 (2018-03-16) 6 | ------------------- 7 | * Merge pull request `#672 `_ from ros-planning/email_update_kinetic 8 | update maintainer email (kinetic) 9 | * Merge pull request `#648 `_ from aaronhoy/kinetic_add_ahoy 10 | Add myself as a maintainer. 11 | * Contributors: Aaron Hoy, Michael Ferguson 12 | 13 | 1.14.2 (2017-08-14) 14 | ------------------- 15 | 16 | 1.14.1 (2017-08-07) 17 | ------------------- 18 | 19 | 1.14.0 (2016-05-20) 20 | ------------------- 21 | 22 | 1.13.1 (2015-10-29) 23 | ------------------- 24 | 25 | 1.13.0 (2015-03-17) 26 | ------------------- 27 | 28 | 1.12.0 (2015-02-04) 29 | ------------------- 30 | * update maintainer email 31 | * Contributors: Michael Ferguson 32 | 33 | 1.11.15 (2015-02-03) 34 | -------------------- 35 | 36 | 1.11.14 (2014-12-05) 37 | -------------------- 38 | * add global planner run depend in meta package. 39 | * Contributors: Jihoon Lee 40 | 41 | 1.11.13 (2014-10-02) 42 | -------------------- 43 | 44 | 1.11.12 (2014-10-01) 45 | -------------------- 46 | 47 | 1.11.11 (2014-07-23) 48 | -------------------- 49 | 50 | 1.11.10 (2014-06-25) 51 | -------------------- 52 | 53 | 1.11.9 (2014-06-10) 54 | ------------------- 55 | 56 | 1.11.8 (2014-05-21) 57 | ------------------- 58 | 59 | 1.11.7 (2014-05-21) 60 | ------------------- 61 | 62 | 1.11.4 (2013-09-27) 63 | ------------------- 64 | * Package URL Updates 65 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navigation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(navigation) 3 | find_package(catkin REQUIRED) 4 | catkin_metapackage() 5 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navigation/README.rst: -------------------------------------------------------------------------------- 1 | ROS Navigation Stack 2 | -------------------- 3 | 4 | A 2D navigation stack that takes in information from odometry, sensor 5 | streams, and a goal pose and outputs safe velocity commands that are sent 6 | to a mobile base. 7 | 8 | Related stacks: 9 | 10 | * http://github.com/ros-planning/navigation_tutorials 11 | * http://github.com/ros-planning/navigation_experimental 12 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/navigation/package.xml: -------------------------------------------------------------------------------- 1 | 2 | navigation 3 | 1.14.3 4 | 5 | A 2D navigation stack that takes in information from odometry, sensor 6 | streams, and a goal pose and outputs safe velocity commands that are sent 7 | to a mobile base. 8 | 9 | David V. Lu!! 10 | Michael Ferguson 11 | Aaron Hoy 12 | contradict@gmail.com 13 | Eitan Marder-Eppstein 14 | BSD,LGPL,LGPL (amcl) 15 | http://wiki.ros.org/navigation 16 | 17 | catkin 18 | 19 | amcl 20 | carrot_planner 21 | dwa_local_planner 22 | move_base 23 | nav_core 24 | robot_pose_ekf 25 | base_local_planner 26 | clear_costmap_recovery 27 | fake_localization 28 | global_planner 29 | move_base_msgs 30 | navfn 31 | rotate_recovery 32 | costmap_2d 33 | map_server 34 | move_slow_and_clear 35 | voxel_grid 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/robot_pose_ekf/example_with_gps.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/robot_pose_ekf/include/robot_pose_ekf/nonlinearanalyticconditionalgaussianodo.h: -------------------------------------------------------------------------------- 1 | // Copyright (C) 2008 Wim Meeussen 2 | // 3 | // This program is free software; you can redistribute it and/or modify 4 | // it under the terms of the GNU Lesser General Public License as published by 5 | // the Free Software Foundation; either version 2.1 of the License, or 6 | // (at your option) any later version. 7 | // 8 | // This program is distributed in the hope that it will be useful, 9 | // but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | // GNU Lesser General Public License for more details. 12 | // 13 | // You should have received a copy of the GNU Lesser General Public License 14 | // along with this program; if not, write to the Free Software 15 | // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 16 | // 17 | 18 | 19 | #ifndef __NON_LINEAR_SYSTEM_CONDITIONAL_GAUSSIAN_ODO__ 20 | #define __NON_LINEAR_SYSTEM_CONDITIONAL_GAUSSIAN_ODO__ 21 | 22 | #include 23 | 24 | namespace BFL 25 | { 26 | /// Non Linear Conditional Gaussian 27 | /** 28 | - \f$ \mu = Matrix[1] . ConditionalArguments[0] + 29 | Matrix[2]. ConditionalArguments[1] + ... + Noise.\mu \f$ 30 | - Covariance is independent of the ConditionalArguments, and is 31 | the covariance of the Noise pdf 32 | */ 33 | class NonLinearAnalyticConditionalGaussianOdo : public AnalyticConditionalGaussianAdditiveNoise 34 | { 35 | public: 36 | /// Constructor 37 | /** @pre: Every Matrix should have the same amount of rows! 38 | This is currently not checked. The same goes for the number 39 | of columns, which should be equal to the number of rows of 40 | the corresponding conditional argument! 41 | @param additiveNoise Pdf representing the additive Gaussian uncertainty 42 | */ 43 | NonLinearAnalyticConditionalGaussianOdo( const Gaussian& additiveNoise); 44 | 45 | /// Destructor 46 | virtual ~NonLinearAnalyticConditionalGaussianOdo(); 47 | 48 | // redefine virtual functions 49 | virtual MatrixWrapper::ColumnVector ExpectedValueGet() const; 50 | virtual MatrixWrapper::Matrix dfGet(unsigned int i) const; 51 | 52 | private: 53 | mutable MatrixWrapper::Matrix df; 54 | }; 55 | 56 | } // End namespace BFL 57 | 58 | #endif // 59 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/robot_pose_ekf/package.xml: -------------------------------------------------------------------------------- 1 | 2 | robot_pose_ekf 3 | 1.14.3 4 | 5 | 6 | The Robot Pose EKF package is used to estimate the 3D pose of a robot, based on (partial) pose measurements coming from different sources. It uses an extended Kalman filter with a 6D model (3D position and 3D orientation) to combine measurements from wheel odometry, IMU sensor and visual odometry. The basic idea is to offer loosely coupled integration with different sensors, where sensor signals are received as ROS messages. 7 | 8 | 9 | Wim Meeussen 10 | contradict@gmail.com 11 | David V. Lu!! 12 | Michael Ferguson 13 | Aaron Hoy 14 | BSD 15 | http://wiki.ros.org/robot_pose_ekf 16 | 17 | catkin 18 | 19 | message_generation 20 | roscpp 21 | bfl 22 | std_msgs 23 | geometry_msgs 24 | sensor_msgs 25 | nav_msgs 26 | tf 27 | message_generation 28 | 29 | message_runtime 30 | roscpp 31 | bfl 32 | std_msgs 33 | geometry_msgs 34 | sensor_msgs 35 | nav_msgs 36 | tf 37 | 38 | rosbag 39 | rostest 40 | 41 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/robot_pose_ekf/plotekf.m: -------------------------------------------------------------------------------- 1 | load /tmp/odom_file.txt; 2 | %load vo_file.txt; 3 | load /tmp/corr_file.txt; 4 | load /tmp/gps_file.txt; 5 | load /tmp/imu_file.txt; 6 | 7 | figure; 8 | hold on; 9 | axis equal; 10 | plot(odom_file(:,2), odom_file(:,3),'b'); 11 | %plot(vo_file(:,2),vo_file(:,3),'g'); 12 | plot(corr_file(:,2), corr_file(:,3),'r'); 13 | plot(gps_file(:,2), gps_file(:,3),'k'); 14 | legend('Wheel Odometry', 'Filter output', 'GPS Measurements'); 15 | %legend('Wheel Odometry','Visual Odometry', 'Filter output', 'GPS Measurements'); 16 | %legend('Wheel Odometry','Visual Odometry', 'Filter output'); 17 | hold off; 18 | 19 | figure; 20 | subplot(3,1,1) 21 | hold on; 22 | plot(odom_file(:,1),odom_file(:,2),'b'); 23 | %plot(vo_file(:,1),vo_file(:,2),'g'); 24 | plot(corr_file(:,1),corr_file(:,2),'r'); 25 | plot(gps_file(:,1), gps_file(:,2), 'k'); 26 | legend('Wheel Odometry', 'Filter output', 'GPS Measurements'); 27 | %legend('Wheel Odometry','Visual Odometry', 'Filter output', 'GPS Measurements'); 28 | %legend('Wheel Odometry','Visual Odometry', 'Filter output'); 29 | subplot(3,1,2) 30 | hold on; 31 | plot(odom_file(:,1),odom_file(:,3),'b'); 32 | %plot(vo_file(:,1),vo_file(:,3),'g'); 33 | plot(corr_file(:,1),corr_file(:,3),'r'); 34 | plot(gps_file(:,1), gps_file(:,3), 'k'); 35 | legend('Wheel Odometry', 'Filter output', 'GPS Measurements'); 36 | %legend('Wheel Odometry','Visual Odometry', 'Filter output', 'GPS Measurements'); 37 | %legend('Wheel Odometry','Visual Odometry', 'Filter output'); 38 | 39 | subplot(3,1,3) 40 | hold on; 41 | plot(odom_file(:,1),odom_file(:,4),'b'); 42 | %plot(vo_file(:,1),vo_file(:,7),'g'); 43 | plot(corr_file(:,1),corr_file(:,7),'r'); 44 | plot(imu_file(:,1), imu_file(:,2), 'k'); 45 | legend('Wheel Odometry', 'Filter output', 'IMU Measurements'); 46 | %legend('Wheel Odometry','Visual Odometry', 'Filter output', 'IMU Measurements'); 47 | 48 | 49 | 50 | error_odom = sqrt( (odom_file(1,2)-odom_file(end,2))^2 + (odom_file(1,3)-odom_file(end,3))^2 ) 51 | %error_vo = sqrt( (vo_file(1,2)-vo_file(end,2))^2 + (vo_file(1,3)-vo_file(end,3))^2 ) 52 | error_corr = sqrt( (corr_file(1,2)-corr_file(end,2))^2 + (corr_file(1,3)-corr_file(end,3))^2 ) 53 | error_gps = sqrt( (gps_file(1,2)-gps_file(end,2))^2 + (gps_file(1,3)-gps_file(end,3))^2 ) 54 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/robot_pose_ekf/robot_pose_ekf.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/robot_pose_ekf/scripts/wtf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rospy 4 | from robot_pose_ekf.srv import GetStatus, GetStatusRequest 5 | 6 | if __name__ == '__main__': 7 | rospy.init_node('spawner', anonymous=True) 8 | print 'looking for node robot_pose_ekf...' 9 | rospy.wait_for_service('robot_pose_ekf/get_status') 10 | 11 | s = rospy.ServiceProxy('robot_pose_ekf/get_status', GetStatus) 12 | resp = s.call(GetStatusRequest()) 13 | print resp.status 14 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/robot_pose_ekf/srv/GetStatus.srv: -------------------------------------------------------------------------------- 1 | 2 | --- 3 | string status -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/robot_pose_ekf/test/test_robot_pose_ekf.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/robot_pose_ekf/test/test_robot_pose_ekf_zero_covariance.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/rotate_recovery/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package rotate_recovery 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.14.3 (2018-03-16) 6 | ------------------- 7 | * Merge pull request `#672 `_ from ros-planning/email_update_kinetic 8 | update maintainer email (kinetic) 9 | * Merge pull request `#648 `_ from aaronhoy/kinetic_add_ahoy 10 | Add myself as a maintainer. 11 | * update to use non deprecated pluginlib macro (`#630 12 | `_) 13 | * multiline version as well 14 | * Contributors: Aaron Hoy, Michael Ferguson, Mikael Arguedas 15 | 16 | 1.14.2 (2017-08-14) 17 | ------------------- 18 | 19 | 1.14.1 (2017-08-07) 20 | ------------------- 21 | * Fix CMakeLists + package.xmls (`#548 `_) 22 | * Contributors: Martin Günther, Vincent Rabaud 23 | 24 | 1.14.0 (2016-05-20) 25 | ------------------- 26 | 27 | 1.13.1 (2015-10-29) 28 | ------------------- 29 | 30 | 1.13.0 (2015-03-17) 31 | ------------------- 32 | 33 | 1.12.0 (2015-02-04) 34 | ------------------- 35 | * update maintainer email 36 | * Contributors: Michael Ferguson 37 | 38 | 1.11.15 (2015-02-03) 39 | -------------------- 40 | * Add ARCHIVE_DESTINATION for static builds 41 | * Contributors: Gary Servin 42 | 43 | 1.11.14 (2014-12-05) 44 | -------------------- 45 | 46 | 1.11.13 (2014-10-02) 47 | -------------------- 48 | 49 | 1.11.12 (2014-10-01) 50 | -------------------- 51 | 52 | 1.11.11 (2014-07-23) 53 | -------------------- 54 | 55 | 1.11.10 (2014-06-25) 56 | -------------------- 57 | 58 | 1.11.9 (2014-06-10) 59 | ------------------- 60 | 61 | 1.11.8 (2014-05-21) 62 | ------------------- 63 | 64 | 1.11.7 (2014-05-21) 65 | ------------------- 66 | * update build to find eigen using cmake_modules 67 | * Contributors: Michael Ferguson 68 | 69 | 1.11.4 (2013-09-27) 70 | ------------------- 71 | * Package URL Updates 72 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/rotate_recovery/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(rotate_recovery) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | cmake_modules 7 | roscpp 8 | tf 9 | costmap_2d 10 | nav_core 11 | pluginlib 12 | base_local_planner 13 | ) 14 | 15 | find_package(Eigen3 REQUIRED) 16 | include_directories( 17 | include 18 | ${catkin_INCLUDE_DIRS} 19 | ${EIGEN3_INCLUDE_DIRS} 20 | ) 21 | add_definitions(${EIGEN3_DEFINITIONS}) 22 | 23 | catkin_package( 24 | INCLUDE_DIRS include 25 | LIBRARIES rotate_recovery 26 | CATKIN_DEPENDS 27 | roscpp 28 | pluginlib 29 | ) 30 | 31 | add_library(rotate_recovery src/rotate_recovery.cpp) 32 | add_dependencies(rotate_recovery ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 33 | target_link_libraries(rotate_recovery ${catkin_LIBRARIES}) 34 | 35 | install(TARGETS rotate_recovery 36 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 37 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 38 | ) 39 | 40 | install(DIRECTORY include/${PROJECT_NAME}/ 41 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 42 | FILES_MATCHING PATTERN "*.h" 43 | ) 44 | 45 | install(FILES rotate_plugin.xml 46 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 47 | ) 48 | 49 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/rotate_recovery/package.xml: -------------------------------------------------------------------------------- 1 | 2 | rotate_recovery 3 | 1.14.3 4 | 5 | 6 | This package provides a recovery behavior for the navigation stack that attempts to clear space by performing a 360 degree rotation of the robot. 7 | 8 | 9 | Eitan Marder-Eppstein 10 | contradict@gmail.com 11 | David V. Lu!! 12 | Michael Ferguson 13 | Aaron Hoy 14 | BSD 15 | http://wiki.ros.org/rotate_recovery 16 | 17 | catkin 18 | 19 | cmake_modules 20 | roscpp 21 | tf 22 | costmap_2d 23 | nav_core 24 | pluginlib 25 | eigen 26 | base_local_planner 27 | 28 | roscpp 29 | tf 30 | costmap_2d 31 | nav_core 32 | pluginlib 33 | eigen 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/rotate_recovery/rotate_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A recovery behavior that performs a 360 degree in-place rotation to attempt to clear out space. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/voxel_grid/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package voxel_grid 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.14.3 (2018-03-16) 6 | ------------------- 7 | * Merge pull request `#672 `_ from ros-planning/email_update_kinetic 8 | update maintainer email (kinetic) 9 | * Merge pull request `#648 `_ from aaronhoy/kinetic_add_ahoy 10 | Add myself as a maintainer. 11 | * Contributors: Aaron Hoy, Michael Ferguson 12 | 13 | 1.14.2 (2017-08-14) 14 | ------------------- 15 | 16 | 1.14.1 (2017-08-07) 17 | ------------------- 18 | * Fix CMakeLists + package.xmls (`#548 `_) 19 | * Contributors: Martin Günther 20 | 21 | 1.14.0 (2016-05-20) 22 | ------------------- 23 | 24 | 1.13.1 (2015-10-29) 25 | ------------------- 26 | 27 | 1.13.0 (2015-03-17) 28 | ------------------- 29 | 30 | 1.12.0 (2015-02-04) 31 | ------------------- 32 | * update maintainer email 33 | * Contributors: Michael Ferguson 34 | 35 | 1.11.15 (2015-02-03) 36 | -------------------- 37 | * Add ARCHIVE_DESTINATION for static builds 38 | * Contributors: Gary Servin 39 | 40 | 1.11.14 (2014-12-05) 41 | -------------------- 42 | * remove old test code 43 | * fixup voxel_grid.h formatting (whitespace changes ONLY) 44 | * Contributors: Michael Ferguson 45 | 46 | 1.11.13 (2014-10-02) 47 | -------------------- 48 | 49 | 1.11.12 (2014-10-01) 50 | -------------------- 51 | 52 | 1.11.11 (2014-07-23) 53 | -------------------- 54 | 55 | 1.11.10 (2014-06-25) 56 | -------------------- 57 | 58 | 1.11.9 (2014-06-10) 59 | ------------------- 60 | 61 | 1.11.8 (2014-05-21) 62 | ------------------- 63 | 64 | 1.11.7 (2014-05-21) 65 | ------------------- 66 | * uses %u instead of %d for unsigned int 67 | * Contributors: enriquefernandez 68 | 69 | 1.11.5 (2014-01-30) 70 | ------------------- 71 | * Misc. other commits from Groovy Branch 72 | * check for CATKIN_ENABLE_TESTING 73 | * Change maintainer from Hersh to Lu 74 | 75 | 1.11.4 (2013-09-27) 76 | ------------------- 77 | * Package URL Updates 78 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/voxel_grid/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(voxel_grid) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | roscpp 7 | ) 8 | 9 | catkin_package( 10 | INCLUDE_DIRS 11 | include 12 | LIBRARIES 13 | voxel_grid 14 | CATKIN_DEPENDS 15 | roscpp 16 | ) 17 | 18 | include_directories(include ${catkin_INCLUDE_DIRS}) 19 | 20 | add_library(voxel_grid src/voxel_grid.cpp) 21 | add_dependencies(voxel_grid ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 22 | target_link_libraries(voxel_grid ${catkin_LIBRARIES}) 23 | 24 | install(TARGETS voxel_grid 25 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 26 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 27 | ) 28 | 29 | install(DIRECTORY include/${PROJECT_NAME}/ 30 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 31 | ) 32 | 33 | if(CATKIN_ENABLE_TESTING) 34 | catkin_add_gtest(voxel_grid_tests test/voxel_grid_tests.cpp) 35 | target_link_libraries(voxel_grid_tests 36 | voxel_grid 37 | ${catkin_LIBRARIES} 38 | ) 39 | endif() 40 | -------------------------------------------------------------------------------- /~study/src/navigation-kinetic-devel/voxel_grid/package.xml: -------------------------------------------------------------------------------- 1 | 2 | voxel_grid 3 | 1.14.3 4 | 5 | 6 | voxel_grid provides an implementation of an efficient 3D voxel grid. The occupancy grid can support 3 different representations for the state of a cell: marked, free, or unknown. Due to the underlying implementation relying on bitwise and and or integer operations, the voxel grid only supports 16 different levels per voxel column. However, this limitation yields raytracing and cell marking performance in the grid comparable to standard 2D structures making it quite fast compared to most 3D structures. 7 | 8 | 9 | Eitan Marder-Eppstein, Eric Berger 10 | contradict@gmail.com 11 | David V. Lu!! 12 | Michael Ferguson 13 | Aaron Hoy 14 | BSD 15 | http://wiki.ros.org/voxel_grid 16 | 17 | catkin 18 | 19 | roscpp 20 | 21 | roscpp 22 | 23 | rosunit 24 | 25 | -------------------------------------------------------------------------------- /~study/src/robot_description/launch/mybot_rviz.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /~study/src/robot_description/launch/mybot_rviz_amcl.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /~study/src/robot_description/launch/mybot_rviz_gmapping.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /~study/src/robot_description/urdf/materials.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /~study/src/robot_description/urdf/sensor.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/~study/src/robot_description/urdf/sensor.tar.gz -------------------------------------------------------------------------------- /~study/src/robot_gazebo/launch/mybot_world.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /~study/src/robot_gazebo/launch/read first: -------------------------------------------------------------------------------- 1 | rosrun gazebo_ros spawn_model -file `rospack find robot_description`/urdf/mybot.xacro -urdf -x 0 -y 0 -z 1 -model myrobot 2 | 3 | rosrun gazebo_ros gzserver 4 | -------------------------------------------------------------------------------- /~study/src/robot_gazebo/worlds/mybot.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 9 | 10 | 11 | model://ground_plane 12 | 13 | 14 | 15 | 16 | model://sun 17 | 18 | 19 | 20 | 21 | 22 | 4.927360 -4.376610 3.740080 0.000000 0.275643 2.356190 23 | orbit 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /~study/src/robot_navigation/config/base_local_planner_params.yaml: -------------------------------------------------------------------------------- 1 | TrajectoryPlannerROS: 2 | max_vel_x: 0.5 3 | min_vel_x: 0.2 4 | max_vel_theta: 1 5 | min_in_place_vel_theta: 0.5 6 | 7 | acc_lim_theta: 0.1 8 | acc_lim_x: 0.1 9 | acc_lim_y: 0.1 10 | 11 | 12 | holonomic_robot: false 13 | -------------------------------------------------------------------------------- /~study/src/robot_navigation/config/costmap_common_params.yaml: -------------------------------------------------------------------------------- 1 | obstacle_range: 2.5 2 | raytrace_range: 3.0 3 | #footprint: [[x0, y0], [x1, y1], ... [xn, yn]] 4 | #robot_radius: ir_of_robot 5 | robot_radius: 0.5 # distance a circular robot should be clear of the obstacle 6 | inflation_radius: 1.0 7 | 8 | observation_sources: laser_scan_sensor #point_cloud_sensor 9 | 10 | # marking - add obstacle information to cost map 11 | # clearing - clear obstacle information to cost map 12 | laser_scan_sensor: {sensor_frame: hokuyo, data_type: LaserScan, topic: /mybot/laser/scan, marking: true, clearing: true} 13 | 14 | #point_cloud_sensor: {sensor_frame: frame_name, data_type: PointCloud, topic: topic_name, marking: true, clearing: true} 15 | -------------------------------------------------------------------------------- /~study/src/robot_navigation/config/global_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | # static_map - True if using existing map 2 | 3 | global_costmap: 4 | global_frame: odom 5 | robot_base_frame: chassis 6 | update_frequency: 1.0 7 | publish_frequency: 1.0 8 | resolution: 0.05 9 | static_map: true 10 | width: 10.0 11 | height: 10.0 12 | -------------------------------------------------------------------------------- /~study/src/robot_navigation/config/local_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | local_costmap: 2 | global_frame: odom 3 | robot_base_frame: chassis 4 | update_frequency: 2.0 5 | publish_frequency: 1.0 6 | static_map: false 7 | rolling_window: true 8 | width: 6.0 9 | height: 6.0 10 | resolution: 0.05 11 | -------------------------------------------------------------------------------- /~study/src/robot_navigation/launch/amcl_demo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /~study/src/robot_navigation/launch/gmapping_demo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /~study/src/robot_navigation/launch/laser_filter.yaml: -------------------------------------------------------------------------------- 1 | scan_filter_chain: 2 | - name: angle1 3 | type: LaserScanAngularBoundsFilter 4 | params: 5 | lower_angle: 1.0 6 | upper_angle: 1.57 7 | - name: angle2 8 | type: LaserScanAngularBoundsFilter 9 | params: 10 | lower_angle: -1.57 11 | upper_angle: -1.0 12 | 13 | -------------------------------------------------------------------------------- /~study/src/robot_navigation/launch/mybot_teleop.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /~study/src/robot_navigation/map/map_test_8.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/~study/src/robot_navigation/map/map_test_8.pgm -------------------------------------------------------------------------------- /~study/src/robot_navigation/map/map_test_8.yaml: -------------------------------------------------------------------------------- 1 | image: /home/minht57/dev/robot_ws/map_test_8.pgm 2 | resolution: 0.050000 3 | origin: [-42.400000, -45.600000, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /~study/src/robot_navigation/map/test_map.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minht57/ROS_Basic_SLAM/bc070c36c266d0fd5d77b1d8fdeb9cfa664414f4/~study/src/robot_navigation/map/test_map.pgm -------------------------------------------------------------------------------- /~study/src/robot_navigation/map/test_map.yaml: -------------------------------------------------------------------------------- 1 | image: /home/minht57/dev/robot_ws/src/robot_navigation/map/test_map.pgm 2 | resolution: 0.050000 3 | origin: [-20.000000, -20.000000, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | --------------------------------------------------------------------------------