Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/KamalanathanN/abot
ABot is a differential drive mobile robot based on Robot Operating System (ROS). Its tested on Ubuntu 18.04 and 20.04 with ROS melodic and noetic
https://github.com/KamalanathanN/abot
navigation ros
Last synced: 2 months ago
JSON representation
ABot is a differential drive mobile robot based on Robot Operating System (ROS). Its tested on Ubuntu 18.04 and 20.04 with ROS melodic and noetic
- Host: GitHub
- URL: https://github.com/KamalanathanN/abot
- Owner: KamalanathanN
- Created: 2021-01-04T14:52:45.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-11-15T09:04:55.000Z (over 1 year ago)
- Last Synced: 2024-01-21T04:58:32.821Z (5 months ago)
- Topics: navigation, ros
- Language: CMake
- Homepage:
- Size: 141 MB
- Stars: 15
- Watchers: 3
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Lists
- awesome-mobile-robotics - ABot
README
# ABot
ABot is a differential drive mobile robot based on Robot Operating System (ROS). Its tested on Ubuntu 18.04 with ROS Melodic and Ubuntu 20.04 with ROS Noetic
### Capabilities:
- [x] Manual teleop control.
- [x] SLAM with Gmapping using teleop and explore_lite.
- [x] Goal Point Navigation using dwa_local_planner and teb_local_planner.
- [x] Coverage Planning with Boustrophedon Decomposition.
- [x] Configured Behavior Tree
- [x] Added Intel Realsense D435
- [x] RTAB-Map
- [ ] Add GPS
- [ ] Add manipulator arm## Use ABot
To run the ABot simulation in Gazebo, clone the package in your catkin workspace, and use the launch file below.
```bash
cd ~/catkin_ws/src
git clone https://github.com/KamalanathanN/abot.git
cd ~/catkin_ws
catkin_make
source devel/setup.bash
```## Launch ABot in Gazebo
```bash
roslaunch abot_gazebo robot_house_gazebo.launch
```## ABot Simulation Model
## ABot Gmapping using teleop
```bash
roslaunch abot_slam abot_gmapping.launch
roslaunch abot_teleop abot_teleop_key.launch
```## ABot Gmapping with [explore_lite](http://wiki.ros.org/explore_lite)
```
sudo apt install ros-noetic-explore-lite
``````bash
roslaunch abot_slam abot_gmapping.launch
roslaunch abot_navigation move_base.launch
roslaunch explore_lite explore.launch
```## ABot Navigation in Gazebo and Rviz
By default navigation uses ```dwa_local_planner``` with argument ```TEB:=true``` loads ```teb_local_planner```.Read if using teb_local_planner
The default teb_local_planner pkg did not show goal reached success.
Due to this multi goal sequence was not possible.
Temporary fix is to remove the installed teb_local_planner and
clone this modified repo : https://github.com/KamalanathanN/teb_local_planner inside the workspace.```bash
roslaunch abot_navigation abot_navigation.launch
```## ABot Path Coverage implementation with Boustrophedon Decomposition
```bash
roslaunch abot_path_coverage abot_path_coverage.launch
```## Abot Behavior Tree Demo
Below is a simple goal points looping behaviour tree with an interrupt action to go to charge port location.
- In future, interrupt action can be used by battery monitoring node to perform auto charge behavior.
- Also planning to include camera feedback actions like object detection for other exiting behaviors :)### Runtime Behahivor Tree monitoring with Groot
https://user-images.githubusercontent.com/31615486/152803981-b7dd6d3e-62fd-4a26-9e99-6f240f8b9eb8.mp4
Run the below commands in seperate terminals after launching ```robot_house_gazebo.launch``` and ```abot_navigation.launch```
```bash
rosrun groot Groot # select Monitor option and Startroslaunch abot_behavior_tree goal_points_looping.launch
```
Notice the STATE of each node in tree gets highlighted with Cyan(IDLE) Yellow(RUNNING) Green(SUCCESS) Red(FAILURE)### To provide interrput
```bash
rostopic pub /interrupt_event std_msgs/String "data: 'Charge_port'"
```## ABot RTAB-Map
- Install and setup RTAB-Map from this [link](https://github.com/introlab/rtabmap/wiki/Installation)
- Clone the realsense gazebo plugin to your workspace's ```/src``` and ```catkin_make```
```bash
git clone https://github.com/pal-robotics/realsense_gazebo_plugin
```
Run the below commands in seperate terminals after launching ```robot_house_gazebo.launch```
### Mapping
```bash
roslaunch abot_rtabmap rtab_minimal.launch args:="--delete_db_on_start"
```
- Make sure to give proper save path for ```rtabmap.db``` inside launch file.
- Make sure your world is not monotonous, have good textural variances in walls and have variety of objects.
- Use ```teleop_twist_keyboard``` or ```explore_lite``` for map creation.
- To save the map just close the terminal running the mapping node : ```ctrl+c```### Navigation
First load the ```rtabmap.db``` in localization mode:
```bash
roslaunch abot_rtabmap rtab_minimal.launch localization:=true
```
Now launch the navigation with desired local planner:
```bash
roslaunch abot_navigation abot_navigation_rtabmap.launch TEB:=true
```## References
[path_coverage_ros](https://gitlab.com/Humpelstilzchen/path_coverage_ros/)
[Groot with ROS](https://medium.com/teamarimac/groot-with-ros-a8f7855f8e35)
## Contributions
Your contributions are most welcomed.