为提高 ROS机器人控制终端的灵活性,设计了一种基于Android 终端的远程控制系 统。该系统结构主要包括三部分: ROS机器人硬件平台、无线通信网络和Android 终端 。Android 终端与 ROS Master通过无线局域网进行数据通信与视频传输。视频传输方面,在ROS Master部 署web_video_ server 节点,将图像消息转码为MJPEG格式并通过HTTP 发 布 ;Android 终端通过WebView 控件加载视频 流 URL, 实现低延迟显示。运动控制方面,Android 终端采用自定义摇杆采集用户触摸输入,封装成ROS 消息后,基于rosjava 库通过TCPROS协议直接发布至ROS Master,实现对机器人的实时操控。实验阶段, 先后对ROS机械臂、差速轮式机器人和四足机器人进行了跨平台仿真测试,并Z终在四足机器人实体上 完成了实机验证。测试结果表明:系统控制延迟约150 ms, 视频延迟约为250 ms, 二者均处于实时交互 的可接受范围;同时,姿态变化曲线显示,机器人偏航角( yaw) 变化与实际运动指令高度一致。该系 统能够稳定、有效地实现对多种机器人的实时远程控制。
在通信方案层面, 实 现Android 终端与ROS Master通信的主流方式 主要包括基于WebSocket/rosbridge的桥接方案16 和基于原生TCPROS 协议的直接通信方案。论 文 基于这种方案设计了一款web application用来控制ROS的 TurtleSim。前者虽实现了通信, 但引入了额外的中间层,导致系统架构复杂、通 信链路延长,难以满足高实时性控制的需求。相 比之下,TCPROS作为ROS官方的底层通信协 议,允许Android终端通过rosjava库直接作为原 生节点与ROS Master交互。该方案无需桥接,极 大地缩短了通信链路,有效降低了延迟,在实时 性、兼容性与系统简洁性方面具有显著优势。在 Android终端架构层面,本文所设计的Android终 端采用MVVM架构进行构建,MVVM核心理念 是关注点分离8,通过关注点分离有效解耦了界 面、业务逻辑与数据,极大提升了代码的可维护 性、可测试性与可扩展性。 在“MVVM架构+TCPROS直接通信”的基 础之上实现两大关键功能:D一,在运动控制方 面 ,Android终端基于MVVM 架构设计了直观的 摇杆交互控件,通过捕获用户触摸事件并进行坐 标归一化处理,将控制指令封装为ROS消息, 经 由TCPROS协议直接发布,Z终驱动机器人实 现实时准确运动。第二,在状态监测方面,系统 在 ROS Master部署web_video_server节点,将摄 像头图像转码为MJPEG格式并通过HTTP协 议 发布;Android终端则通过WebView控件加载视 频流,实现了低延迟的视频渲染与实时环境反馈。 Z后使用Unitree A1四足机器人进行实机测试, 此外,还扩展了对机械臂和差速轮式小车的仿真 控制。测试结果表明远程控制系统能够实现对机 器人的实时控制。下文节点之间的通信流程以控 制四足机器人实机为例进行阐述。
基于Android的 ROS机器人远程控制系统由 三大模块构成,分别为ROS 机器人硬件平台、 无线通信网络以及Android终端。系统实现原理 如图1所示。其中ROS机器人硬件平台以四足 机器人为载体,并搭载USB摄像头。无线通信 部分则依托实验室本地Wi-Fi网 络 ,为 Android终 端与ROS Master之间建立稳定的通信链路。ROS Master运 行Ubuntu 20.04系统,集成web_video_ server节点,负责将摄像头采集的图像数据转换 为 MJPEG格式并通过HTTP 协议发布;同时通 过 TCPROS协议实现与Android终端的直接数据 通信,确保控制指令能够高效传输,Android终 端采用MVVM架构进行设计,为用户提供直观 的交互界面。该界面可实时接收并显示机器人回 传的视频流数据,同时用户可通过虚拟摇杆控件 向机器人发送运动指令,Z终达成对机器人的远 程运动控制。
TCPROS是ROS官方节点间通信的底层协议, 基于TCP实现。通过rosjava库 ,Andoid 终端可 直接作为ROS节点与ROS Master通信。这种方 式无需中间桥接,极大缩短了通信链路,降低了 消息传递的延迟,非常适合对高实时性有严格要 求的机器人运动控制场景。同时,该方案与ROS 原生节点(包括C++、Python 和Java) 完全兼容, 能够支持所有标准及自定义消息类型,保证了系 统的灵活性和扩展性。此外,TCPROS通信机制 本身支持全双工通信和自动序列化/反序列化, 使得数据交换过程高效且可靠。
(1) ROS Master 配 置 : 用 户 在 Andriod 终 端输入ROS Master的 IP 和端口,Android 终端通 过 rosjava 配置节点参数,生成Master URI ( 如 http://192.168.1.100:11311)。
(2)节点注册与连接: Android终端通过 NodeMainExecutorService将控制节点注册到ROS Master, 节点启动后自动向Master 注册自身信息 (节点名、主机地址、topic 等 ) 。
(3)消息发布:如摇杆控制, Andriod终端 采集用户输入,封装为Joy 消息,通过Publisher 发布到Joy 话题。
(4)消息路由与传输: ROS Master负责节 点发现与topic路由,确保消息在各节点间高效 传递。所有消息通过TCPROS协议在节点间传输,

![]() |
| 机器人底盘 Disinfection Robot 消毒机器人 讲解机器人 迎宾机器人 移动机器人底盘 商用机器人 智能垃圾站 智能服务机器人 大屏机器人 雾化消毒机器人 展厅机器人 服务机器人底盘 具身智能教育机器人 智能配送机器人 导览机器人 |