├── README.md ├── balance ├── CMakeLists.txt ├── CMakeLists.txt.user ├── msg │ ├── Num.msg │ └── carOdom.msg ├── package.xml └── src │ ├── arduino.cpp │ ├── balance.cpp │ ├── cmd_vel_listener.py │ ├── heart_rate.py │ ├── link2blance.py │ ├── link2blance.py~ │ └── odom_pub.cpp ├── beginner_tutorials ├── CMakeLists.txt └── package.xml ├── cutesix_2dnav ├── CMakeLists.txt ├── config │ ├── base_local_planner_params.yaml │ ├── base_local_planner_params.yaml~ │ ├── costmap_common_params.yaml │ ├── costmap_common_params.yaml~ │ ├── global_costmap_params.yaml │ └── local_costmap_params.yaml ├── launch │ ├── cutesix_config.launch │ ├── cutesix_config.launch~ │ ├── cutesix_voice.launch │ ├── cutesix_voice.launch~ │ ├── move_base.launch │ ├── move_base.launch~ │ └── start.launch ├── map │ ├── map.yaml │ ├── map.yaml~ │ ├── map_temp.yaml │ ├── map_temp.yaml~ │ ├── mymap.bmp │ └── temp.bmp ├── package.xml └── src │ ├── fix_tf_boradcaster.py │ └── fix_tf_boradcaster.py~ ├── github.com ├── HEAD ├── config ├── description ├── hooks │ ├── applypatch-msg.sample │ ├── commit-msg.sample │ ├── post-update.sample │ ├── pre-applypatch.sample │ ├── pre-commit.sample │ ├── pre-push.sample │ ├── pre-rebase.sample │ ├── pre-receive.sample │ ├── prepare-commit-msg.sample │ └── update.sample ├── info │ └── exclude ├── objects │ ├── 15 │ │ └── 9bff8507074ed2fc993dfd43696faeac853414 │ ├── 19 │ │ └── 4305100fe49cafacf73181346754768024735b │ ├── 22 │ │ └── 718f0e3ab3ff5ff37ee82f1071e41d2c54ab2e │ ├── 40 │ │ └── 326b43b64462a7eb8a30d81c60042890bf77bb │ ├── 47 │ │ └── 8a3fcbc8882c34fd242633f0e7540f0c829f8b │ ├── 50 │ │ └── 96a738370a200728983e15443059a00546d4c9 │ ├── 53 │ │ └── 1b771e21b03a08804284ce853b6f9434cdda47 │ ├── 54 │ │ ├── 4114f66b2066704b0d6f69586752d64b4f6bd8 │ │ ├── 4e1b32dab449bf2bbaae4578c2060894bda609 │ │ └── fe414c94abfa76a1deb224cba920567049aa0e │ ├── 55 │ │ ├── 138f4f7bcf329503adba2e780ef1b441a68500 │ │ └── 3ce60fb5e38e283f930f4ecb15ced90e35c482 │ ├── 63 │ │ └── 8849fb00621170fa244e1651c9e224a795b398 │ ├── 67 │ │ └── dfd72e5d085e8209fa9142f2d4a67a05b99f4a │ ├── 71 │ │ └── a2acd632877bbc8fa71e942fd15b5ede7a74a3 │ ├── 73 │ │ └── 01fe1a15f381e04f8568ba8748ad477845c385 │ ├── 85 │ │ └── 0e1362b2a7eeaca9dfe18e9db8493231101040 │ ├── 87 │ │ └── 7e81356a19ee0943dcac2475b0fbdfeb2ac150 │ ├── 92 │ │ └── ff07745c88a3ef423bd1d00581125c7e0156ee │ ├── 01 │ │ └── a3c8feda3a0fe67e413d27c3ee6db180dc8b1e │ ├── 0d │ │ └── ac102003772c6282e08f3c1139df88f3609502 │ ├── 0f │ │ ├── 35783011fe51fe410c43531cd83c8389f893ca │ │ └── d01f9ef36a1efe3f3a1d9a736154234e61f087 │ ├── 2c │ │ └── 5b5eff0c7029d5ed655e62e05ef0dda0cbb407 │ ├── 5b │ │ └── 04fb3fec0d0ce5e9a6b47e8ac79de931ec4a71 │ ├── 7a │ │ └── 1a280c54a30e511aa03676f7b782afeb335568 │ ├── 7e │ │ └── 61de839d948a0870220d10d7d698bc141378ed │ ├── 8d │ │ └── aa068a9ecd04553aa43fa9e61104a624824674 │ ├── 9c │ │ └── baf7ea81fc4be07321b492b2cb650d44e011ce │ ├── 9e │ │ └── 39995f29bdd7310d3ac5967603fc1c24b2ab0a │ ├── a2 │ │ └── 5e461c31c74d872217372902af2a08c25ad4ae │ ├── a3 │ │ └── 4face514d41e8b5489f3b8765a9aa96f8d2b8d │ ├── a4 │ │ └── 1a754d166e09ec6a3c6b5f692055cfe8fc86c5 │ ├── a9 │ │ └── 343cf85f2ec6f13e89f337d281cc08d13e04c5 │ ├── ac │ │ └── bd826a83d8cdf2eb612b3825257b7ee0c3121c │ ├── b3 │ │ └── 5adc0170782694ed573013020306cd283fddef │ ├── b4 │ │ └── b39e3d41559ea351c13d265cbd7a40bcb689c1 │ ├── b9 │ │ └── 54687d264e3a53cc2dcbe5247c05b120d07427 │ ├── ba │ │ └── 3f8555f7254232afdc999e82df1aaeccf15403 │ ├── c2 │ │ └── f90a7655acf5c766e2f7810c0aac0f4e49dd35 │ ├── c3 │ │ └── 9bb74e27afbf5efd6fe2c27b9e306525dd937a │ ├── c4 │ │ └── 6f5f95b79530dceb16ee0f43eda57a81ed0958 │ ├── ce │ │ └── 806a81a89bc0d25fdbbbabdfe06b3ffd0e0e8f │ ├── dc │ │ └── 915c9da4a618bc2cfa2a55140647a629a7fbdc │ ├── e1 │ │ └── bb6291df0804a34683987b4287ad2e7a827c9e │ ├── e4 │ │ └── 50b16c7f5447a3d0959dc95d2e7160853da377 │ ├── e6 │ │ └── ca11077dec5588d66d26130e1e746cbdff2b73 │ ├── e9 │ │ └── 4f5b5648b87c451d32fd5b79dce6895cb28b4f │ ├── ea │ │ └── 55fddbc292bc1968bc851fbb78b8bfbf488c00 │ ├── f7 │ │ └── 09decc247c2049f844c6e26ec0ff18ba3d3699 │ ├── f9 │ │ ├── 408399ff5e935eaf92c39e7660f025c51e88fd │ │ └── a06129e7391797e6bd9bca5e51cf48e5c1d949 │ ├── fa │ │ └── 7f4e97942ff7ffefe7202ed1dc0c87309be778 │ └── fc │ │ └── ad04bad0d6e8f80b3823f60c0cf1185a1846bf └── refs │ └── heads │ └── master ├── navigation ├── .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 │ │ │ ├── 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 │ │ └── 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 │ │ └── crop_map.py │ ├── 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 │ ├── launch │ │ └── move_base_0.3_to_0.2.launch │ ├── package.xml │ ├── planner_test.xml │ ├── scripts │ │ ├── subtopic_forwarder.py │ │ ├── subtopic_forwarder_node.py │ │ └── warner.py │ └── src │ │ ├── move_base.cpp │ │ └── move_base_node.cpp ├── move_base_msgs │ ├── CHANGELOG.rst │ ├── CMakeLists.txt │ ├── action │ │ └── MoveBase.action │ └── package.xml ├── 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 ├── 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 └── xf_voice ├── CMakeLists.txt ├── CMakeLists.txt.user ├── package.xml └── src ├── explain.py ├── wakeup.cpp ├── xf_asr.cpp └── xf_tts.cpp /README.md: -------------------------------------------------------------------------------- 1 | # Cute_Six_ROS_Balance 2 | 一个二轮机器人的路径规划以及上下位机通讯移动Ros代码,包含语音部分。 3 | 2 016年Intel嵌入式参赛作品,记忆有点模糊,源代码没有注释,等有时间再具体看看注释。 4 | -------------------------------------------------------------------------------- /balance/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(balance) 3 | find_package(catkin REQUIRED COMPONENTS 4 | roscpp 5 | rospy 6 | std_msgs 7 | message_generation 8 | tf 9 | nav_msgs 10 | ) 11 | 12 | add_message_files( 13 | FILES 14 | Num.msg 15 | carOdom.msg 16 | ) 17 | 18 | # add_service_files( 19 | # FILES 20 | # Service1.srv 21 | # Service2.srv 22 | # ) 23 | 24 | 25 | generate_messages() 26 | 27 | catkin_package( 28 | # INCLUDE_DIRS include 29 | # LIBRARIES balance 30 | # CATKIN_DEPENDS roscpp rospy std_msgs 31 | # DEPENDS system_lib 32 | ) 33 | 34 | include_directories( 35 | ${catkin_INCLUDE_DIRS} 36 | 37 | ) 38 | 39 | 40 | add_executable(balance src/balance.cpp) 41 | add_dependencies(balance balance_cpp}) 42 | target_link_libraries(balance ${catkin_LIBRARIES} -lmraa ) 43 | 44 | add_executable(arduino src/arduino.cpp) 45 | add_dependencies(arduino arduino}) 46 | target_link_libraries(arduino ${catkin_LIBRARIES} -lmraa ) 47 | 48 | 49 | add_executable(odom_pub src/odom_pub.cpp) 50 | target_link_libraries(odom_pub ${catkin_LIBRARIES}) 51 | add_dependencies(odom_pub balance_cpp) 52 | -------------------------------------------------------------------------------- /balance/msg/Num.msg: -------------------------------------------------------------------------------- 1 | float32 leftspeed 2 | float32 rightspeed 3 | -------------------------------------------------------------------------------- /balance/msg/carOdom.msg: -------------------------------------------------------------------------------- 1 | float32 x 2 | float32 y 3 | float32 vth 4 | -------------------------------------------------------------------------------- /balance/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | balance 4 | 0.0.0 5 | The balance package 6 | 7 | 8 | robot-6 9 | 10 | TODO 11 | 12 | catkin 13 | roscpp 14 | rospy 15 | std_msgs 16 | roscpp 17 | rospy 18 | std_msgs 19 | message_generation 20 | message_runtime 21 | tf 22 | nav_msgs 23 | tf 24 | nav_msgs 25 | 26 | -------------------------------------------------------------------------------- /balance/src/cmd_vel_listener.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | #refernence: http://answers.ros.org/question/29706/twist-message-example-and-cmd_vel/ 3 | import roslib; roslib.load_manifest('balance') 4 | import rospy 5 | import tf.transformations 6 | from geometry_msgs.msg import Twist 7 | 8 | def callback(msg): 9 | rospy.loginfo("Received a /cmd_vel message!") 10 | rospy.loginfo("Linear Components: [%f, %f, %f]"%(msg.linear.x, msg.linear.y, msg.linear.z)) 11 | rospy.loginfo("Angular Components: [%f, %f, %f]"%(msg.angular.x, msg.angular.y, msg.angular.z)) 12 | 13 | # Do velocity processing here: 14 | # Use the kinematics of your robot to map linear and angular velocities into motor commands 15 | # v_l = ... 16 | # v_r = ... 17 | 18 | # Then set your wheel speeds (using wheel_left and wheel_right as examples) 19 | # wheel_left.set_speed(v_l) 20 | # wheel_right.set_speed(v_r) 21 | 22 | def listener(): 23 | rospy.init_node('cmd_vel_listener') 24 | rospy.Subscriber("/cmd_vel", Twist, callback)#/cmd_vel 25 | rospy.spin() 26 | 27 | if __name__ == '__main__': 28 | listener() 29 | 30 | -------------------------------------------------------------------------------- /balance/src/heart_rate.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import rospy 3 | from std_msgs.msg import Float32 4 | 5 | def callback(data): 6 | rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data) 7 | 8 | def listener(): 9 | 10 | rospy.init_node('heart_rate_node') 11 | 12 | rospy.Subscriber("heart_rate", Float32, callback) 13 | 14 | rospy.spin() 15 | 16 | if __name__ == '__main__': 17 | listener() 18 | -------------------------------------------------------------------------------- /beginner_tutorials/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | beginner_tutorials 4 | 0.0.0 5 | The beginner_tutorials package 6 | 7 | 8 | 9 | 10 | robot-6 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 | catkin 43 | roscpp 44 | rospy 45 | std_msgs 46 | roscpp 47 | rospy 48 | std_msgs 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /cutesix_2dnav/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(cutesix_2dnav) 3 | 4 | find_package(catkin REQUIRED COMPONENTS 5 | roscpp 6 | rospy 7 | tf 8 | turtlesim 9 | ) 10 | catkin_package() 11 | 12 | include_directories( 13 | ${catkin_INCLUDE_DIRS} 14 | ) 15 | 16 | -------------------------------------------------------------------------------- /cutesix_2dnav/config/base_local_planner_params.yaml: -------------------------------------------------------------------------------- 1 | TrajectoryPlannerROS: 2 | max_vel_x: 0.45 3 | min_vel_x: 0.1 4 | max_vel_theta: 1.0 5 | min_in_place_vel_theta: 0.4 6 | 7 | acc_lim_theta: 3.2 8 | acc_lim_x: 2.5 9 | acc_lim_y: 2.5 10 | 11 | holonomic_robot: true 12 | -------------------------------------------------------------------------------- /cutesix_2dnav/config/base_local_planner_params.yaml~: -------------------------------------------------------------------------------- 1 | TrajectoryPlannerROS: 2 | max_vel_x: 0.45 3 | min_vel_x: 0.1 4 | max_vel_theta: 1.0 5 | min_in_place_vel_theta: 0.4 6 | 7 | acc_lim_theta: 3.2 8 | acc_lim_x: 2.5 9 | acc_lim_y: 2.5 10 | 11 | holonomic_robot: true 12 | -------------------------------------------------------------------------------- /cutesix_2dnav/config/costmap_common_params.yaml: -------------------------------------------------------------------------------- 1 | obstacle_range: 2.5 2 | raytrace_range: 3.0 3 | footprint: [[-0.1, 0.2], [-0.1, -0.2], [0.1, -0.2], [0.1, 0.2]] 4 | #robot_radius: ir_of_robot 5 | inflation_radius: 0.55 6 | 7 | #observation_sources: laser_scan_sensor point_cloud_sensor 8 | 9 | #laser_scan_sensor: {sensor_frame: frame_name, data_type: LaserScan, topic: topic_name, marking: true, clearing: true} 10 | 11 | #point_cloud_sensor: {sensor_frame: frame_name, data_type: PointCloud, topic: topic_name, marking: true, clearing: true} 12 | -------------------------------------------------------------------------------- /cutesix_2dnav/config/costmap_common_params.yaml~: -------------------------------------------------------------------------------- 1 | obstacle_range: 2.5 2 | raytrace_range: 3.0 3 | footprint: [[-0.1, 0.1], [-0.1, -0.1], [0.1, -0.1], [0.1, 0.1]] 4 | #robot_radius: ir_of_robot 5 | inflation_radius: 0.55 6 | 7 | #observation_sources: laser_scan_sensor point_cloud_sensor 8 | 9 | #laser_scan_sensor: {sensor_frame: frame_name, data_type: LaserScan, topic: topic_name, marking: true, clearing: true} 10 | 11 | #point_cloud_sensor: {sensor_frame: frame_name, data_type: PointCloud, topic: topic_name, marking: true, clearing: true} 12 | -------------------------------------------------------------------------------- /cutesix_2dnav/config/global_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | global_costmap: 2 | global_frame: /map 3 | robot_base_frame: base_link 4 | update_frequency: 5.0 5 | static_map: true 6 | -------------------------------------------------------------------------------- /cutesix_2dnav/config/local_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | local_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_link 4 | update_frequency: 5.0 5 | publish_frequency: 2.0 6 | static_map: false 7 | rolling_window: true 8 | width: 6.0 9 | height: 6.0 10 | resolution: 0.05 11 | -------------------------------------------------------------------------------- /cutesix_2dnav/launch/cutesix_config.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /cutesix_2dnav/launch/cutesix_config.launch~: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /cutesix_2dnav/launch/cutesix_voice.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /cutesix_2dnav/launch/cutesix_voice.launch~: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /cutesix_2dnav/launch/move_base.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /cutesix_2dnav/launch/move_base.launch~: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /cutesix_2dnav/launch/start.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /cutesix_2dnav/map/map.yaml: -------------------------------------------------------------------------------- 1 | image: mymap.bmp 2 | resolution: 0.01 3 | origin: [-5, -5, 0] 4 | occupied_thresh: 0.65 5 | free_thresh: 0.196 # Taken from the Willow Garage map in the turtlebot_navigation package 6 | negate: 0 7 | -------------------------------------------------------------------------------- /cutesix_2dnav/map/map.yaml~: -------------------------------------------------------------------------------- 1 | image: mymap.bmp 2 | resolution: 0.01 3 | origin: [-5, -5, 0] 4 | occupied_thresh: 0.65 5 | #free_thresh: 0.196 # Taken from the Willow Garage map in the turtlebot_navigation package 6 | #negate: 0 7 | -------------------------------------------------------------------------------- /cutesix_2dnav/map/map_temp.yaml: -------------------------------------------------------------------------------- 1 | image: temp.bmp 2 | resolution: 0.01 3 | origin: [-0.8, -0.8, 0] 4 | occupied_thresh: 0.65 5 | free_thresh: 0.196 # Taken from the Willow Garage map in the turtlebot_navigation package 6 | negate: 0 7 | -------------------------------------------------------------------------------- /cutesix_2dnav/map/map_temp.yaml~: -------------------------------------------------------------------------------- 1 | image: temp.bmp 2 | resolution: 0.01 3 | origin: [-0.6, -0.6, 0] 4 | occupied_thresh: 0.65 5 | free_thresh: 0.196 # Taken from the Willow Garage map in the turtlebot_navigation package 6 | negate: 0 7 | -------------------------------------------------------------------------------- /cutesix_2dnav/map/mymap.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/cutesix_2dnav/map/mymap.bmp -------------------------------------------------------------------------------- /cutesix_2dnav/map/temp.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/cutesix_2dnav/map/temp.bmp -------------------------------------------------------------------------------- /cutesix_2dnav/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | cutesix_2dnav 4 | 0.0.0 5 | The cutesix_2dnav package 6 | 7 | 8 | 9 | 10 | robot-6 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 | catkin 43 | roscpp 44 | rospy 45 | tf 46 | roscpp 47 | rospy 48 | tf 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /cutesix_2dnav/src/fix_tf_boradcaster.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import roslib 3 | roslib.load_manifest('cutesix_2dnav') 4 | 5 | import rospy 6 | import tf 7 | 8 | if __name__ == '__main__': 9 | rospy.init_node('my_tf_broadcaster') 10 | br = tf.TransformBroadcaster() 11 | rate = rospy.Rate(10.0) 12 | while not rospy.is_shutdown(): 13 | br.sendTransform((0.0, 0.0, 0.0), 14 | (0.0, 0.0, 0.0, 1.0), 15 | rospy.Time.now(), 16 | "odom", 17 | "map") 18 | rate.sleep() 19 | -------------------------------------------------------------------------------- /cutesix_2dnav/src/fix_tf_boradcaster.py~: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | import roslib 3 | roslib.load_manifest('/cutesix_2dnav') 4 | 5 | import rospy 6 | import tf 7 | 8 | if __name__ == '__main__': 9 | rospy.init_node('/my_tf_broadcaster') 10 | br = tf.TransformBroadcaster() 11 | rate = rospy.Rate(10.0) 12 | while not rospy.is_shutdown(): 13 | br.sendTransform((0.0, 0.0, 0.0), 14 | (0.0, 0.0, 0.0, 1.0), 15 | rospy.Time.now(), 16 | "/odom", 17 | "/map") 18 | rate.sleep() 19 | -------------------------------------------------------------------------------- /github.com/HEAD: -------------------------------------------------------------------------------- 1 | ref: refs/heads/master 2 | -------------------------------------------------------------------------------- /github.com/config: -------------------------------------------------------------------------------- 1 | [core] 2 | repositoryformatversion = 0 3 | filemode = false 4 | bare = true 5 | symlinks = false 6 | ignorecase = true 7 | -------------------------------------------------------------------------------- /github.com/description: -------------------------------------------------------------------------------- 1 | Unnamed repository; edit this file 'description' to name the repository. 2 | -------------------------------------------------------------------------------- /github.com/hooks/applypatch-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to check the commit log message taken by 4 | # applypatch from an e-mail message. 5 | # 6 | # The hook should exit with non-zero status after issuing an 7 | # appropriate message if it wants to stop the commit. The hook is 8 | # allowed to edit the commit message file. 9 | # 10 | # To enable this hook, rename this file to "applypatch-msg". 11 | 12 | . git-sh-setup 13 | commitmsg="$(git rev-parse --git-path hooks/commit-msg)" 14 | test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"} 15 | : 16 | -------------------------------------------------------------------------------- /github.com/hooks/commit-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to check the commit log message. 4 | # Called by "git commit" with one argument, the name of the file 5 | # that has the commit message. The hook should exit with non-zero 6 | # status after issuing an appropriate message if it wants to stop the 7 | # commit. The hook is allowed to edit the commit message file. 8 | # 9 | # To enable this hook, rename this file to "commit-msg". 10 | 11 | # Uncomment the below to add a Signed-off-by line to the message. 12 | # Doing this in a hook is a bad idea in general, but the prepare-commit-msg 13 | # hook is more suited to it. 14 | # 15 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') 16 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" 17 | 18 | # This example catches duplicate Signed-off-by lines. 19 | 20 | test "" = "$(grep '^Signed-off-by: ' "$1" | 21 | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { 22 | echo >&2 Duplicate Signed-off-by lines. 23 | exit 1 24 | } 25 | -------------------------------------------------------------------------------- /github.com/hooks/post-update.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to prepare a packed repository for use over 4 | # dumb transports. 5 | # 6 | # To enable this hook, rename this file to "post-update". 7 | 8 | exec git update-server-info 9 | -------------------------------------------------------------------------------- /github.com/hooks/pre-applypatch.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to verify what is about to be committed 4 | # by applypatch from an e-mail message. 5 | # 6 | # The hook should exit with non-zero status after issuing an 7 | # appropriate message if it wants to stop the commit. 8 | # 9 | # To enable this hook, rename this file to "pre-applypatch". 10 | 11 | . git-sh-setup 12 | precommit="$(git rev-parse --git-path hooks/pre-commit)" 13 | test -x "$precommit" && exec "$precommit" ${1+"$@"} 14 | : 15 | -------------------------------------------------------------------------------- /github.com/hooks/pre-commit.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to verify what is about to be committed. 4 | # Called by "git commit" with no arguments. The hook should 5 | # exit with non-zero status after issuing an appropriate message if 6 | # it wants to stop the commit. 7 | # 8 | # To enable this hook, rename this file to "pre-commit". 9 | 10 | if git rev-parse --verify HEAD >/dev/null 2>&1 11 | then 12 | against=HEAD 13 | else 14 | # Initial commit: diff against an empty tree object 15 | against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 16 | fi 17 | 18 | # If you want to allow non-ASCII filenames set this variable to true. 19 | allownonascii=$(git config --bool hooks.allownonascii) 20 | 21 | # Redirect output to stderr. 22 | exec 1>&2 23 | 24 | # Cross platform projects tend to avoid non-ASCII filenames; prevent 25 | # them from being added to the repository. We exploit the fact that the 26 | # printable range starts at the space character and ends with tilde. 27 | if [ "$allownonascii" != "true" ] && 28 | # Note that the use of brackets around a tr range is ok here, (it's 29 | # even required, for portability to Solaris 10's /usr/bin/tr), since 30 | # the square bracket bytes happen to fall in the designated range. 31 | test $(git diff --cached --name-only --diff-filter=A -z $against | 32 | LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 33 | then 34 | cat <<\EOF 35 | Error: Attempt to add a non-ASCII file name. 36 | 37 | This can cause problems if you want to work with people on other platforms. 38 | 39 | To be portable it is advisable to rename the file. 40 | 41 | If you know what you are doing you can disable this check using: 42 | 43 | git config hooks.allownonascii true 44 | EOF 45 | exit 1 46 | fi 47 | 48 | # If there are whitespace errors, print the offending file names and fail. 49 | exec git diff-index --check --cached $against -- 50 | -------------------------------------------------------------------------------- /github.com/hooks/pre-push.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # An example hook script to verify what is about to be pushed. Called by "git 4 | # push" after it has checked the remote status, but before anything has been 5 | # pushed. If this script exits with a non-zero status nothing will be pushed. 6 | # 7 | # This hook is called with the following parameters: 8 | # 9 | # $1 -- Name of the remote to which the push is being done 10 | # $2 -- URL to which the push is being done 11 | # 12 | # If pushing without using a named remote those arguments will be equal. 13 | # 14 | # Information about the commits which are being pushed is supplied as lines to 15 | # the standard input in the form: 16 | # 17 | # 18 | # 19 | # This sample shows how to prevent push of commits where the log message starts 20 | # with "WIP" (work in progress). 21 | 22 | remote="$1" 23 | url="$2" 24 | 25 | z40=0000000000000000000000000000000000000000 26 | 27 | while read local_ref local_sha remote_ref remote_sha 28 | do 29 | if [ "$local_sha" = $z40 ] 30 | then 31 | # Handle delete 32 | : 33 | else 34 | if [ "$remote_sha" = $z40 ] 35 | then 36 | # New branch, examine all commits 37 | range="$local_sha" 38 | else 39 | # Update to existing branch, examine new commits 40 | range="$remote_sha..$local_sha" 41 | fi 42 | 43 | # Check for WIP commit 44 | commit=`git rev-list -n 1 --grep '^WIP' "$range"` 45 | if [ -n "$commit" ] 46 | then 47 | echo >&2 "Found WIP commit in $local_ref, not pushing" 48 | exit 1 49 | fi 50 | fi 51 | done 52 | 53 | exit 0 54 | -------------------------------------------------------------------------------- /github.com/hooks/pre-receive.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to make use of push options. 4 | # The example simply echoes all push options that start with 'echoback=' 5 | # and rejects all pushes when the "reject" push option is used. 6 | # 7 | # To enable this hook, rename this file to "pre-receive". 8 | 9 | if test -n "$GIT_PUSH_OPTION_COUNT" 10 | then 11 | i=0 12 | while test "$i" -lt "$GIT_PUSH_OPTION_COUNT" 13 | do 14 | eval "value=\$GIT_PUSH_OPTION_$i" 15 | case "$value" in 16 | echoback=*) 17 | echo "echo from the pre-receive-hook: ${value#*=}" >&2 18 | ;; 19 | reject) 20 | exit 1 21 | esac 22 | i=$((i + 1)) 23 | done 24 | fi 25 | -------------------------------------------------------------------------------- /github.com/hooks/prepare-commit-msg.sample: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # An example hook script to prepare the commit log message. 4 | # Called by "git commit" with the name of the file that has the 5 | # commit message, followed by the description of the commit 6 | # message's source. The hook's purpose is to edit the commit 7 | # message file. If the hook fails with a non-zero status, 8 | # the commit is aborted. 9 | # 10 | # To enable this hook, rename this file to "prepare-commit-msg". 11 | 12 | # This hook includes three examples. The first comments out the 13 | # "Conflicts:" part of a merge commit. 14 | # 15 | # The second includes the output of "git diff --name-status -r" 16 | # into the message, just before the "git status" output. It is 17 | # commented because it doesn't cope with --amend or with squashed 18 | # commits. 19 | # 20 | # The third example adds a Signed-off-by line to the message, that can 21 | # still be edited. This is rarely a good idea. 22 | 23 | case "$2,$3" in 24 | merge,) 25 | /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;; 26 | 27 | # ,|template,) 28 | # /usr/bin/perl -i.bak -pe ' 29 | # print "\n" . `git diff --cached --name-status -r` 30 | # if /^#/ && $first++ == 0' "$1" ;; 31 | 32 | *) ;; 33 | esac 34 | 35 | # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') 36 | # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" 37 | -------------------------------------------------------------------------------- /github.com/info/exclude: -------------------------------------------------------------------------------- 1 | # git ls-files --others --exclude-from=.git/info/exclude 2 | # Lines that start with '#' are comments. 3 | # For a project mostly in C, the following would be a good set of 4 | # exclude patterns (uncomment them if you want to use them): 5 | # *.[oa] 6 | # *~ 7 | -------------------------------------------------------------------------------- /github.com/objects/01/a3c8feda3a0fe67e413d27c3ee6db180dc8b1e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/01/a3c8feda3a0fe67e413d27c3ee6db180dc8b1e -------------------------------------------------------------------------------- /github.com/objects/0d/ac102003772c6282e08f3c1139df88f3609502: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/0d/ac102003772c6282e08f3c1139df88f3609502 -------------------------------------------------------------------------------- /github.com/objects/0f/35783011fe51fe410c43531cd83c8389f893ca: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/0f/35783011fe51fe410c43531cd83c8389f893ca -------------------------------------------------------------------------------- /github.com/objects/0f/d01f9ef36a1efe3f3a1d9a736154234e61f087: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/0f/d01f9ef36a1efe3f3a1d9a736154234e61f087 -------------------------------------------------------------------------------- /github.com/objects/15/9bff8507074ed2fc993dfd43696faeac853414: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/15/9bff8507074ed2fc993dfd43696faeac853414 -------------------------------------------------------------------------------- /github.com/objects/19/4305100fe49cafacf73181346754768024735b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/19/4305100fe49cafacf73181346754768024735b -------------------------------------------------------------------------------- /github.com/objects/22/718f0e3ab3ff5ff37ee82f1071e41d2c54ab2e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/22/718f0e3ab3ff5ff37ee82f1071e41d2c54ab2e -------------------------------------------------------------------------------- /github.com/objects/2c/5b5eff0c7029d5ed655e62e05ef0dda0cbb407: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/2c/5b5eff0c7029d5ed655e62e05ef0dda0cbb407 -------------------------------------------------------------------------------- /github.com/objects/40/326b43b64462a7eb8a30d81c60042890bf77bb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/40/326b43b64462a7eb8a30d81c60042890bf77bb -------------------------------------------------------------------------------- /github.com/objects/47/8a3fcbc8882c34fd242633f0e7540f0c829f8b: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/47/8a3fcbc8882c34fd242633f0e7540f0c829f8b -------------------------------------------------------------------------------- /github.com/objects/50/96a738370a200728983e15443059a00546d4c9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/50/96a738370a200728983e15443059a00546d4c9 -------------------------------------------------------------------------------- /github.com/objects/53/1b771e21b03a08804284ce853b6f9434cdda47: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/53/1b771e21b03a08804284ce853b6f9434cdda47 -------------------------------------------------------------------------------- /github.com/objects/54/4114f66b2066704b0d6f69586752d64b4f6bd8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/54/4114f66b2066704b0d6f69586752d64b4f6bd8 -------------------------------------------------------------------------------- /github.com/objects/54/4e1b32dab449bf2bbaae4578c2060894bda609: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/54/4e1b32dab449bf2bbaae4578c2060894bda609 -------------------------------------------------------------------------------- /github.com/objects/54/fe414c94abfa76a1deb224cba920567049aa0e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/54/fe414c94abfa76a1deb224cba920567049aa0e -------------------------------------------------------------------------------- /github.com/objects/55/138f4f7bcf329503adba2e780ef1b441a68500: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/55/138f4f7bcf329503adba2e780ef1b441a68500 -------------------------------------------------------------------------------- /github.com/objects/55/3ce60fb5e38e283f930f4ecb15ced90e35c482: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/55/3ce60fb5e38e283f930f4ecb15ced90e35c482 -------------------------------------------------------------------------------- /github.com/objects/5b/04fb3fec0d0ce5e9a6b47e8ac79de931ec4a71: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/5b/04fb3fec0d0ce5e9a6b47e8ac79de931ec4a71 -------------------------------------------------------------------------------- /github.com/objects/63/8849fb00621170fa244e1651c9e224a795b398: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/63/8849fb00621170fa244e1651c9e224a795b398 -------------------------------------------------------------------------------- /github.com/objects/67/dfd72e5d085e8209fa9142f2d4a67a05b99f4a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/67/dfd72e5d085e8209fa9142f2d4a67a05b99f4a -------------------------------------------------------------------------------- /github.com/objects/71/a2acd632877bbc8fa71e942fd15b5ede7a74a3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/71/a2acd632877bbc8fa71e942fd15b5ede7a74a3 -------------------------------------------------------------------------------- /github.com/objects/73/01fe1a15f381e04f8568ba8748ad477845c385: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/73/01fe1a15f381e04f8568ba8748ad477845c385 -------------------------------------------------------------------------------- /github.com/objects/7a/1a280c54a30e511aa03676f7b782afeb335568: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/7a/1a280c54a30e511aa03676f7b782afeb335568 -------------------------------------------------------------------------------- /github.com/objects/7e/61de839d948a0870220d10d7d698bc141378ed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/7e/61de839d948a0870220d10d7d698bc141378ed -------------------------------------------------------------------------------- /github.com/objects/85/0e1362b2a7eeaca9dfe18e9db8493231101040: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/85/0e1362b2a7eeaca9dfe18e9db8493231101040 -------------------------------------------------------------------------------- /github.com/objects/87/7e81356a19ee0943dcac2475b0fbdfeb2ac150: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/87/7e81356a19ee0943dcac2475b0fbdfeb2ac150 -------------------------------------------------------------------------------- /github.com/objects/8d/aa068a9ecd04553aa43fa9e61104a624824674: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/8d/aa068a9ecd04553aa43fa9e61104a624824674 -------------------------------------------------------------------------------- /github.com/objects/92/ff07745c88a3ef423bd1d00581125c7e0156ee: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/92/ff07745c88a3ef423bd1d00581125c7e0156ee -------------------------------------------------------------------------------- /github.com/objects/9c/baf7ea81fc4be07321b492b2cb650d44e011ce: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/9c/baf7ea81fc4be07321b492b2cb650d44e011ce -------------------------------------------------------------------------------- /github.com/objects/9e/39995f29bdd7310d3ac5967603fc1c24b2ab0a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/9e/39995f29bdd7310d3ac5967603fc1c24b2ab0a -------------------------------------------------------------------------------- /github.com/objects/a2/5e461c31c74d872217372902af2a08c25ad4ae: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/a2/5e461c31c74d872217372902af2a08c25ad4ae -------------------------------------------------------------------------------- /github.com/objects/a3/4face514d41e8b5489f3b8765a9aa96f8d2b8d: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/a3/4face514d41e8b5489f3b8765a9aa96f8d2b8d -------------------------------------------------------------------------------- /github.com/objects/a4/1a754d166e09ec6a3c6b5f692055cfe8fc86c5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/a4/1a754d166e09ec6a3c6b5f692055cfe8fc86c5 -------------------------------------------------------------------------------- /github.com/objects/a9/343cf85f2ec6f13e89f337d281cc08d13e04c5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/a9/343cf85f2ec6f13e89f337d281cc08d13e04c5 -------------------------------------------------------------------------------- /github.com/objects/ac/bd826a83d8cdf2eb612b3825257b7ee0c3121c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/ac/bd826a83d8cdf2eb612b3825257b7ee0c3121c -------------------------------------------------------------------------------- /github.com/objects/b3/5adc0170782694ed573013020306cd283fddef: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/b3/5adc0170782694ed573013020306cd283fddef -------------------------------------------------------------------------------- /github.com/objects/b4/b39e3d41559ea351c13d265cbd7a40bcb689c1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/b4/b39e3d41559ea351c13d265cbd7a40bcb689c1 -------------------------------------------------------------------------------- /github.com/objects/b9/54687d264e3a53cc2dcbe5247c05b120d07427: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/b9/54687d264e3a53cc2dcbe5247c05b120d07427 -------------------------------------------------------------------------------- /github.com/objects/ba/3f8555f7254232afdc999e82df1aaeccf15403: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/ba/3f8555f7254232afdc999e82df1aaeccf15403 -------------------------------------------------------------------------------- /github.com/objects/c2/f90a7655acf5c766e2f7810c0aac0f4e49dd35: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/c2/f90a7655acf5c766e2f7810c0aac0f4e49dd35 -------------------------------------------------------------------------------- /github.com/objects/c3/9bb74e27afbf5efd6fe2c27b9e306525dd937a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/c3/9bb74e27afbf5efd6fe2c27b9e306525dd937a -------------------------------------------------------------------------------- /github.com/objects/c4/6f5f95b79530dceb16ee0f43eda57a81ed0958: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/c4/6f5f95b79530dceb16ee0f43eda57a81ed0958 -------------------------------------------------------------------------------- /github.com/objects/ce/806a81a89bc0d25fdbbbabdfe06b3ffd0e0e8f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/ce/806a81a89bc0d25fdbbbabdfe06b3ffd0e0e8f -------------------------------------------------------------------------------- /github.com/objects/dc/915c9da4a618bc2cfa2a55140647a629a7fbdc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/dc/915c9da4a618bc2cfa2a55140647a629a7fbdc -------------------------------------------------------------------------------- /github.com/objects/e1/bb6291df0804a34683987b4287ad2e7a827c9e: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/e1/bb6291df0804a34683987b4287ad2e7a827c9e -------------------------------------------------------------------------------- /github.com/objects/e4/50b16c7f5447a3d0959dc95d2e7160853da377: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/e4/50b16c7f5447a3d0959dc95d2e7160853da377 -------------------------------------------------------------------------------- /github.com/objects/e6/ca11077dec5588d66d26130e1e746cbdff2b73: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/e6/ca11077dec5588d66d26130e1e746cbdff2b73 -------------------------------------------------------------------------------- /github.com/objects/e9/4f5b5648b87c451d32fd5b79dce6895cb28b4f: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/e9/4f5b5648b87c451d32fd5b79dce6895cb28b4f -------------------------------------------------------------------------------- /github.com/objects/ea/55fddbc292bc1968bc851fbb78b8bfbf488c00: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/ea/55fddbc292bc1968bc851fbb78b8bfbf488c00 -------------------------------------------------------------------------------- /github.com/objects/f7/09decc247c2049f844c6e26ec0ff18ba3d3699: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/f7/09decc247c2049f844c6e26ec0ff18ba3d3699 -------------------------------------------------------------------------------- /github.com/objects/f9/408399ff5e935eaf92c39e7660f025c51e88fd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/f9/408399ff5e935eaf92c39e7660f025c51e88fd -------------------------------------------------------------------------------- /github.com/objects/f9/a06129e7391797e6bd9bca5e51cf48e5c1d949: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/f9/a06129e7391797e6bd9bca5e51cf48e5c1d949 -------------------------------------------------------------------------------- /github.com/objects/fa/7f4e97942ff7ffefe7202ed1dc0c87309be778: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/fa/7f4e97942ff7ffefe7202ed1dc0c87309be778 -------------------------------------------------------------------------------- /github.com/objects/fc/ad04bad0d6e8f80b3823f60c0cf1185a1846bf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/github.com/objects/fc/ad04bad0d6e8f80b3823f60c0cf1185a1846bf -------------------------------------------------------------------------------- /github.com/refs/heads/master: -------------------------------------------------------------------------------- 1 | ba3f8555f7254232afdc999e82df1aaeccf15403 2 | -------------------------------------------------------------------------------- /navigation/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | *.project 3 | *.cproject 4 | 5 | -------------------------------------------------------------------------------- /navigation/.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 | # - pasta@doe 16 | - gm130s@gmail.com 17 | env: 18 | matrix: 19 | - ROS_DISTRO="indigo" ROS_REPOSITORY_PATH=http://packages.ros.org/ros/ubuntu USE_DEB=true 20 | - ROS_DISTRO="indigo" PRERELEASE=true PRERELEASE_DOWNSTREAM_DEPTH=0 21 | matrix: 22 | allow_failures: 23 | - env: ROS_DISTRO="indigo" PRERELEASE=true PRERELEASE_DOWNSTREAM_DEPTH=0 # Run docker-based ROS prerelease test http://wiki.ros.org/bloom/Tutorials/PrereleaseTest Because we might not want to run prerelease test for all PRs, it's omitted from pass-fail criteria. 24 | install: 25 | - git clone https://github.com/ros-industrial/industrial_ci.git .ci_config && source .ci_config/travis.sh 26 | # - source ./travis.sh # Enable this when you have a package-local script 27 | -------------------------------------------------------------------------------- /navigation/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=Ibin_uT64__navigation__ubuntu_trusty_amd64__binary)](http://build.ros.org/view/Ibin_uT64/job/Ibin_uT64__navigation__ubuntu_trusty_amd64__binary/) 9 | 10 | Related stacks: 11 | 12 | * http://github.com/ros-planning/navigation_tutorials 13 | * http://github.com/ros-planning/navigation_experimental 14 | 15 | For discussion of ROS "hydro" release development, please check out the 16 | https://groups.google.com/group/ros-sig-navigation mailing list and see 17 | the SIG pages at http://www.ros.org/wiki/sig/Navigation and 18 | http://www.ros.org/wiki/hydro/Planning/Navigation. 19 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/amcl/package.xml: -------------------------------------------------------------------------------- 1 | 2 | amcl 3 | 1.12.12 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 | LGPL 22 | 23 | catkin 24 | 25 | rosbag 26 | dynamic_reconfigure 27 | message_filters 28 | nav_msgs 29 | roscpp 30 | rostest 31 | std_srvs 32 | tf 33 | 34 | rosbag 35 | roscpp 36 | dynamic_reconfigure 37 | tf 38 | nav_msgs 39 | 40 | map_server 41 |
42 | -------------------------------------------------------------------------------- /navigation/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 "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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/base_local_planner/include/base_local_planner/map_grid_cost_point.h: -------------------------------------------------------------------------------- 1 | /********************************************************************* 2 | * Software License Agreement (BSD License) 3 | * 4 | * Copyright (c) 2010, Eric Perko 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 Eric Perko 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 MAP_GRID_COST_POINT_H_ 35 | #define MAP_GRID_COST_POINT_H_ 36 | 37 | #include 38 | 39 | namespace base_local_planner { 40 | struct MapGridCostPoint { 41 | float x; 42 | float y; 43 | float z; 44 | float path_cost; 45 | float goal_cost; 46 | float occ_cost; 47 | float total_cost; 48 | }; 49 | } 50 | 51 | POINT_CLOUD_REGISTER_POINT_STRUCT( 52 | base_local_planner::MapGridCostPoint, 53 | (float, x, x) 54 | (float, y, y) 55 | (float, z, z) 56 | (float, path_cost, path_cost) 57 | (float, goal_cost, goal_cost) 58 | (float, occ_cost, occ_cost) 59 | (float, total_cost, total_cost)); 60 | #endif 61 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/base_local_planner/msg/Position2DInt.msg: -------------------------------------------------------------------------------- 1 | int64 x 2 | int64 y -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/base_local_planner/src/local_planner_limits/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/carrot_planner/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package carrot_planner 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | 29 | 1.12.4 (2015-06-03) 30 | ------------------- 31 | 32 | 1.12.3 (2015-04-30) 33 | ------------------- 34 | 35 | 1.12.2 (2015-03-31) 36 | ------------------- 37 | 38 | 1.12.1 (2015-03-14) 39 | ------------------- 40 | 41 | 1.12.0 (2015-02-04) 42 | ------------------- 43 | * update maintainer email 44 | * Contributors: Michael Ferguson 45 | 46 | 1.11.15 (2015-02-03) 47 | -------------------- 48 | * Add ARCHIVE_DESTINATION for static builds 49 | * Contributors: Gary Servin 50 | 51 | 1.11.14 (2014-12-05) 52 | -------------------- 53 | 54 | 1.11.13 (2014-10-02) 55 | -------------------- 56 | 57 | 1.11.12 (2014-10-01) 58 | -------------------- 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 | 75 | 1.11.4 (2013-09-27) 76 | ------------------- 77 | * Package URL Updates 78 | -------------------------------------------------------------------------------- /navigation/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(${EIGEN_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 | target_link_libraries(carrot_planner 33 | ${catkin_LIBRARIES} 34 | ) 35 | 36 | install(TARGETS carrot_planner 37 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 38 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 39 | ) 40 | 41 | install(DIRECTORY include/${PROJECT_NAME}/ 42 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 43 | PATTERN ".svn" EXCLUDE 44 | ) 45 | 46 | install(FILES bgp_plugin.xml 47 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 48 | ) 49 | 50 | 51 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/carrot_planner/package.xml: -------------------------------------------------------------------------------- 1 | 2 | carrot_planner 3 | 1.12.12 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 | BSD 15 | http://wiki.ros.org/carrot_planner 16 | 17 | catkin 18 | 19 | roscpp 20 | costmap_2d 21 | pluginlib 22 | nav_core 23 | base_local_planner 24 | tf 25 | 26 | eigen 27 | 28 | roscpp 29 | costmap_2d 30 | pluginlib 31 | nav_core 32 | base_local_planner 33 | tf 34 | 35 | eigen 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /navigation/clear_costmap_recovery/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package clear_costmap_recovery 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | 29 | 1.12.4 (2015-06-03) 30 | ------------------- 31 | 32 | 1.12.3 (2015-04-30) 33 | ------------------- 34 | * proper locking during costmap update 35 | * Contributors: Michael Ferguson 36 | 37 | 1.12.2 (2015-03-31) 38 | ------------------- 39 | 40 | 1.12.1 (2015-03-14) 41 | ------------------- 42 | 43 | 1.12.0 (2015-02-04) 44 | ------------------- 45 | * update maintainer email 46 | * Contributors: Michael Ferguson 47 | 48 | 1.11.15 (2015-02-03) 49 | -------------------- 50 | * Add ARCHIVE_DESTINATION for static builds 51 | * Contributors: Gary Servin 52 | 53 | 1.11.14 (2014-12-05) 54 | -------------------- 55 | 56 | 1.11.13 (2014-10-02) 57 | -------------------- 58 | * Fix the build (layers library is exported by costmap_2d) 59 | * Contributors: Michael Ferguson 60 | 61 | 1.11.12 (2014-10-01) 62 | -------------------- 63 | * Clarify debug messages 64 | * Initial Clearing Costmap parameter change 65 | * Contributors: David Lu!!, Michael Ferguson 66 | 67 | 1.11.11 (2014-07-23) 68 | -------------------- 69 | 70 | 1.11.10 (2014-06-25) 71 | -------------------- 72 | 73 | 1.11.9 (2014-06-10) 74 | ------------------- 75 | 76 | 1.11.8 (2014-05-21) 77 | ------------------- 78 | 79 | 1.11.7 (2014-05-21) 80 | ------------------- 81 | * update build to find eigen using cmake_modules 82 | * Contributors: Michael Ferguson 83 | 84 | 1.11.5 (2014-01-30) 85 | ------------------- 86 | * Misc. other commits from Groovy Branch 87 | * Change maintainer from Hersh to Lu 88 | 89 | 1.11.4 (2013-09-27) 90 | ------------------- 91 | * Package URL Updates 92 | * Fix bounds setting 93 | -------------------------------------------------------------------------------- /navigation/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(Eigen REQUIRED) 15 | find_package(PCL REQUIRED) 16 | include_directories( 17 | include 18 | ${catkin_INCLUDE_DIRS} 19 | ${EIGEN_INCLUDE_DIRS} 20 | ${PCL_INCLUDE_DIRS} 21 | ) 22 | add_definitions(${EIGEN_DEFINITIONS}) 23 | 24 | catkin_package( 25 | INCLUDE_DIRS include 26 | LIBRARIES clear_costmap_recovery 27 | CATKIN_DEPENDS 28 | costmap_2d 29 | nav_core 30 | pluginlib 31 | roscpp 32 | tf 33 | ) 34 | 35 | add_library(clear_costmap_recovery src/clear_costmap_recovery.cpp) 36 | target_link_libraries(clear_costmap_recovery ${catkin_LIBRARIES}) 37 | 38 | 39 | ## Configure Tests 40 | if(CATKIN_ENABLE_TESTING) 41 | # Find package test dependencies 42 | find_package(rostest REQUIRED) 43 | 44 | # Add the test folder to the include directories 45 | include_directories(test) 46 | 47 | include_directories(${GTEST_INCLUDE_DIRS}) 48 | link_directories(${GTEST_LIBRARY_DIRS}) 49 | 50 | # Create targets for test executables 51 | add_rostest_gtest(clear_tester test/clear_tests.launch test/clear_tester.cpp) 52 | add_dependencies(tests clear_tester ${catkin_LIBRARIES}) 53 | target_link_libraries(clear_tester clear_costmap_recovery ${GTEST_LIBRARIES}) 54 | endif() 55 | 56 | 57 | install(TARGETS clear_costmap_recovery 58 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 59 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 60 | ) 61 | 62 | install(FILES ccr_plugin.xml 63 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 64 | ) 65 | 66 | install(DIRECTORY include/${PROJECT_NAME}/ 67 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 68 | PATTERN ".svn" EXCLUDE 69 | ) 70 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/clear_costmap_recovery/package.xml: -------------------------------------------------------------------------------- 1 | 2 | clear_costmap_recovery 3 | 1.12.12 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 | BSD 14 | http://wiki.ros.org/clear_costmap_recovery 15 | 16 | catkin 17 | 18 | cmake_modules 19 | roscpp 20 | tf 21 | costmap_2d 22 | nav_core 23 | pluginlib 24 | eigen 25 | 26 | roscpp 27 | tf 28 | costmap_2d 29 | nav_core 30 | pluginlib 31 | eigen 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /navigation/clear_costmap_recovery/test/clear_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | 11 | exit(gen.generate("costmap_2d", "costmap_2d", "InflationPlugin")) 12 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/costmap_2d/launch/example.launch: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/costmap_2d/test/TenByTen.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/navigation/costmap_2d/test/TenByTen.pgm -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/costmap_2d/test/inflation_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /navigation/costmap_2d/test/obstacle_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /navigation/costmap_2d/test/simple_driving_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /navigation/costmap_2d/test/static_tests.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /navigation/dwa_local_planner/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package dwa_local_planner 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | 29 | 1.12.4 (2015-06-03) 30 | ------------------- 31 | 32 | 1.12.3 (2015-04-30) 33 | ------------------- 34 | 35 | 1.12.2 (2015-03-31) 36 | ------------------- 37 | 38 | 1.12.1 (2015-03-14) 39 | ------------------- 40 | * link only libraries found with find_package 41 | * Contributors: Lukas Bulwahn 42 | 43 | 1.12.0 (2015-02-04) 44 | ------------------- 45 | * update maintainer email 46 | * Contributors: Michael Ferguson 47 | 48 | 1.11.15 (2015-02-03) 49 | -------------------- 50 | * Add ARCHIVE_DESTINATION for static builds 51 | * Contributors: Gary Servin 52 | 53 | 1.11.14 (2014-12-05) 54 | -------------------- 55 | 56 | 1.11.13 (2014-10-02) 57 | -------------------- 58 | 59 | 1.11.12 (2014-10-01) 60 | -------------------- 61 | 62 | 1.11.11 (2014-07-23) 63 | -------------------- 64 | 65 | 1.11.10 (2014-06-25) 66 | -------------------- 67 | 68 | 1.11.9 (2014-06-10) 69 | ------------------- 70 | 71 | 1.11.8 (2014-05-21) 72 | ------------------- 73 | 74 | 1.11.7 (2014-05-21) 75 | ------------------- 76 | * update build to find eigen using cmake_modules 77 | * Contributors: Michael Ferguson 78 | 79 | 1.11.5 (2014-01-30) 80 | ------------------- 81 | * Fix for `#5 `_ 82 | * Parameter to sum scores in DWA Planner 83 | * Keep consistent allignment_cost scale 84 | Use the configured alignment cost instead of resetting to 1.0. This 85 | condition (farther from goal than forward_point_distance) is probably 86 | met at the start of navigation, it seems this cost should be obeyed 87 | until the robot gets close, then ignored completely. 88 | * Cheat factor for end of DWA Plans 89 | * Change maintainer from Hersh to Lu 90 | 91 | 1.11.4 (2013-09-27) 92 | ------------------- 93 | * Package URL Updates 94 | * Changed new Odom-Helper::initialize() function to setOdomTopic(). 95 | * some more corrections for the pointcloud object bug 96 | -------------------------------------------------------------------------------- /navigation/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(Eigen REQUIRED) 19 | find_package(PCL REQUIRED) 20 | include_directories( 21 | include 22 | ${catkin_INCLUDE_DIRS} 23 | ${EIGEN_INCLUDE_DIRS} 24 | ${PCL_INCLUDE_DIRS} 25 | ) 26 | add_definitions(${EIGEN_DEFINITIONS}) 27 | 28 | link_directories(${catkin_LIBRARY_DIRS}) 29 | 30 | # dynamic reconfigure 31 | generate_dynamic_reconfigure_options( 32 | cfg/DWAPlanner.cfg 33 | ) 34 | 35 | catkin_package( 36 | INCLUDE_DIRS include 37 | LIBRARIES dwa_local_planner 38 | CATKIN_DEPENDS 39 | dynamic_reconfigure 40 | pluginlib 41 | roscpp 42 | ) 43 | 44 | add_library(dwa_local_planner src/dwa_planner.cpp src/dwa_planner_ros.cpp) 45 | target_link_libraries(dwa_local_planner ${catkin_LIBRARIES}) 46 | add_dependencies(dwa_local_planner dwa_local_planner_gencfg) 47 | add_dependencies(dwa_local_planner nav_msgs_gencpp) 48 | 49 | install(TARGETS dwa_local_planner 50 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 51 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 52 | ) 53 | 54 | install(FILES blp_plugin.xml 55 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 56 | ) 57 | 58 | install(DIRECTORY include/${PROJECT_NAME}/ 59 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 60 | PATTERN ".svn" EXCLUDE 61 | ) 62 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/dwa_local_planner/package.xml: -------------------------------------------------------------------------------- 1 | 2 | dwa_local_planner 3 | 1.12.12 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 | BSD 21 | http://wiki.ros.org/dwa_local_planner 22 | 23 | catkin 24 | 25 | base_local_planner 26 | cmake_modules 27 | costmap_2d 28 | dynamic_reconfigure 29 | eigen 30 | nav_core 31 | nav_msgs 32 | pluginlib 33 | pcl_conversions 34 | roscpp 35 | tf 36 | 37 | base_local_planner 38 | costmap_2d 39 | dynamic_reconfigure 40 | eigen 41 | nav_core 42 | nav_msgs 43 | pluginlib 44 | roscpp 45 | tf 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /navigation/fake_localization/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package fake_localization 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | * More tolerant initial pose transform lookup. 29 | * Contributors: Daniel Stonier 30 | 31 | 1.12.4 (2015-06-03) 32 | ------------------- 33 | 34 | 1.12.3 (2015-04-30) 35 | ------------------- 36 | 37 | 1.12.2 (2015-03-31) 38 | ------------------- 39 | 40 | 1.12.1 (2015-03-14) 41 | ------------------- 42 | 43 | 1.12.0 (2015-02-04) 44 | ------------------- 45 | * update maintainer email 46 | * Contributors: Michael Ferguson 47 | 48 | 1.11.15 (2015-02-03) 49 | -------------------- 50 | 51 | 1.11.14 (2014-12-05) 52 | -------------------- 53 | 54 | 1.11.13 (2014-10-02) 55 | -------------------- 56 | 57 | 1.11.12 (2014-10-01) 58 | -------------------- 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 | 75 | 1.11.4 (2013-09-27) 76 | ------------------- 77 | * Package URL Updates 78 | * amcl_pose and particle cloud are now published latched 79 | -------------------------------------------------------------------------------- /navigation/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 | roscpp 8 | rosconsole 9 | nav_msgs 10 | geometry_msgs 11 | tf 12 | message_filters 13 | ) 14 | 15 | 16 | find_package(Boost REQUIRED COMPONENTS signals) 17 | 18 | catkin_package( 19 | CATKIN_DEPENDS 20 | roscpp 21 | rospy 22 | ) 23 | 24 | include_directories(${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS}) 25 | 26 | add_executable(fake_localization fake_localization.cpp) 27 | target_link_libraries(fake_localization 28 | ${catkin_LIBRARIES} 29 | ${Boost_LIBRARIES} 30 | ) 31 | 32 | add_dependencies(fake_localization nav_msgs_gencpp) 33 | add_dependencies(fake_localization geometry_msgs_gencpp) 34 | 35 | install( 36 | PROGRAMS 37 | static_odom_broadcaster.py 38 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 39 | ) 40 | 41 | install( 42 | TARGETS 43 | fake_localization 44 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 45 | ) 46 | -------------------------------------------------------------------------------- /navigation/fake_localization/package.xml: -------------------------------------------------------------------------------- 1 | 2 | fake_localization 3 | 1.12.12 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 | BSD 10 | http://wiki.ros.org/fake_localization 11 | 12 | catkin 13 | 14 | angles 15 | roscpp 16 | rosconsole 17 | nav_msgs 18 | geometry_msgs 19 | tf 20 | message_filters 21 | rospy 22 | 23 | roscpp 24 | rosconsole 25 | nav_msgs 26 | geometry_msgs 27 | tf 28 | message_filters 29 | rospy 30 | 31 | 32 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES}) 52 | 53 | add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_gencfg) 54 | 55 | add_executable(planner 56 | src/plan_node.cpp 57 | ) 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 | -------------------------------------------------------------------------------- /navigation/global_planner/bgp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A implementation of a grid based planner using Dijkstras or A* 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/global_planner/package.xml: -------------------------------------------------------------------------------- 1 | 2 | global_planner 3 | 1.12.12 4 | 5 | A path planner library and node. 6 | 7 | David V. Lu!! 8 | Michael Ferguson 9 | BSD 10 | 11 | David Lu!! 12 | http://wiki.ros.org/global_planner 13 | 14 | catkin 15 | 16 | angles 17 | costmap_2d 18 | dynamic_reconfigure 19 | geometry_msgs 20 | nav_core 21 | nav_msgs 22 | navfn 23 | pluginlib 24 | roscpp 25 | tf 26 | 27 | costmap_2d 28 | dynamic_reconfigure 29 | geometry_msgs 30 | nav_core 31 | nav_msgs 32 | navfn 33 | pluginlib 34 | roscpp 35 | tf 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /navigation/map_server/package.xml: -------------------------------------------------------------------------------- 1 | 2 | map_server 3 | 1.12.12 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 | http://wiki.ros.org/map_server 14 | BSD 15 | 16 | catkin 17 | 18 | nav_msgs 19 | roscpp 20 | rostest 21 | sdl-image 22 | tf 23 | yaml-cpp 24 | 25 | nav_msgs 26 | roscpp 27 | rostest 28 | sdl-image 29 | tf 30 | yaml-cpp 31 | 32 | rospy 33 | 34 | -------------------------------------------------------------------------------- /navigation/map_server/scripts/crop_map: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sys 4 | import yaml 5 | from PIL import Image 6 | import math 7 | 8 | def find_bounds(map_image): 9 | x_min = map_image.size[0] 10 | x_end = 0 11 | y_min = map_image.size[1] 12 | y_end = 0 13 | pix = map_image.load() 14 | for x in range(map_image.size[0]): 15 | for y in range(map_image.size[1]): 16 | val = pix[x, y] 17 | if val != 205: # not unknown 18 | x_min = min(x, x_min) 19 | x_end = max(x, x_end) 20 | y_min = min(y, y_min) 21 | y_end = max(y, y_end) 22 | return x_min, x_end, y_min, y_end 23 | 24 | def computed_cropped_origin(map_image, bounds, resolution, origin): 25 | """ Compute the image for the cropped map when map_image is cropped by bounds and had origin before. """ 26 | ox = origin[0] 27 | oy = origin[1] 28 | oth = origin[2] 29 | 30 | # First figure out the delta we have to translate from the lower left corner (which is the origin) 31 | # in the image system 32 | dx = bounds[0] * resolution 33 | dy = (map_image.size[1] - bounds[3]) * resolution 34 | 35 | # Next rotate this by the theta and add to the old origin 36 | 37 | new_ox = ox + dx * math.cos(oth) - dy * math.sin(oth) 38 | new_oy = oy + dx * math.sin(oth) + dy * math.cos(oth) 39 | 40 | return [new_ox, new_oy, oth] 41 | 42 | if __name__ == "__main__": 43 | if len(sys.argv) < 2: 44 | print >> sys.stderr, "Usage: %s map.yaml [cropped.yaml]" % sys.argv[0] 45 | sys.exit(1) 46 | 47 | with open(sys.argv[1]) as f: 48 | map_data = yaml.safe_load(f) 49 | 50 | if len(sys.argv) > 2: 51 | crop_name = sys.argv[2] 52 | if crop_name.endswith(".yaml"): 53 | crop_name = crop_name[:-5] 54 | crop_yaml = crop_name + ".yaml" 55 | crop_image = crop_name + ".pgm" 56 | else: 57 | crop_yaml = "cropped.yaml" 58 | crop_image = "cropped.pgm" 59 | 60 | map_image_file = map_data["image"] 61 | resolution = map_data["resolution"] 62 | origin = map_data["origin"] 63 | 64 | map_image = Image.open(map_image_file) 65 | 66 | bounds = find_bounds(map_image) 67 | 68 | # left, upper, right, lower 69 | cropped_image = map_image.crop((bounds[0], bounds[2], bounds[1] + 1, bounds[3] + 1)) 70 | 71 | cropped_image.save(crop_image) 72 | map_data["image"] = crop_image 73 | map_data["origin"] = computed_cropped_origin(map_image, bounds, resolution, origin) 74 | with open(crop_yaml, "w") as f: 75 | yaml.dump(map_data, f) 76 | 77 | -------------------------------------------------------------------------------- /navigation/map_server/scripts/crop_map.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sys 4 | import yaml 5 | from PIL import Image 6 | import math 7 | 8 | def find_bounds(map_image): 9 | x_min = map_image.size[0] 10 | x_end = 0 11 | y_min = map_image.size[1] 12 | y_end = 0 13 | pix = map_image.load() 14 | for x in range(map_image.size[0]): 15 | for y in range(map_image.size[1]): 16 | val = pix[x, y] 17 | if val != 205: # not unknown 18 | x_min = min(x, x_min) 19 | x_end = max(x, x_end) 20 | y_min = min(y, y_min) 21 | y_end = max(y, y_end) 22 | return x_min, x_end, y_min, y_end 23 | 24 | def computed_cropped_origin(map_image, bounds, resolution, origin): 25 | """ Compute the image for the cropped map when map_image is cropped by bounds and had origin before. """ 26 | ox = origin[0] 27 | oy = origin[1] 28 | oth = origin[2] 29 | 30 | # First figure out the delta we have to translate from the lower left corner (which is the origin) 31 | # in the image system 32 | dx = bounds[0] * resolution 33 | dy = (map_image.size[1] - bounds[3]) * resolution 34 | 35 | # Next rotate this by the theta and add to the old origin 36 | 37 | new_ox = ox + dx * math.cos(oth) - dy * math.sin(oth) 38 | new_oy = oy + dx * math.sin(oth) + dy * math.cos(oth) 39 | 40 | return [new_ox, new_oy, oth] 41 | 42 | if __name__ == "__main__": 43 | if len(sys.argv) < 2: 44 | print >> sys.stderr, "Usage: %s map.yaml [cropped.yaml]" % sys.argv[0] 45 | sys.exit(1) 46 | 47 | with open(sys.argv[1]) as f: 48 | map_data = yaml.safe_load(f) 49 | 50 | if len(sys.argv) > 2: 51 | crop_name = sys.argv[2] 52 | if crop_name.endswith(".yaml"): 53 | crop_name = crop_name[:-5] 54 | crop_yaml = crop_name + ".yaml" 55 | crop_image = crop_name + ".pgm" 56 | else: 57 | crop_yaml = "cropped.yaml" 58 | crop_image = "cropped.pgm" 59 | 60 | map_image_file = map_data["image"] 61 | resolution = map_data["resolution"] 62 | origin = map_data["origin"] 63 | 64 | map_image = Image.open(map_image_file) 65 | 66 | bounds = find_bounds(map_image) 67 | 68 | # left, upper, right, lower 69 | cropped_image = map_image.crop((bounds[0], bounds[2], bounds[1] + 1, bounds[3] + 1)) 70 | 71 | cropped_image.save(crop_image) 72 | map_data["image"] = crop_image 73 | map_data["origin"] = computed_cropped_origin(map_image, bounds, resolution, origin) 74 | with open(crop_yaml, "w") as f: 75 | yaml.dump(map_data, f) 76 | 77 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/map_server/test/rtest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/map_server/test/testmap.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/navigation/map_server/test/testmap.bmp -------------------------------------------------------------------------------- /navigation/map_server/test/testmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/navigation/map_server/test/testmap.png -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | cmake_modules 7 | roscpp 8 | pluginlib 9 | actionlib 10 | dynamic_reconfigure 11 | message_generation 12 | nav_core 13 | tf 14 | ) 15 | find_package(Eigen REQUIRED) 16 | add_definitions(${EIGEN_DEFINITIONS}) 17 | 18 | # dynamic reconfigure 19 | generate_dynamic_reconfigure_options( 20 | cfg/MoveBase.cfg 21 | ) 22 | 23 | catkin_package( 24 | CATKIN_DEPENDS 25 | roscpp 26 | dynamic_reconfigure 27 | ) 28 | 29 | include_directories( 30 | include 31 | ${catkin_INCLUDE_DIRS} 32 | ${EIGEN_INCLUDE_DIRS} 33 | ) 34 | 35 | # move_base 36 | add_library(move_base 37 | src/move_base.cpp 38 | ) 39 | target_link_libraries(move_base 40 | ${Boost_LIBRARIES} 41 | ${catkin_LIBRARIES} 42 | ) 43 | add_dependencies(move_base move_base_gencfg) 44 | add_dependencies(move_base geometry_msgs_gencpp) 45 | 46 | add_executable(move_base_node 47 | src/move_base_node.cpp 48 | ) 49 | target_link_libraries(move_base_node move_base) 50 | set_target_properties(move_base_node PROPERTIES OUTPUT_NAME move_base) 51 | 52 | install(DIRECTORY launch 53 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 54 | USE_SOURCE_PERMISSIONS 55 | ) 56 | 57 | install( 58 | PROGRAMS 59 | scripts/subtopic_forwarder.py 60 | scripts/subtopic_forwarder_node.py 61 | scripts/warner.py 62 | DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 63 | ) 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 | -------------------------------------------------------------------------------- /navigation/move_base/cfg/MoveBase.cfg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | PACKAGE = 'move_base' 4 | 5 | from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator, str_t, double_t, bool_t 6 | 7 | gen = ParameterGenerator() 8 | 9 | gen.add("base_global_planner", str_t, 0, "The name of the plugin for the global planner to use with move_base.", "navfn/NavfnROS") 10 | gen.add("base_local_planner", str_t, 0, "The name of the plugin for the local planner to use with move_base.", "base_local_planner/TrajectoryPlannerROS") 11 | 12 | #gen.add("recovery_behaviors", str_t, 0, "A list of recovery behavior plugins to use with move_base.", "[{name: conservative_reset, type: clear_costmap_recovery/ClearCostmapRecovery}, {name: rotate_recovery, type: rotate_recovery/RotateRecovery}, {name: aggressive_reset, type: clear_costmap_recovery/ClearCostmapRecovery}]") 13 | 14 | gen.add("planner_frequency", double_t, 0, "The rate in Hz at which to run the planning loop.", 0, 0, 100) 15 | gen.add("controller_frequency", double_t, 0, "The rate in Hz at which to run the control loop and send velocity commands to the base.", 20, 0, 100) 16 | gen.add("planner_patience", double_t, 0, "How long the planner will wait in seconds in an attempt to find a valid plan before space-clearing operations are performed.", 5.0, 0, 100) 17 | gen.add("controller_patience", double_t, 0, "How long the controller will wait in seconds without receiving a valid control before space-clearing operations are performed.", 5.0, 0, 100) 18 | gen.add("conservative_reset_dist", double_t, 0, "The distance away from the robot in meters at which obstacles will be cleared from the costmap when attempting to clear space in the map.", 3, 0, 50) 19 | 20 | gen.add("recovery_behavior_enabled", bool_t, 0, "Whether or not to enable the move_base recovery behaviors to attempt to clear out space.", True) 21 | # Doesnt exist 22 | gen.add("clearing_rotation_allowed", bool_t, 0, "Determines whether or not the robot will attempt an in-place rotation when attempting to clear out space.", True) 23 | gen.add("shutdown_costmaps", bool_t, 0, "Determines whether or not to shutdown the costmaps of the node when move_base is in an inactive state", False) 24 | 25 | gen.add("oscillation_timeout", double_t, 0, "How long in seconds to allow for oscillation before executing recovery behaviors.", 0.0, 0, 60) 26 | gen.add("oscillation_distance", double_t, 0, "How far in meters the robot must move to be considered not to be oscillating.", 0.5, 0, 10) 27 | 28 | gen.add("restore_defaults", bool_t, 0, "Restore to the original configuration", False) 29 | exit(gen.generate(PACKAGE, "move_base_node", "MoveBase")) 30 | -------------------------------------------------------------------------------- /navigation/move_base/planner_test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /navigation/move_base/scripts/warner.py: -------------------------------------------------------------------------------- 1 | #! /usr/bin/python 2 | #*********************************************************** 3 | #* Software License Agreement (BSD License) 4 | #* 5 | #* Copyright (c) 2009, 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 | PKG = "move_base" 38 | NAME = "warner" 39 | 40 | import rospy 41 | import sys 42 | 43 | 44 | def warner(): 45 | rospy.init_node(NAME, anonymous=True) 46 | if not rospy.has_param('~string'): 47 | rospy.logerr("You must fill in the \"~string\" parameter to run this node, otherwise we don't know what to warn about. Exiting") 48 | sys.exit(-1) 49 | 50 | period = rospy.get_param('~period', 5.0) 51 | string = rospy.get_param('~string') 52 | 53 | r = rospy.Rate(1.0 / period) 54 | while not rospy.is_shutdown(): 55 | rospy.logwarn("%s", string) 56 | r.sleep() 57 | 58 | if __name__ == '__main__': 59 | try: 60 | warner() 61 | except rospy.ROSInterruptException: 62 | pass 63 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/move_base_msgs/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package move_base_msgs 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | 29 | 1.12.4 (2015-06-03) 30 | ------------------- 31 | 32 | 1.12.3 (2015-04-30) 33 | ------------------- 34 | 35 | 1.12.2 (2015-03-31) 36 | ------------------- 37 | 38 | 1.12.1 (2015-03-14) 39 | ------------------- 40 | * Remove unused dependencies in move_base_msgs 41 | * Contributors: Daniel Stonier 42 | 43 | 1.12.0 (2015-02-04) 44 | ------------------- 45 | * update maintainer email 46 | * Contributors: Michael Ferguson 47 | 48 | 1.11.15 (2015-02-03) 49 | -------------------- 50 | 51 | 1.11.14 (2014-12-05) 52 | -------------------- 53 | 54 | 1.11.13 (2014-10-02) 55 | -------------------- 56 | 57 | 1.11.12 (2014-10-01) 58 | -------------------- 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 | 75 | 1.11.4 (2013-09-27) 76 | ------------------- 77 | * Package URL Updates 78 | -------------------------------------------------------------------------------- /navigation/move_base_msgs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(move_base_msgs) 3 | 4 | find_package(catkin REQUIRED 5 | COMPONENTS 6 | message_generation 7 | actionlib_msgs 8 | geometry_msgs 9 | ) 10 | 11 | 12 | # actions 13 | add_action_files( 14 | DIRECTORY action 15 | FILES 16 | MoveBase.action 17 | ) 18 | 19 | generate_messages( 20 | DEPENDENCIES 21 | actionlib_msgs 22 | geometry_msgs 23 | ) 24 | 25 | catkin_package( 26 | ) 27 | 28 | 29 | -------------------------------------------------------------------------------- /navigation/move_base_msgs/action/MoveBase.action: -------------------------------------------------------------------------------- 1 | geometry_msgs/PoseStamped target_pose 2 | --- 3 | --- 4 | geometry_msgs/PoseStamped base_position 5 | -------------------------------------------------------------------------------- /navigation/move_base_msgs/package.xml: -------------------------------------------------------------------------------- 1 | 2 | move_base_msgs 3 | 1.12.12 4 | 5 | 6 | Holds the action description and relevant messages for the move_base package 7 | 8 | 9 | Eitan Marder-Eppstein 10 | contradict@gmail.com 11 | David V. Lu!! 12 | Michael Ferguson 13 | BSD 14 | http://wiki.ros.org/move_base_msgs 15 | 16 | catkin 17 | 18 | actionlib_msgs 19 | geometry_msgs 20 | message_generation 21 | 22 | actionlib_msgs 23 | geometry_msgs 24 | message_runtime 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /navigation/move_slow_and_clear/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package move_slow_and_clear 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | 29 | 1.12.4 (2015-06-03) 30 | ------------------- 31 | 32 | 1.12.3 (2015-04-30) 33 | ------------------- 34 | 35 | 1.12.2 (2015-03-31) 36 | ------------------- 37 | 38 | 1.12.1 (2015-03-14) 39 | ------------------- 40 | 41 | 1.12.0 (2015-02-04) 42 | ------------------- 43 | * update maintainer email 44 | * Contributors: Michael Ferguson 45 | 46 | 1.11.15 (2015-02-03) 47 | -------------------- 48 | * Add ARCHIVE_DESTINATION for static builds 49 | * Contributors: Gary Servin 50 | 51 | 1.11.14 (2014-12-05) 52 | -------------------- 53 | 54 | 1.11.13 (2014-10-02) 55 | -------------------- 56 | 57 | 1.11.12 (2014-10-01) 58 | -------------------- 59 | 60 | 1.11.11 (2014-07-23) 61 | -------------------- 62 | * Use service call, rather than system call, to call dynamic 63 | reconfigure when decreasing move_base speed. 64 | * Contributors: Ryohei Ueda 65 | 66 | 1.11.10 (2014-06-25) 67 | -------------------- 68 | 69 | 1.11.9 (2014-06-10) 70 | ------------------- 71 | 72 | 1.11.8 (2014-05-21) 73 | ------------------- 74 | 75 | 1.11.7 (2014-05-21) 76 | ------------------- 77 | * update build to find eigen using cmake_modules 78 | * Contributors: Michael Ferguson 79 | 80 | 1.11.4 (2013-09-27) 81 | ------------------- 82 | * Package URL Updates 83 | -------------------------------------------------------------------------------- /navigation/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 | roscpp 8 | nav_core 9 | costmap_2d 10 | actionlib_msgs 11 | std_msgs 12 | pluginlib 13 | ) 14 | 15 | 16 | find_package(Eigen REQUIRED) 17 | find_package(PCL REQUIRED) 18 | find_package(Boost REQUIRED COMPONENTS thread) 19 | include_directories( 20 | include 21 | ${catkin_INCLUDE_DIRS} 22 | SYSTEM 23 | ${EIGEN_INCLUDE_DIRS} 24 | ${PCL_INCLUDE_DIRS} 25 | ) 26 | add_definitions(${EIGEN_DEFINITIONS}) 27 | 28 | catkin_package( 29 | INCLUDE_DIRS include 30 | LIBRARIES move_slow_and_clear 31 | CATKIN_DEPENDS 32 | roscpp 33 | pluginlib 34 | nav_core 35 | ) 36 | 37 | add_library(${PROJECT_NAME} src/move_slow_and_clear.cpp) 38 | add_dependencies(${PROJECT_NAME} geometry_msgs_gencpp) 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 | -------------------------------------------------------------------------------- /navigation/move_slow_and_clear/package.xml: -------------------------------------------------------------------------------- 1 | 2 | move_slow_and_clear 3 | 1.12.12 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 | BSD 14 | http://wiki.ros.org/move_slow_and_clear 15 | 16 | catkin 17 | 18 | cmake_modules 19 | roscpp 20 | nav_core 21 | costmap_2d 22 | geometry_msgs 23 | pluginlib 24 | pluginlib 25 | 26 | roscpp 27 | nav_core 28 | costmap_2d 29 | geometry_msgs 30 | pluginlib 31 | pluginlib 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/nav_core/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package nav_core 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | 29 | 1.12.4 (2015-06-03) 30 | ------------------- 31 | 32 | 1.12.3 (2015-04-30) 33 | ------------------- 34 | 35 | 1.12.2 (2015-03-31) 36 | ------------------- 37 | 38 | 1.12.1 (2015-03-14) 39 | ------------------- 40 | 41 | 1.12.0 (2015-02-04) 42 | ------------------- 43 | * update maintainer email 44 | * Contributors: Michael Ferguson 45 | 46 | 1.11.15 (2015-02-03) 47 | -------------------- 48 | 49 | 1.11.14 (2014-12-05) 50 | -------------------- 51 | 52 | 1.11.13 (2014-10-02) 53 | -------------------- 54 | 55 | 1.11.12 (2014-10-01) 56 | -------------------- 57 | 58 | 1.11.11 (2014-07-23) 59 | -------------------- 60 | 61 | 1.11.10 (2014-06-25) 62 | -------------------- 63 | 64 | 1.11.9 (2014-06-10) 65 | ------------------- 66 | 67 | 1.11.8 (2014-05-21) 68 | ------------------- 69 | 70 | 1.11.7 (2014-05-21) 71 | ------------------- 72 | 73 | 1.11.4 (2013-09-27) 74 | ------------------- 75 | * Package URL Updates 76 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/nav_core/package.xml: -------------------------------------------------------------------------------- 1 | 2 | nav_core 3 | 1.12.12 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 | BSD 14 | http://wiki.ros.org/nav_core 15 | 16 | catkin 17 | 18 | std_msgs 19 | geometry_msgs 20 | costmap_2d 21 | tf 22 | 23 | std_msgs 24 | geometry_msgs 25 | costmap_2d 26 | tf 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /navigation/navfn/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package navfn 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | 29 | 1.12.4 (2015-06-03) 30 | ------------------- 31 | * Fix for `#337 `_ 32 | * Contributors: David V. Lu!! 33 | 34 | 1.12.3 (2015-04-30) 35 | ------------------- 36 | 37 | 1.12.2 (2015-03-31) 38 | ------------------- 39 | 40 | 1.12.1 (2015-03-14) 41 | ------------------- 42 | 43 | 1.12.0 (2015-02-04) 44 | ------------------- 45 | * update maintainer email 46 | * Contributors: Michael Ferguson 47 | 48 | 1.11.15 (2015-02-03) 49 | -------------------- 50 | * Add ARCHIVE_DESTINATION for static builds 51 | * Contributors: Gary Servin 52 | 53 | 1.11.14 (2014-12-05) 54 | -------------------- 55 | 56 | 1.11.13 (2014-10-02) 57 | -------------------- 58 | 59 | 1.11.12 (2014-10-01) 60 | -------------------- 61 | 62 | 1.11.11 (2014-07-23) 63 | -------------------- 64 | * removes unused param planner_costmap_publish_frequency 65 | * Contributors: Enrique Fernández Perdomo 66 | 67 | 1.11.10 (2014-06-25) 68 | -------------------- 69 | * Remove unnecessary colons 70 | * Contributors: David Lu!! 71 | 72 | 1.11.9 (2014-06-10) 73 | ------------------- 74 | * uses ::hypot(x, y) instead of sqrt(x*x, y*y) 75 | * Contributors: Enrique Fernández Perdomo 76 | 77 | 1.11.8 (2014-05-21) 78 | ------------------- 79 | 80 | 1.11.7 (2014-05-21) 81 | ------------------- 82 | * update build to find eigen using cmake_modules 83 | * Contributors: Michael Ferguson 84 | 85 | 1.11.5 (2014-01-30) 86 | ------------------- 87 | * navfn: fix parallel build error from missing dep 88 | * fixed header installation directory 89 | * check for CATKIN_ENABLE_TESTING 90 | * Change maintainer from Hersh to Lu 91 | 92 | 1.11.4 (2013-09-27) 93 | ------------------- 94 | * Package URL Updates 95 | * fixed `#103 `_, navfn_node not installed 96 | * Potential missing dependency 97 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/navfn/bgp_plugin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | A implementation of a grid based planner using Dijkstra 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/navfn/package.xml: -------------------------------------------------------------------------------- 1 | 2 | navfn 3 | 1.12.12 4 | 5 | 6 | navfn provides a fast interpolated navigation function that can be used to create plans for 7 | a mobile base. The planner assumes a circular robot and operates on a costmap to find a 8 | minimum cost plan from a start point to an end point in a grid. The navigation function is 9 | computed with Dijkstra's algorithm, but support for an A* heuristic may also be added in the 10 | near future. navfn also provides a ROS wrapper for the navfn planner that adheres to the 11 | nav_core::BaseGlobalPlanner interface specified in nav_core. 12 | 13 | 14 | Kurt Konolige 15 | Eitan Marder-Eppstein 16 | contradict@gmail.com 17 | David V. Lu!! 18 | Michael Ferguson 19 | BSD 20 | http://wiki.ros.org/navfn 21 | 22 | catkin 23 | 24 | cmake_modules 25 | costmap_2d 26 | geometry_msgs 27 | nav_core 28 | nav_msgs 29 | netpbm 30 | pcl_conversions 31 | pcl_ros 32 | pluginlib 33 | rosconsole 34 | roscpp 35 | tf 36 | visualization_msgs 37 | 38 | costmap_2d 39 | geometry_msgs 40 | nav_core 41 | nav_msgs 42 | pcl_conversions 43 | pcl_ros 44 | pluginlib 45 | rosconsole 46 | roscpp 47 | tf 48 | visualization_msgs 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/navfn/srv/SetCostmap.srv: -------------------------------------------------------------------------------- 1 | uint8[] costs 2 | uint16 height 3 | uint16 width 4 | --- -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/navfn/test/willow_costmap.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zhouge94/Cute_Six_ROS_Balance/a9a1608592042df036d0bfefe47a8c9cb3f68f63/navigation/navfn/test/willow_costmap.pgm -------------------------------------------------------------------------------- /navigation/navigation/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package navigation 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | 29 | 1.12.4 (2015-06-03) 30 | ------------------- 31 | 32 | 1.12.3 (2015-04-30) 33 | ------------------- 34 | 35 | 1.12.2 (2015-03-31) 36 | ------------------- 37 | 38 | 1.12.1 (2015-03-14) 39 | ------------------- 40 | 41 | 1.12.0 (2015-02-04) 42 | ------------------- 43 | * update maintainer email 44 | * Contributors: Michael Ferguson 45 | 46 | 1.11.15 (2015-02-03) 47 | -------------------- 48 | 49 | 1.11.14 (2014-12-05) 50 | -------------------- 51 | * add global planner run depend in meta package. 52 | * Contributors: Jihoon Lee 53 | 54 | 1.11.13 (2014-10-02) 55 | -------------------- 56 | 57 | 1.11.12 (2014-10-01) 58 | -------------------- 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 | 75 | 1.11.4 (2013-09-27) 76 | ------------------- 77 | * Package URL Updates 78 | -------------------------------------------------------------------------------- /navigation/navigation/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(navigation) 3 | find_package(catkin REQUIRED) 4 | catkin_metapackage() 5 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/navigation/package.xml: -------------------------------------------------------------------------------- 1 | 2 | navigation 3 | 1.12.12 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 | contradict@gmail.com 12 | Eitan Marder-Eppstein 13 | BSD,LGPL,LGPL (amcl) 14 | http://wiki.ros.org/navigation 15 | 16 | catkin 17 | 18 | amcl 19 | carrot_planner 20 | dwa_local_planner 21 | move_base 22 | nav_core 23 | robot_pose_ekf 24 | base_local_planner 25 | clear_costmap_recovery 26 | fake_localization 27 | global_planner 28 | move_base_msgs 29 | navfn 30 | rotate_recovery 31 | costmap_2d 32 | map_server 33 | move_slow_and_clear 34 | voxel_grid 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /navigation/rotate_recovery/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package rotate_recovery 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | 29 | 1.12.4 (2015-06-03) 30 | ------------------- 31 | 32 | 1.12.3 (2015-04-30) 33 | ------------------- 34 | 35 | 1.12.2 (2015-03-31) 36 | ------------------- 37 | 38 | 1.12.1 (2015-03-14) 39 | ------------------- 40 | 41 | 1.12.0 (2015-02-04) 42 | ------------------- 43 | * update maintainer email 44 | * Contributors: Michael Ferguson 45 | 46 | 1.11.15 (2015-02-03) 47 | -------------------- 48 | * Add ARCHIVE_DESTINATION for static builds 49 | * Contributors: Gary Servin 50 | 51 | 1.11.14 (2014-12-05) 52 | -------------------- 53 | 54 | 1.11.13 (2014-10-02) 55 | -------------------- 56 | 57 | 1.11.12 (2014-10-01) 58 | -------------------- 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.4 (2013-09-27) 78 | ------------------- 79 | * Package URL Updates 80 | -------------------------------------------------------------------------------- /navigation/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(Eigen REQUIRED) 16 | include_directories( 17 | include 18 | ${catkin_INCLUDE_DIRS} 19 | ${EIGEN_INCLUDE_DIRS} 20 | ) 21 | add_definitions(${EIGEN_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 | target_link_libraries(rotate_recovery ${catkin_LIBRARIES}) 33 | 34 | install(TARGETS rotate_recovery 35 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 36 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 37 | ) 38 | 39 | install(FILES rotate_plugin.xml 40 | DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 41 | ) 42 | 43 | -------------------------------------------------------------------------------- /navigation/rotate_recovery/package.xml: -------------------------------------------------------------------------------- 1 | 2 | rotate_recovery 3 | 1.12.12 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 | BSD 14 | http://wiki.ros.org/rotate_recovery 15 | 16 | catkin 17 | 18 | cmake_modules 19 | roscpp 20 | tf 21 | costmap_2d 22 | nav_core 23 | pluginlib 24 | eigen 25 | base_local_planner 26 | 27 | roscpp 28 | tf 29 | costmap_2d 30 | nav_core 31 | pluginlib 32 | eigen 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /navigation/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 | -------------------------------------------------------------------------------- /navigation/voxel_grid/CHANGELOG.rst: -------------------------------------------------------------------------------- 1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 2 | Changelog for package voxel_grid 3 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 4 | 5 | 1.12.12 (2016-06-24) 6 | -------------------- 7 | 8 | 1.12.11 (2016-06-08) 9 | -------------------- 10 | 11 | 1.12.10 (2016-05-27) 12 | -------------------- 13 | 14 | 1.12.9 (2016-05-26) 15 | ------------------- 16 | 17 | 1.12.8 (2016-05-16) 18 | ------------------- 19 | 20 | 1.12.7 (2016-01-05) 21 | ------------------- 22 | 23 | 1.12.6 (2016-01-02) 24 | ------------------- 25 | 26 | 1.12.5 (2015-10-29) 27 | ------------------- 28 | 29 | 1.12.4 (2015-06-03) 30 | ------------------- 31 | 32 | 1.12.3 (2015-04-30) 33 | ------------------- 34 | 35 | 1.12.2 (2015-03-31) 36 | ------------------- 37 | 38 | 1.12.1 (2015-03-14) 39 | ------------------- 40 | 41 | 1.12.0 (2015-02-04) 42 | ------------------- 43 | * update maintainer email 44 | * Contributors: Michael Ferguson 45 | 46 | 1.11.15 (2015-02-03) 47 | -------------------- 48 | * Add ARCHIVE_DESTINATION for static builds 49 | * Contributors: Gary Servin 50 | 51 | 1.11.14 (2014-12-05) 52 | -------------------- 53 | * remove old test code 54 | * fixup voxel_grid.h formatting (whitespace changes ONLY) 55 | * Contributors: Michael Ferguson 56 | 57 | 1.11.13 (2014-10-02) 58 | -------------------- 59 | 60 | 1.11.12 (2014-10-01) 61 | -------------------- 62 | 63 | 1.11.11 (2014-07-23) 64 | -------------------- 65 | 66 | 1.11.10 (2014-06-25) 67 | -------------------- 68 | 69 | 1.11.9 (2014-06-10) 70 | ------------------- 71 | 72 | 1.11.8 (2014-05-21) 73 | ------------------- 74 | 75 | 1.11.7 (2014-05-21) 76 | ------------------- 77 | * uses %u instead of %d for unsigned int 78 | * Contributors: enriquefernandez 79 | 80 | 1.11.5 (2014-01-30) 81 | ------------------- 82 | * Misc. other commits from Groovy Branch 83 | * check for CATKIN_ENABLE_TESTING 84 | * Change maintainer from Hersh to Lu 85 | 86 | 1.11.4 (2013-09-27) 87 | ------------------- 88 | * Package URL Updates 89 | -------------------------------------------------------------------------------- /navigation/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 | target_link_libraries(voxel_grid ${catkin_LIBRARIES}) 22 | 23 | install(TARGETS voxel_grid 24 | ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 25 | LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 26 | ) 27 | 28 | install(DIRECTORY include/${PROJECT_NAME}/ 29 | DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 30 | ) 31 | 32 | if(CATKIN_ENABLE_TESTING) 33 | catkin_add_gtest(voxel_grid_tests test/voxel_grid_tests.cpp) 34 | target_link_libraries(voxel_grid_tests 35 | voxel_grid 36 | ${catkin_LIBRARIES} 37 | ) 38 | endif() 39 | -------------------------------------------------------------------------------- /navigation/voxel_grid/package.xml: -------------------------------------------------------------------------------- 1 | 2 | voxel_grid 3 | 1.12.12 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 | BSD 14 | http://wiki.ros.org/voxel_grid 15 | 16 | catkin 17 | 18 | roscpp 19 | 20 | roscpp 21 | 22 | -------------------------------------------------------------------------------- /xf_voice/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(xf_voice) 3 | find_package(catkin REQUIRED COMPONENTS 4 | roscpp 5 | rospy 6 | std_msgs 7 | ) 8 | catkin_package( 9 | # INCLUDE_DIRS include 10 | # LIBRARIES xf_voice 11 | # CATKIN_DEPENDS roscpp rospy std_msgs 12 | # DEPENDS system_lib 13 | ) 14 | 15 | include_directories(include ${catkin_INCLUDE_DIRS}) 16 | 17 | add_executable(xf_tts src/xf_tts.cpp) 18 | target_link_libraries(xf_tts ${catkin_LIBRARIES} -lmsc -ldl -lpthread -lm -lrt) 19 | add_dependencies(xf_tts xf_voice_generate_messages_cpp) 20 | 21 | add_executable(xf_asr src/xf_asr.cpp) 22 | target_link_libraries(xf_asr ${catkin_LIBRARIES} /Robot/voice/lib/libmsc.so -ldl -lpthread -lm -lrt -lasound) 23 | add_dependencies(xf_asr xf_voice_generate_messages_cpp) 24 | 25 | add_executable(wakeup src/wakeup.cpp) 26 | target_link_libraries(wakeup ${catkin_LIBRARIES} -lmraa) 27 | add_dependencies(wakeup xf_voice_generate_messages_cpp) 28 | -------------------------------------------------------------------------------- /xf_voice/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | xf_voice 4 | 0.0.0 5 | The xf_voice package 6 | 7 | 8 | 9 | 10 | robot-6 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 | catkin 43 | roscpp 44 | rospy 45 | std_msgs 46 | roscpp 47 | rospy 48 | std_msgs 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /xf_voice/src/wakeup.cpp: -------------------------------------------------------------------------------- 1 | #include"mraa.hpp" 2 | #include"iostream" 3 | #include"ros/ros.h" 4 | #include"std_msgs/String.h" 5 | #define GETIT system("echo loadfile /Robot/voice/wav/Begin.wav>/Robot/cmd/Mplayer_cmd") 6 | mraa::Uart * dev; 7 | void Init_uart(void) 8 | { 9 | try { 10 | dev = new mraa::Uart("/dev/ttyS4"); 11 | } catch (std::exception& e) { 12 | std::cout << "Error while setting up raw UART, do you have a uart?" << std::endl; 13 | std::terminate(); 14 | } 15 | if (dev->setBaudRate(115200) != mraa::SUCCESS) { 16 | std::cout << "Error setting parity on UART" << std::endl; 17 | } 18 | if (dev->setMode(8, mraa::UART_PARITY_NONE, 1) != mraa::SUCCESS) { 19 | std::cout << "Error setting parity on UART" << std::endl; 20 | } if (dev->setFlowcontrol(false, false) != mraa::SUCCESS) { 21 | std::cout << "Error setting flow control UART" << std::endl; 22 | } 23 | dev->writeStr("RESET\n"); 24 | } 25 | int main(int argc,char** argv) 26 | { 27 | int i; 28 | std_msgs::String msg; 29 | ros::init(argc,argv,"wakeup"); 30 | ros::NodeHandle n; 31 | ros::Rate loop(10); 32 | ros::Publisher pub=n.advertise("xfwakeup",1000); 33 | Init_uart(); 34 | GETIT; 35 | std::cout<<"uart Init OK"<dataAvailable()) 39 | { 40 | std::string s; 41 | while(dev->dataAvailable()) 42 | { 43 | s+=dev->readStr(1); 44 | } 45 | i=s.find("WAKE UP!angle:"); 46 | if(i!=std::string::npos) 47 | { 48 | std::stringstream ss; 49 | GETIT; 50 | ss <"<writeStr("RESET\n"); 56 | } 57 | } 58 | ros::spinOnce(); 59 | loop.sleep(); 60 | } 61 | 62 | } 63 | --------------------------------------------------------------------------------