Overview of Patrolling Trash-Collecting Robot
The Patrolling Trash-Collecting Robot project brings together a mobile robotic platform, a manipulator arm, and intelligent perception and navigation systems to autonomously patrol an environment and collect small trash objects. This system is built on ROS2 and supports both simulation in Ignition Gazebo and deployment on a real TurtleBot4-based hardware platform.
Overview
This project explores robotic autonomy through integrated subsystems for navigation, perception, and manipulation. The robot autonomously navigates a mapped space, detects trash using computer vision, approaches the object, and uses a robotic arm to pick and store it.
The full system has been implemented both in simulation and on a real robot, offering a complete pipeline from software development to real-world deployment.
Note
We provide two branches for different use cases: sim and real.
`sim` branch: Implements the system in a simulated environment using Ignition Gazebo, allowing testing and development without hardware.
`real` branch: Deploys the same architecture on a physical TurtleBot4 platform, integrating real sensors and actuators.
Software Environment
The project was developed and tested with the following software environment:
Ubuntu: 22.04
ROS2: Humble
Ignition Gazebo: 6.16.0
Ignition Services: 11.4.1
Python: 3.10.12
C++: 11.4.0
Eigen3: 3.4.0
Hardware Used
The real-robot system is built using the following hardware:
Mobile Base: TurtleBot4 (iRobot Create3 chassis)
Manipulator: OpenManipulator-X (by Robotis)
Sensors: - Lidar (2D): Integrated with TurtleBot4 - RGBD Camera: Intel RealSense D435 (or equivalent)
Onboard Computer: Raspberry Pi 4 (provided with TurtleBot4), or external PC via Wi-Fi
Power Supply: Battery integrated into TurtleBot4
Simulation Environment
For development and testing, the following simulation tools and packages are used:
Ignition Gazebo: Full 3D physics simulation with robot model and a custom room/lab world.
RViz2: 3D visualization of the robot’s perception and planning.
MoveIt2: Motion planning for the OpenManipulator-X in simulation.
Nav2: Autonomous navigation stack.
Custom URDFs: Combining TurtleBot4, sensors, and OpenManipulator into a single model.
Installation Instructions
Follow the steps below to install required dependencies and set up the workspace for this project.
Install ROS 2 Humble on Ubuntu 22.04 following the official guide.
Install Gazebo Ignition:
sudo apt update && sudo apt install -y \
ros-humble-ros-ign-bridge \
ros-humble-ros-ign-gazebo \
ros-humble-ros-ign-image \
ros-humble-ros-ign-gazebo-demos
Install MoveIt2 and related dependencies:
sudo apt install ros-humble-moveit* \
ros-humble-joint-state-publisher-gui \
ros-humble-rqt* \
ros-humble-xacro
Common Setup
Workspace Initialization
After the environment installing in the Installation Instructions, create a workspace and clone the repository:
mkdir -p ~/rsp_ws/src && cd ~/rsp_ws/src
git clone https://github.com/jhu-rsp/rsp-project-team-emrs
Then goto the directory containing src folder and run rosdep
cd ~/rsp_ws
rosdep install --from-paths src --ignore-src -r -y
source /opt/ros/humble/setup.bash
sudo rosdep init && rosdep update
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install && source install/setup.bash
Branch Selection
cd ~/rsp_ws/src/rsp-project-team-emrs
git checkout sim # for simulation
git checkout real # for hardware deployment
All source packages and full launch configurations are maintained in the [rsp-project-team-emrs](https://github.com/jhu-rsp/rsp-project-team-emrs) repository under the sim and real branches respectively. Refer to individual chapters (Mapping, Navigation, Manipulation) for deeper details on each subsystem.
Running Examples
In the following sections, we provide examples of how to run the system in both simulation and real robot environments. The commands are categorized into different functionalities such as navigation, mapping, manipulation, and more. A complete demo, which contains two steps, for this project are listed in the following:
Patrol: The robot autonomously patrols a designated area, if it detects target, it will stop and wait for the next step.
Pick And Place: The robot will pick the object and place it on its body.
Running the System
In the next sections, we list all the executive packages and commands to run the system. The commands are categorized into simulation and real robot execution.
Executive |
Function |
|---|---|
Common Setup |
Clone the project and set the workspace |
Robot Description |
Unified URDF model combining TurtleBot4 base, OpenManipulator-X, and camera |
Gazebo Simulation |
Physics-based simulation in custom apartment and Wyman lab |
Hand-Eye Calibration |
Hand-Eye Calibration done same as in ASBR |
SLAM |
Real-time mapping and localization |
Patrol |
Executes patrol routine |
Pick and Place |
MoveIt2-based pick-and-place functionality for trash collection |