An open API service indexing awesome lists of open source software.

https://github.com/toshikinakamura0412/recovery_behavior_ros

The ROS package for recovery behavior of mobile robots
https://github.com/toshikinakamura0412/recovery_behavior_ros

cpp footprint mit-license navigation planner recovery robotics ros ros-noetic

Last synced: about 2 months ago
JSON representation

The ROS package for recovery behavior of mobile robots

Awesome Lists containing this project

README

          

# recovery_behavior_ros

![Build Status](https://github.com/ToshikiNakamura0412/recovery_behavior_ros/workflows/build/badge.svg)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

The ROS package for recovery behavior of mobile robots



## Environment
- Ubuntu 20.04
- ROS Noetic

## Dependencies
- [amr_navigation_utils_ros](https://github.com/ToshikiNakamura0412/amr_navigation_utils_ros.git)

## 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](images/node_io.png)

## Nodes
### recovery_behavior
#### Published Topics
- /recovery/cmd_vel (`geometry_msgs/Twist`)
- Command velocity of recovery mode
- ~\/footprint (`geometry_msgs/PolygonStamped`)
- Footprint of the robot

#### Subscribed Topics
- /cloud (`sensor_msgs/PointCloud2`)
- Input pointcloud

#### Service Topics
- ~\/trigger
- Trigger of recovery behavior

#### Parameters
- Recovery behavior
- ~\/hz (int, default: `10`):

The rate of cmd_vel publishing
- ~\/sim_time_samples (int, default: `10`):

The number of samples to use when simulating trajectories
- ~\/vel_samples (int, default: `3`):

The number of samples to use when searching for the best linear and rotational velocities
- ~\/move_time (float, default: `2.0` [s]):

The amount of time to backward simulate trajectories in the future
- ~\/min_vel_x (float, default: `-0.2` [m/s]):

The minimum x velocity of the robot
- ~\/max_vel_theta (float, default: `0.4` [rad/s]):

The maximum rotational velocity of the robot
- [Footprint](https://github.com/ToshikiNakamura0412/amr_navigation_utils_ros#parameters)