Enhanced TurtleBot3 with analog sensing and multimedia streaming capabilities
The ez-turtlebot3 project extends the standard TurtleBot3 with advanced capabilities:
- 🔧 Enhanced Navigation: Autonomous navigation and obstacle avoidance optimized for tight spaces
⚠️ Note: Navigation is currently under development (WIP) - 📊 Analog Sensing: Publishes ROS 2 topics with measurements from analog pins A0-A5 on the TurtleBot OpenCR microcontroller
- 📹 Multimedia Streaming: Streams analog data, audio, and video to remote PCs or cloud services (AWS/YouTube)
Component | Model | Link |
---|---|---|
Robot Platform | TurtleBot3 Burger | 📖 Documentation |
Single Board Computer | Raspberry Pi 4B (8GB) | 🛒 Buy |
Camera Options | • Raspberry Pi Camera Module v2 • Raspberry Pi AI Camera |
📷 Camera Module v2 🤖 AI Camera |
- For Camera Module v2: Ubuntu 22.04 LTS (recommended for easy ROS 2 installation)
- For AI Camera: Raspberry Pi OS x64
- ROS 2 Humble - Robot Operating System
- Nav2 - Navigation framework
The ez-turtlebot3 project consists of four repositories. Follow them in this order:
Repository | Purpose |
---|---|
OpenCR | Flash analog-enabled firmware to the OpenCR board |
turtlebot3 | Build the analog-enabled turtlebot3 package |
ez_analog_processor | Install the analog data processing node |
rpi-av-stream-scripts | Set up audio/video streaming environment |
Each repository contains detailed setup instructions in its README file.
This example demonstrates broadcasting analog data and object detection video to a remote PC while teleoperating the TurtleBot3.
- Power on and connect to the TurtleBot3's Raspberry Pi via SSH
- Launch TurtleBot3 bringup:
ros2 launch turtlebot3_bringup robot.launch.py
- Start analog processor (new terminal):
ros2 launch ez_analog_processor analog_processor.launch.py
- Configure streaming (new terminal):
export REMOTE_PC_IP=192.168.1.100 python3 ~/rpi-av-stream-scripts/streaming_scripts/pi/stream_object_detection_video_to_pc.py
-
Open live data visualization:
ros2 run plotjuggler plotjuggler
Tip: Drag desired ROS topics into the chart area
-
Start video feed (new terminal):
cd ~/rpi-av-stream-scripts/streaming_scripts/pc ./open_video_stream.sh
-
Begin teleoperation (new terminal):
ros2 run turtlebot3_teleop teleop_keyboard
-
Drive and explore! 🎯
-
Cleanup: Use
Ctrl+C
to stop all processes on both Pi and PC
- OpenCR Setup - Analog firmware installation
- TurtleBot3 Build - Robot platform setup
- Analog Processor - Data processing node
- Streaming Scripts - Multimedia streaming
We welcome contributions! Please see individual repository READMEs for contribution guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.