Overview
#TurtleBot3 is an educational and research robot platform. Understanding its hardware components is essential for development and troubleshooting.
Main Components
#┌─────────────────────────────────────┐
│ Raspberry Pi │ ← Main computer
├─────────────────────────────────────┤
│ OpenCR Board │ ← Motor controller
├─────────────────────────────────────┤
│ LDS │ ← Laser sensor
├───────────────┬─────────────────────┤
│ Motor L │ Motor R │
└───────────────┴─────────────────────┘
Raspberry Pi 3 Model B+
#Specifications
#| Component | Specification |
|---|
| SoC | Broadcom BCM2837B0 |
| CPU | Cortex-A53 (ARMv8) 64-bit @ 1.4GHz |
| RAM | 1GB LPDDR2 |
| WiFi | Dual-band 802.11ac |
| Ethernet | Gigabit over USB 2.0 |
| GPIO | 40-pin header |
Connectivity
#- 4× USB 2.0 ports
- HDMI output
- CSI camera port
- DSI display port
- microSD card slot
- 3.5mm audio jack
Role in TurtleBot3
#- Runs Ubuntu and ROS
- Processes sensor data
- Communicates with desktop
- High-level control
LDS (Laser Distance Sensor)
#Specifications
#| Parameter | Value |
|---|
| Operating Voltage | 5V DC |
| Light Source | Semiconductor Laser (785nm) |
| Detection Range | 120mm - 3,500mm |
| Sampling Rate | 1.8 kHz |
Accuracy
#| Range | Accuracy |
|---|
| Close range | ±15mm |
| Long range | ±5% of distance |
Installation
## Install driver
sudo apt-get install ros-kinetic-hls-lfcd-lds-driver
# Set permissions
sudo chmod a+rw /dev/ttyUSB0
# Launch visualization
roslaunch hls_lfcd_lds_driver view_hlds_laser.launch
Role
#- 360° scanning
- Obstacle detection
- SLAM mapping
- Navigation
OpenCR (Open-source Control Module for ROS)
#Processor
#| Feature | Specification |
|---|
| MCU | STM32F746ZGT6 |
| Core | ARM Cortex-M7 |
| Clock | 216 MHz |
IMU Sensors
#| Version | IMU Chip |
|---|
| Old | MPU9250 (discontinued) |
| Current | ICM-20648 |
IMU provides:
- 3-axis accelerometer
- 3-axis gyroscope
- Used for odometry
Communication Ports
#| Port | Purpose |
|---|
| USB | Connection to Raspberry Pi |
| TTL | Serial communication |
| RS485 | Industrial serial |
| UART | Debug/expansion |
| CAN | Motor communication |
I/O Features
#- PWM outputs for motors
- GPIO pins
- RGB LEDs for status
- Buttons for user input
Power
#| Parameter | Value |
|---|
| Input voltage | 5V - 24V |
| Default battery | 11.1V LiPo (3S) |
| Output | Regulated 5V, 3.3V |
Role
#- Motor control
- IMU data processing
- Power management
- Low-level control
Motors and Wheels
#Dynamixel Motors
#TurtleBot3 uses Dynamixel smart actuators:
| Model | Burger | Waffle |
|---|
| Type | XL430 | XM430 |
| Torque | 1.0 Nm | 2.7 Nm |
| Speed | 57 RPM | 46 RPM |
Wheel Configuration
#- Differential drive
- Two driven wheels
- Caster or ball for balance
System Architecture
#Desktop PC (ROS Master)
↕ WiFi
Raspberry Pi
↕ USB
OpenCR
↙ ↘
Motor L Motor R
Data Flow
#- LDS → Raspberry Pi (laser scans)
- OpenCR → Raspberry Pi (IMU, motor feedback)
- Raspberry Pi → OpenCR (velocity commands)
- Raspberry Pi ↔ Desktop (ROS topics)
Power System
#Battery
#- 11.1V LiPo (3 cells)
- Capacity: ~1800mAh
- Runtime: ~2.5 hours typical
Power Distribution
#Battery (11.1V)
↓
OpenCR
↙ ↘
5V to Motor
RPi Power
LED Indicators
#| LED | Meaning |
|---|
| Power | System on |
| User RGB | Programmable status |
| Status | ROS connection |