机器人ros通信浅析,object c java 等无缝对接

2017-04-27  本文已影响204人  姬拉

去年火直播今年火机器人.......

一谈到机器人各个模块直接的通信肯定是跑不掉的。专业的都会用ros这个老外框架。框架地址:http://www.ros.org/

这个网站教程非常完整。但是只是针对c++居多,一旦你想用java或者其他系统当做ros中的一个模块那么集成时候问题就来了,资料少的可怜,还都他娘是洋文。

接下来笔者简单介绍一二,可能会给大家带来一些帮助。

从java或者object c  或者net...而言ros就是个websocket的再次封装。如果你用java言语去连接ros通信 实际上就是websocket的连接方式:”ws://localhost:9090“

连接成功以后接下来常用的会有两个

1.topic

topic分为三个流程 创建 订阅 发布

这三个流程实际上就是向websocket的服务端发送一坨特定格式的json,格式在这如果要解释清楚很累,可以在文件结束加群一起学习。

所有有订阅了这个topic的模块就能收到消息,有点广播的意思。

2.service

service一问一答,是客户端发起服务端返回,类似http post这个过程,是有针对性的。

service 分为创建 发送。

整个过程就是用websocket客户端连接上ros所在的服务端,接下来的通信就是走websocket方式,只是数据是特定的json结构,接下来简单讲下这个数据结构

key "op": 以下几种 

service_response. 

unadvertise_service.

call_service.

advertise_service.

publish.

fragment

subscribe.

unsubscribe.

unadvertise

advertise

解析来

key "topic/service" 请求模式 值对应的是路径 type 指的是个结构体路径,这里可以直接写 string

msg是发送的内容,这个和type类型一一对应的

总之 ros 在java 或者object c或者net上就是建立在websocket连接上的一种数据传输格式。

本人课余喜欢研究  object pascal ,object c ,java,玩些 c# 。欢迎广大IT男加群 (367276878)互相学习

上一篇下一篇

猜你喜欢

热点阅读