Turtlebot 3 by Robotis
Program a TurtleBot 3 the easy way
TurtleBot 3 is a small, expandable ROS robot from ROBOTIS used in classrooms and labs around the world. With Synthiam you can keep its ROS 2 software and add a browser interface, or replace its computer and run the whole robot in ARCx or ARC with Blockly, JavaScript, Python and hundreds of robot skills.
How TurtleBot 3 works with Synthiam. There are three ways in. Keep ROS 2 on the robot and connect ARCx to it with the ROS 2 Connector. Or replace the Raspberry Pi with an x86 computer that runs ARCx or ARC directly on the robot, with the OpenCR board and lidar on its USB ports. Or go further and upgrade the sensors with Intel RealSense cameras. We recommend ARCx for all of them: it runs on Windows and Ubuntu 24.04 and is used from any web browser.
What is TurtleBot 3?
TurtleBot is inspired by the original "turtle robot" used with the Logo programming language (created in 1967): a small robot that helps beginners learn programming with instant, real-world feedback. The robot moves when your code runs.
TurtleBot 3 continues that tradition as a small, affordable, expandable mobile robot for education, research, hobbies and prototyping. It is a platform, designed to be modified: you can swap the on-board computer, add sensors and 3D-print new parts. It comes in two main versions, the compact Burger and the larger Waffle Pi.
TurtleBot 3 is made of several parts working together:
- On-board computer: the brain. ROBOTIS ships a Raspberry Pi running ROS; for Synthiam it runs ARCx or ARC.
- OpenCR controller: handles low-level motor and sensor tasks and talks to the computer over USB.
- DYNAMIXEL smart servos: drive the two wheels.
- 360° lidar: scans the room so the robot can detect objects and map or avoid obstacles.
- Battery: powers the robot and, depending on your setup, the computer too.
TurtleBot 3 at a glance
| Type | Two-wheeled ROS mobile robot platform |
|---|---|
| Maker | ROBOTIS |
| Computer (as shipped) | Raspberry Pi 4 |
| Controller | OpenCR 1.0, 32-bit ARM Cortex-M7, 216 MHz |
| Wheels | DYNAMIXEL XL430-W250 (Burger), XM430-W210 (Waffle Pi) |
| Lidar | LDS-02 (replaced the LDS-01 in 2022) |
| Camera | None (Burger), Raspberry Pi Camera v2.1 (Waffle Pi) |
| Battery | Li-Po 11.1 V, 1800 mAh |
| Top speed | 0.22 m/s (Burger), 0.26 m/s (Waffle Pi) |
| Synthiam connection | ROS 2 Connector over rosbridge, or ARCx/ARC on an on-board x86 computer |
| Website | ROBOTIS e-Manual |
Three ways to use TurtleBot 3 with Synthiam
1. Keep ROS 2, add ARCx
Leave the ROBOTIS software as it is. Start rosbridge and connect the ARCx ROS 2 Connector. ARCx drives the robot through /cmd_vel and reads its /scan and /odom. Best if you also use ROS tools such as Nav2.
2. An x86 computer on board
Swap the Raspberry Pi for an x86 single-board computer running Windows (ARC or ARCx) or Ubuntu 24.04 (ARCx). The OpenCR and lidar plug into its USB ports, and Synthiam runs the whole robot with no ROS.
3. Upgrade with RealSense
Add an Intel RealSense depth camera and tracking camera for 3D obstacle sensing and position tracking, on top of route 2.
Connect ARCx to the TurtleBot's ROS 2
If your TurtleBot 3 runs the ROBOTIS ROS 2 software, the ARCx ROS 2 Connector bridges it to ARCx over rosbridge (WebSocket JSON, port 9090). Nothing in the ROS graph changes, and ARCx does not need ROS installed. See the ROS 2 hardware page for the full picture.
-
Bring up the TurtleBot as usual with the ROBOTIS instructions, then install and start rosbridge on the robot:
sudo apt install ros-$ROS_DISTRO-rosbridge-suite ros2 launch rosbridge_server rosbridge_websocket_launch.xml - Install ARCx on a laptop or PC on the same network (Download ARCx). ARCx can also run on the robot's Raspberry Pi if it runs Ubuntu 24.04 LTS (for example with ROS 2 Jazzy); see Install ARCx on Raspberry Pi.
- Add the ROS 2 Connector (Communication category), enter the robot's address and port 9090, and connect.
-
Add bindings. A Movement binding on
/cmd_velset to publish (ARCx to ROS) lets ARCx's joystick, scripts and tracking skills drive the TurtleBot. A LaserScan binding on/scan(ROS to ARCx) feeds the lidar into ARCx's navigation messaging system, and an Odometry binding on/odomshares the robot's position. - Turn on "Stop movement on disconnect" so a dropped link never leaves the robot driving.
- Add robot skills: a Movement Joystick, speech, an AI, a Custom UI screen. The TurtleBot now has an interface anyone can use.
Run Synthiam on an x86 computer on the robot
The original Synthiam setup for TurtleBot 3 replaces the Raspberry Pi with an x86 single-board computer. Many x86 boards share the Raspberry Pi's mounting footprint, so the physical swap is usually straightforward. ARC needs Windows; ARCx runs on Windows or Ubuntu 24.04.
Supported x86 computers
- Install an x86 computer on the TurtleBot. Choose one of the boards above, mount it securely, and make sure you can connect a keyboard, mouse and monitor for setup (or use headless access later).
- Install the operating system. 64-bit Windows 10 or 11 for ARC or ARCx; Ubuntu 24.04 LTS for ARCx. On Windows, these guides help small computers: Windows 10 storage and performance, headless SBC tips and powering an SBC on a robot.
- Plug in the TurtleBot's electronics. Connect the OpenCR USB cable (motor and sensor controller) and the lidar USB cable to the computer. Use good-quality cables and make sure the connectors are firmly seated; loose USB connections are a common beginner problem.
- Provide enough power. The battery and wiring must supply the computer, sensors and motors. Random reboots, disconnects or inconsistent behavior usually mean not enough power.
- Install Synthiam software. ARCx (recommended; follow the Windows or Linux x64 guide) or ARC on Windows.
- Configure the project. In ARC, follow the video above to set up the project and get basic movement working. Start with slow movement over short distances before trying autonomy.
The lidar in ARCx
The Hitachi-LG LDS Lidar robot skill reads the LDS-01 (Hitachi-LG HLS-LFCD2) that earlier TurtleBot 3s shipped with. The TurtleBot's USB2LDS adapter is already wired correctly: plug it in, choose its port and press Start. Scans go to ARCx's navigation messaging system for mapping skills, to script variables and to an obstacle zone that can stop the robot. ARC has its own Hitachi-LG LDS Lidar skill.
/scan) or fit a lidar Synthiam supports, such as an RPLidar.
The OpenCR and the DYNAMIXEL wheels
The OpenCR is Arduino-compatible, and Synthiam has an EZB firmware for it (921,600 baud) on the OpenCR page, which turns its ports into EZB ports for ARCx's Ezb Connection or ARC.
The TurtleBot's wheel servos are on ARCx's Dynamixel Servo Driver supported list (XL430 and XM430), and it has a Wheel mode for continuous rotation. The driver talks to DYNAMIXELs through a hardware UART on an EZB, so you could run the wheel bus from an EZB in place of the stock OpenCR firmware. That combination has not been tested on a TurtleBot 3 yet, so treat the first bring-up with care, and see the driver's manual for wiring and settings.
TurtleBot 3 with Intel RealSense (optional upgrade)
You can take TurtleBot 3 beyond its lidar with Intel RealSense cameras. The example shown uses a Rock Pi X and a 25A LiPo battery with two RealSense cameras:
- Intel RealSense D435i: a depth camera for obstacle detection and 3D depth sensing. In this setup it can replace the lidar for some uses.
- Intel RealSense T265: a tracking camera that estimates the robot's motion and position over time. In this setup it can replace SLAM for pose localization in some workflows.
In ARCx, use the Intel Realsense and Intel Realsense Tracking robot skills. In ARC, use Intel Realsense D435i and Intel Realsense T265.
Camera-based navigation is capable but more complex. If you are new, get the robot driving well with the default sensors first, then add RealSense.
What a TurtleBot 3 can do with Synthiam
🧩 Beginner programming
Blockly for first-time programmers, then JavaScript and Python. True to the Logo turtle: the robot moves when your code runs.
🎮 Driving
On-screen joysticks and gamepads in any browser, with several people connected at once.
📡 Lidar and navigation
Lidar scans in ARCx's navigation messaging system for mapping and navigation robot skills, and an obstacle zone that stops the robot.
🎙 Voice
Speech recognition and text to speech turn TurtleBot 3 into a robot you can talk to.
🧠 AI
ARCx is an MCP server, so AI agents such as Claude can see, drive and program the robot.
📊 Custom UI
Touch-friendly control screens with buttons, joysticks and the lidar radar widget, for students and visitors.
🌎 Remote access
With the Exosphere robot skill, drive the robot from anywhere and invite others for telepresence.
🛒 Robot skill store
Hundreds of plug-in robot skills: vision, telepresence, chatbots, speech recognition, tracking and more.
Which Synthiam software for TurtleBot 3
| ARCx Recommended | ARC | |
|---|---|---|
| Runs on | Windows 10/11 x64, Ubuntu 24.04 LTS x64 and ARM64 (including Raspberry Pi) | Windows |
| Interface | Any web browser, several people at once | Windows desktop application |
| Keep the ROS 2 software | ROS 2 Connector | ROS2 Connector |
| On-board x86 computer | Windows or Ubuntu 24.04 | Windows |
| LDS-01 lidar | Hitachi-LG LDS Lidar | Hitachi-LG LDS Lidar |
| RealSense | Intel Realsense, Intel Realsense Tracking | Intel Realsense D435i, Intel Realsense T265 |
When something does not work
/cmd_vel), that the Movement binding is set to publish from ARCx to ROS, and that its topic is /cmd_vel. Turn on verbose logging in the connector to see what is sent.
dialout group (sudo usermod -aG dialout $USER) and log out and back in. The lidar adapter appears as /dev/ttyUSB0 or /dev/ttyACM0.
Frequently asked questions
Give TurtleBot 3 an interface everyone can use
Connect ARCx to its ROS 2 software, or run the whole robot in Synthiam on an x86 computer.
