Implementing Full Coverage Path Planning on Qualcomm® Robotics RB5 with TurtleBot3
This project focuses on the seamless integration of full coverage path planning (FCPP) packages with the TurtleBot3 robotic platform, leveraging the computational power of the Qualcomm Robotics RB5 platform. The goal is to enable autonomous navigation that ensures comprehensive area coverage, making it ideal for tasks such as environment exploration, cleaning, and inspection.
Objective
- Environment Exploration: Navigate and map unknown areas autonomously.
- Cleaning Robots: Ensure complete coverage of a floor or space, similar to robotic vacuum cleaners.
- Inspection Tasks: Conduct thorough inspections of environments, ensuring no area is missed.
- Agricultural Applications: Cover entire fields for tasks like crop monitoring or pesticide application.
- Security Patrols: Automatically patrol and monitor large areas without leaving any gaps.
| Equipment | Description |
|---|---|
| Qualcomm Robotics RB5 | Qualcomm Robotics RB5 Development Kit |
| Power adapter |
12 V with 2500 mA required by the 96Boards specification |
| USB to Micro USB cable USB to USB Type C cable |
For serial console interface, to view logs For connecting the USB3.0 Type C port to the board and flashing images, adb and fastboot |
| Turtlebot Burger | Off the shelf robot from Robotis |
Source Code: GitHub Link for source of Edge AI security
https://github.com/globaledgesoft/Full-Coverage-Path-Planning-on-TurtleBot3-Qualcomm-RB5
Qualcomm Robotics RB5 Development Kit bring up
https://docs.qualcomm.com/bundle/publicresource/topics/80-88500-6/Getting-started.html?product=1601111740013082
Introduction:
This project focuses on the seamless integration of full coverage path planning (FCPP) packages with the TurtleBot3 robotic platform, leveraging the computational power of the Qualcomm Robotics RB5 platform. The goal is to enable autonomous navigation that ensures comprehensive area coverage, making it ideal for tasks such as environment exploration, cleaning, and inspection.
Prerequisites:
- Install Python 3 on Qualcomm Robotics RB5 and Host PC ( Ubuntu 18.04 )
- Install ROS Melodic on Qualcomm Robotics RB5 and host PC
- Install TurtleBot3 Packages on host PC
Set up LIDAR :
- Connect LIDAR Scanner to Qualcomm Robotics RB5 board using microUSB cable and make sure /dev/ttyUSB0 port is accessible
Add below lines in ~/.bashrc of Qualcomm Robotics RB5
# APPEND AT THE END OF ~/.bashrc
export ROS_MASTER_URI=http://<HOST_PC_IP>:11311
export ROS_HOSTNAME=<RB5_IP>
export TURTLEBOT3_MODEL=burger
source /opt/ros/melodic/setup.bash
Add below lines in ~/.bashrc of Host PC
# APPEND AT THE END OF ~/.bashrc
export ROS_MASTER_URI=http://<HOST_PC_IP>:11311
export ROS_HOSTNAME=< HOST_PC_IP >
export TURTLEBOT3_MODEL=burger
source /opt/ros/melodic/setup.bashSet up workspace in Host PC
To prepare your ROS workspace on the host machine, follow the steps in this ROS Tutorial. Then create a new directory and clone the source code and set necessary environment variables.
$ mkdir -p ~/FCPP/src
$ cd ~/FCPP/src Copy the packages in the assets folder of the source code to the ~/FCPP/src directory.
$ cp -r assets/TURTLEBOT3_FULL_COVERAGE_PATH_PLANNER ~/FCPP/src/Download full_coverage_path_planner and tracking_pid packages from git and place them in ~/FCPP/src
$ cd ~/FCPP/src
$ git clone https://github.com/nobleo/full_coverage_path_planner
$ git clone https://github.com/nobleo/tracking_pid.gitInstall all the dependencies through rosdep,
$ cd ~/FCPP
$ rosdep install --from-paths src --ignore-src --rosdistro melodic -yr Source ROS 1 and build,
$ cd ~/FCPP
$ catkin_make
$ source ~/FCPP/devel/setup.bashRun the command given below to update the ~/.bashrc
$ echo source ~/FCPP/devel/setup.bash >> ~/.bashrc Execution instructions:
- On Host PC, source ROS melodic and run roscore
$ roscore- On Qualcomm Robotics RB5 shell, launch bring up command
$ roslaunch turtlebot3_bringup turtlebot3_robot.launch- On host run robot_state_publisher node
$ roslaunch robot_gazebo test.launch- Launching Full Coverage Path Planning for TurtleBot3 on Host System
$ roslaunch robot_navigation rb5_FCPP.launch 