Sweepy Bot is an autonomous mobile robot designed for sweeping tasks. This README provides instructions on how to set up and run the robot stack, SLAM, navigation, joystick control, and controlling the brushes through relay control.
Ensure you have the following installed:
- ROS 2 (Exclusively tested on Humble)
- Relevant ROS 2 packages and dependencies
Clone the repository and navigate to the workspace:
git clone https://github.com/AlexanderRoller/sweepy_ws.git
cd sweepy_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build
source install/setup.bashLaunch the robot stack, which includes drivers, sensor nodes, and relay control:
ros2 launch sweeper_bot sweepy_launch.pyTo perform simultaneous localization and mapping (SLAM), use the following command:
ros2 launch sweeper_bot online_async_launch.pyFor autonomous navigation, launch the Nav2 stack:
ros2 launch sweeper_bot navigation_launch.pyContains configurations for initializing the robot stack, including sensors, drivers, and relay control.
SLAM setup for creating and updating the map in real-time.
Nav2 setup for path planning and autonomous navigation.
Joystick controller setup for manual robot control.
To launch the entire robot stack, SLAM, and navigation individually:
ros2 launch sweeper_bot sweepy_launch.py
ros2 launch sweeper_bot online_async_launch.py
ros2 launch sweeper_bot navigation_launch.pyTo launch everything for Nav2 and SLAM:
ros2 launch sweeper_bot lex_dev_launch.pyWhen using a Bluetooth controller:
- The left joystick button controls the movement of the robot.
- An enable button must also be held down.
- On a PS4 controller:
- The left trigger enables half speed.
- The right trigger enables full speed.
- The bumpers control the turning on and off of the brushes.
This project could not have been done without these people and resources:
- Roboclaw Hardware Interface
- Roboclaw Serial
- Nav2
- Articubot One
- ROS2 Control
- SLAM Toolbox
- Sick Scan
- Robot Localization
- lex/vedanshee 😎
- Connection Issues: Ensure all hardware is properly connected and configured.
- Dependency Errors: Make sure all dependencies are installed and sourced.
Feel free to reach out for further assistance or inquiries.