/recovery_behavior_ros

The ROS package for recovery behavior of mobile robots

Primary LanguageC++MIT LicenseMIT

recovery_behavior_ros

Build Status License: MIT

The ROS package for recovery behavior of mobile robots

Environment

  • Ubuntu 20.04
  • ROS Noetic

Dependencies

Install and Build

# clone repository
cd /path/to/your/catkin_ws/src
git clone https://github.com/ToshikiNakamura0412/recovery_behavior_ros.git
git clone https://github.com/ToshikiNakamura0412/amr_navigation_utils_ros.git

# build
cd /path/to/your/catkin_ws
rosdep install -riy --from-paths src --rosdistro noetic       # Install dependencies
catkin build recovery_behavior_ros -DCMAKE_BUILD_TYPE=Release # Release build is recommended

How to use

roslaunch recovery_behavior_ros recovery_behavior.launch

Running the demo

# clone repository
cd /path/to/your/catkin_ws/src
git clone https://github.com/ToshikiNakamura0412/emcl_ros.git
git clone https://github.com/ToshikiNakamura0412/scan_to_pcl_ros.git
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git

# build
cd /path/to/your/catkin_ws
rosdep install -riy --from-paths src --rosdistro noetic
catkin build -DCMAKE_BUILD_TYPE=Release

# run demo
## terminal 1
export TURTLEBOT3_MODEL=burger
roslaunch recovery_behavior_ros test.launch
## terminal 2
rosservice call /recovery_behavior/trigger "{}"

Node I/O

Node I/O

Nodes

recovery_behavior

Published Topics

  • /recovery/cmd_vel (geometry_msgs/Twist)
    • Command velocity of recovery mode
  • ~<name>/footprint (geometry_msgs/PolygonStamped)
    • Footprint of the robot

Subscribed Topics

  • /cloud (sensor_msgs/PointCloud2)
    • Input pointcloud

Service Topics

  • ~<name>/trigger
    • Trigger of recovery behavior

Parameters

  • Recovery behavior
    • ~<name>/hz (int, default: 10):
      The rate of cmd_vel publishing
    • ~<name>/sim_time_samples (int, default: 10):
      The number of samples to use when simulating trajectories
    • ~<name>/vel_samples (int, default: 3):
      The number of samples to use when searching for the best linear and rotational velocities
    • ~<name>/move_time (float, default: 2.0 [s]):
      The amount of time to backward simulate trajectories in the future
    • ~<name>/min_vel_x (float, default: -0.2 [m/s]):
      The minimum x velocity of the robot
    • ~<name>/max_vel_theta (float, default: 0.4 [rad/s]):
      The maximum rotational velocity of the robot
  • Footprint