Week14 ROS2 Turtlesim Remote Control Project

项目名称

ROS2 Turtlesim 远程控制与自动运行项目


项目目标

本项目基于 ROS2 Jazzy 和 Turtlesim,实现:

  • 手机网页远程控制乌龟移动
  • Python 作为 ROS2 与网页之间的桥接程序
  • Tailscale 实现手机与电脑跨设备通信
  • 自动运行模式(AUTO)
  • 乌龟轨迹展示

开发环境

项目 版本
Ubuntu 24.04
ROS2 Jazzy
Python 3
Turtlesim ROS2 Package
Tailscale Latest
Browser Mobile Browser

系统结构

手机浏览器
      ↓
controller.html
      ↓
HTTP POST
      ↓
bridge_turtle.py
      ↓
ROS2 Topic
      ↓
/turtle1/cmd_vel
      ↓
turtlesim

功能实现

1. 手动控制

手机访问控制网页:

http://100.xxx.xxx.xxx:8080

提供:

  • 前进
  • 后退
  • 左转
  • 右转
  • 停止

按钮控制。


2. 自动运行模式

新增 AUTO 按钮。

点击后:

  • 乌龟自动前进
  • 自动转向
  • 持续循环运动
  • 无需人工干预

运行方法

启动 Turtlesim

source /opt/ros/jazzy/setup.bash

ros2 run turtlesim turtlesim_node

启动桥接程序

cd ~/robot_bridge

source /opt/ros/jazzy/setup.bash

python3 bridge_turtle.py

手机连接

浏览器访问:

http://100.xxx.xxx.xxx:8080

项目成果

手动控制演示

文件:

手动.mp4

内容:

  • 手机控制乌龟移动
  • 验证远程控制成功

自动运行演示

文件:

自动视频.mp4

内容:

  • 点击 AUTO
  • 乌龟自动运动
  • 自动绘制轨迹

自动运行截图

文件:

自动动.png

内容:

  • 自动运行状态截图
  • 展示乌龟运动轨迹

项目总结

通过本项目学习并实践了:

  • ROS2 Topic 通信
  • Python ROS2 编程
  • HTTP 服务开发
  • 网页前后端交互
  • Tailscale 网络通信
  • Turtlesim 机器人控制

成功实现了手机远程控制和自动运行功能。