ROS机器人-从零开始每日日志记录day3
rosbridge
rosbridge是一个用于ROS的协议转换中间件和通信套件。简单来说,它是一座“桥梁”,让那些不支持 ROS 原生通信协议的外部程序(如 Web 浏览器、手机 App、Unity/Unreal 引擎、MATLAB 等)能够与 ROS 机器人系统进行交互。
1.rosbridge可将 ROS 内部复杂的通信机制(ROS1 基于 TCPROS/UDPROS,ROS2 基于 DDS)转换为通用的、跨平台的 WebSocket + JSON 协议。
2.允许任何支持 WebSocket 的编程语言或平台(JavaScript, C#, Java, Swift 等)直接订阅 Topic、发布消息、调用 Service 或 Action,而无需安装 ROS 环境或编译 ROS 包。
3.可自动处理ROS消息类型与JSON格式之间的转换。

在默认情况下,节点与节点之间的通讯只有在运行了ROS核心库的环境下才能够实现,与非ROS环境通信就需要rosbridge进行消息传递,例如,使用 roslibjs 在浏览器中实时显示雷达点云、摄像头画面或机器人状态、开发手机APP远程控制机器人、将本地ROS节点的数据传输至云端服务器处理等等。
目前来看,我使用rosbridge遇到的问题:在传输大量数据时可能会有内存泄漏的风险。目前只是通过粗暴的定期重启rosbridge来避免内存泄漏,这个解决办法只能治标,不能满足大量数据高实时性场景,这里先埋个坑,由于目前处于应用阶段,之后再详细研究解决这个问题。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)