Skip to the content.

Week14 实验报告 —— ROS2 Web远程控制小海龟系统 一、实验名称

ROS2 Web远程控制与自动巡航系统设计

二、实验目的

本周课程主要学习ROS2与Web前端技术结合的方法,通过构建网页控制界面,实现浏览器对Turtlesim仿真环境中的海龟进行远程操控。

通过本实验达到以下目标:

理解ROS2节点通信机制 学习WebSocket实时通信技术 掌握ROS2 Topic消息发布与订阅 学习前后端交互流程 实现远程控制机器人运动 实现自动巡航与状态监测功能 三、实验环境 软件环境 Ubuntu 24.04 ROS2 Rolling Python 3.12 HTML5 CSS3 JavaScript WebSocket ROS2功能包 turtlesim geometry_msgs rclpy std_msgs 四、实验原理

  1. 系统架构

整个系统采用前后端分离结构。

浏览器控制页面 │ │ WebSocket ▼ Python Web服务器 │ │ ROS2 Topic ▼ Turtlesim节点

网页负责发送控制指令。

Python后端接收指令后转换为ROS2消息。

ROS2节点再向Turtlesim发布速度控制信息。

最终控制海龟完成移动。

  1. 运动控制原理

海龟运动通过发布Twist消息实现。

geometry_msgs/msg/Twist

包含:

linear.x angular.z

其中:

linear.x 控制前进速度 angular.z 控制转向速度

通过不同参数组合实现:

前进 后退 左转 右转 停止

等功能。

  1. 自动巡航模式

为了提高系统智能化程度,本实验增加了自动模式。

自动模式启动后:

前进 ↓ 检测边界 ↓ 转向 ↓ 继续前进

循环执行。

使海龟能够在仿真环境中持续运动。

五、实验过程 步骤一:启动ROS2环境

打开终端:

source /opt/ros/rolling/setup.bash

启动Turtlesim:

ros2 run turtlesim turtlesim_node

成功打开仿真窗口。

步骤二:编写控制节点

创建ROS2控制节点。

功能包括:

发布速度指令 接收网页控制命令 实现自动巡航逻辑

测试结果:

ros2 topic echo /turtle1/cmd_vel

能够正常收到控制数据。

步骤三:搭建Web控制页面

设计网页控制器。

实现功能:

上下左右控制按钮 停止按钮 自动模式切换 状态显示区域 地图预览窗口

界面采用深色主题设计。

提高了可视化效果。

步骤四:实现WebSocket通信

建立浏览器与ROS2之间的数据通道。

连接成功后:

网页发送指令 → WebSocket → Python服务 → ROS2节点 → Turtlesim

实现实时控制。

步骤五:自动巡航测试

启动自动模式:

自动模式运行中

系统持续发送运动指令。

海龟能够自动完成运动轨迹绘制。

实验截图显示海龟成功完成复杂图形绘制。

六、实验结果

本实验成功实现:

功能一:手动控制

支持:

前进 后退 左转 右转 停止

控制响应及时。

功能二:自动巡航

自动模式能够持续运行。

实现自主运动功能。

功能三:地图显示

网页端实时显示:

当前位置 运动状态 地图预览

提高了用户体验。

功能四:状态监控

实时显示:

x坐标 y坐标 角度 速度 运动状态

方便调试与分析。

七、实验成果展示 实验截图1

Web远程控制界面成功运行。

包含方向控制按钮和自动模式按钮。

实验截图2

自动巡航模式启动。

海龟按照预设逻辑自主运动。

实验截图3

Turtlesim成功绘制运动轨迹。

证明ROS2控制指令正常执行。

实验截图4

实时地图预览与状态数据显示正常。

完成前后端通信验证。

八、实验总结

通过本周实验,我完成了基于ROS2和Web技术的远程控制系统开发。实验过程中学习了ROS2节点通信机制、Topic消息传输方式以及WebSocket实时通信技术,并成功将网页控制界面与Turtlesim仿真平台结合,实现了远程控制和自动巡航功能。

本项目不仅加深了我对ROS2框架的理解,也让我掌握了机器人系统与Web应用结合的方法。通过自动模式和地图预览功能的实现,我进一步认识到机器人自主控制与可视化监控的重要性。这些技术在智能机器人、远程运维以及具身智能系统中具有广泛应用价值,为后续学习导航、SLAM以及机器人自主决策奠定了良好的基础。

九、完成情况 项目 完成情况 ROS2环境配置 ✅ Turtlesim运行 ✅ Web控制界面 ✅ WebSocket通信 ✅ 自动巡航功能 ✅ 状态监控显示 ✅ 地图预览功能 ✅ 实验报告编写 ✅

实验结果:成功完成 Week14 ROS2 Web远程控制系统设计与实现。