Skip to content
@ez-turtlebot3

ez-turtlebot3

🐢 ez-turtlebot3

Enhanced TurtleBot3 with analog sensing and multimedia streaming capabilities

ROS 2 Humble Ubuntu 22.04 Python License


🌎 Overview

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)

🛠️ Hardware Requirements

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

💻 Software Stack

Operating System

Core Software


👷 Setup Instructions

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.


🎮 Example Use Case: Teleoperation with Live Data

This example demonstrates broadcasting analog data and object detection video to a remote PC while teleoperating the TurtleBot3.

🤖 Raspberry Pi Setup

  1. Power on and connect to the TurtleBot3's Raspberry Pi via SSH
  2. Launch TurtleBot3 bringup:
    ros2 launch turtlebot3_bringup robot.launch.py
  3. Start analog processor (new terminal):
    ros2 launch ez_analog_processor analog_processor.launch.py
  4. 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

💻 Remote PC Setup

  1. Open live data visualization:

    ros2 run plotjuggler plotjuggler

    Tip: Drag desired ROS topics into the chart area

  2. Start video feed (new terminal):

    cd ~/rpi-av-stream-scripts/streaming_scripts/pc
    ./open_video_stream.sh
  3. Begin teleoperation (new terminal):

    ros2 run turtlebot3_teleop teleop_keyboard
  4. Drive and explore! 🎯

  5. Cleanup: Use Ctrl+C to stop all processes on both Pi and PC


📚 Documentation


🤝 Contributing

We welcome contributions! Please see individual repository READMEs for contribution guidelines.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Made with ❤️ for the robotics community

GitHub stars GitHub forks

Popular repositories Loading

  1. .github .github Public

    TurtleBot3 project with ROS2, Cartographer, Navigation2, Raspberry Pi Camera Module, USB Mic, and analog data from OpenCR.

    1

  2. ez_analog_processor ez_analog_processor Public

    A ROS 2 Humble package to process and filter analog sensor data from a TurtleBot3's OpenCR board.

    Python 1 1

  3. OpenCR OpenCR Public

    Forked from ROBOTIS-GIT/OpenCR

    Contains extended TurtleBot3 ROS 2 firmware that reads analog pins A0-A5

    C

  4. turtlebot3 turtlebot3 Public

    Forked from ROBOTIS-GIT/turtlebot3

    ROS packages for Turtlebot3 with analog-enabled turtlebot3_node

    C++

  5. rpi-av-stream-scripts rpi-av-stream-scripts Public

    Stream audio, video, and video with object detection overlays from a Raspberry Pi to local devices and cloud services.

    Python

Repositories

Showing 5 of 5 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…