db1d565b64
Integration Tests / melodic (push) Has been cancelled
Integration Tests / noetic (push) Has been cancelled
Integration Tests / humble (push) Has been cancelled
Integration Tests / jazzy (push) Has been cancelled
Ruff Lint & Format / ruff (push) Has been cancelled
Sync main to develop / Check if sync is needed (push) Has been cancelled
Sync main to develop / Sync main to develop (push) Has been cancelled
99 lines
3.3 KiB
Markdown
99 lines
3.3 KiB
Markdown
# Example - Turtlebot3 (Real)
|
|
|
|

|
|
|
|
This example demonstrates the use of a real TurtleBot3 Burger robot with ROS2.
|
|
The TurtleBot3 is a compact, customizable mobile robot designed for education and research. It supports applications such as SLAM, navigation, and autonomous control, and comes in various hardware configurations.
|
|
|
|
|
|
## Prerequisites
|
|
|
|
For this example, the TurtleBot3 Burger version with Ubuntu 22.04 and ROS2 Humble is used. Depending on your TurtleBot3 model and installed hardware (e.g., LDS-01 LiDAR), make sure to install the corresponding packages required for your specific configuration.
|
|
|
|
### Turtlebot3
|
|
|
|
For more details, please refer to the [TurtleBot3 Documentation](https://emanual.robotis.com/docs/en/platform/turtlebot3/overview/).
|
|
|
|
<img src="images/turtlebot3_image.png" width="300">
|
|
|
|
- **Specification**
|
|
- **OS** : Ubuntu 22.04
|
|
- **ROS** : ROS2 Humble
|
|
- **TurtleBot3 Model** : Burger
|
|
- **LiDAR** : LDS-01
|
|
- **Computer** : Raspberry Pi 3 Model B+ (1GB RAM)
|
|
- **Motor Controller** : OpenCR 1.0 (Firmware v0.2.1)
|
|
|
|
## Quick Start
|
|
|
|
### 1. Network Setup
|
|
|
|
Since the TurtleBot3 is controlled via ROS-MCP from the user PC, it is important to connect both the user PC and the TurtleBot3 to the same network.
|
|
> **Note:** You can check your network IP address with the `ifconfig` command.
|
|
|
|
**Ping Test**
|
|
|
|
After connecting them to the same network, perform a ping test from the user PC to TurtleBot3 to verify that the connection is established correctly:
|
|
**[User's PC]**
|
|
```bash
|
|
ping <TURTLEBOT3_IP> # e.g., ping 192.168.101.166
|
|
```
|
|
|
|
**ROS2 Network Setup**
|
|
|
|
In ROS2, environment variables are used to configure Domain ID and ROS middleware behavior.
|
|
On both the user PC and TurtleBot3, export:
|
|
**[User's PC]** **[Turtlebot3 SBC]**
|
|
```bash
|
|
echo "export ROS_DOMAIN_ID=30" >> ~/.bashrc
|
|
echo "export RMW_IMPLEMENTATION=rmw_fastrtps_cpp" >> ~/.bashrc
|
|
source ~/.bashrc
|
|
```
|
|
|
|
### 2. Bringup Turtlebot3
|
|
|
|
Open a new terminal on the user PC and connect to the Raspberry Pi via SSH using its IP address. Enter your Ubuntu OS password for the Raspberry Pi.
|
|
|
|
**[User's PC]**
|
|
```bash
|
|
ssh ubuntu@{IP_ADDRESS_OF_RASPBERRY_PI}
|
|
```
|
|
|
|
Bring up basic packages to start essential TurtleBot3 applications. You will need to specify your TurtleBot3 model.
|
|
|
|
**[Turtlebot3 SBC]**
|
|
```bash
|
|
export TURTLEBOT3_MODEL=burger
|
|
ros2 launch turtlebot3_bringup robot.launch.py
|
|
```
|
|
|
|
### 3. Launch Node on Your Turtlebot3 SBC and Open claude-desktop on Your PC
|
|
|
|
**[Turtlebot3 SBC]**
|
|
```bash
|
|
ros2 launch rosbridge_server rosbridge_websocket_launch.xml
|
|
```
|
|
|
|
**[User's PC]**
|
|
```bash
|
|
claude-desktop
|
|
```
|
|
|
|
## **Example Walkthrough**
|
|
You're now ready to interact with the TurtleBot3 via the ROS MCP server. Follow these examples step-by-step:
|
|
|
|
### **Example 1**: Connect to Robot
|
|
|
|
<img src="images/turtlebot3_connect.png" width="500">
|
|
|
|
### **Example 2**: Check Available Topics
|
|
|
|
<img src="images/turtlebot3_gettopics_1.png" width="500">
|
|
<img src="images/turtlebot3_gettopics_2.png" width="500">
|
|
|
|
### **Example 3**: Move the Robot Back and Forth
|
|
<img src="images/turtlebot3_example3.gif" width="500">
|
|
|
|
|
|
## **Next Steps**
|
|
If your TurtleBot3 is equipped with a Raspberry Pi camera, you can now start streaming visual data. Try integrating camera feeds into your pipeline for more advanced robot control demos. |