最后更新:2021-10-30 15:42:14 手机定位技术交流文章
ROS支持几种语言的编程界面,包括被称为Rosscpp的C++界面,用于确定主题、服务、帕拉姆和RSS通信。
roscpp is a C++ implementation of ROS. It provides aclient librarythat enables C++ programmers to quickly interface with ROSTopics,Services, andParameters. roscpp is the most widely used ROS client library and is designed to be the high-performance library for ROS.
TCP/UDP是在roscpp底部使用的通信协议,这意味着它通过 tcp 或 udp 传递,而不论它是使用罗斯特或服务。
罗斯主题的酒吧子进程在下面描述,说者通过 rpc 将酒吧注册给罗斯主人,而列单者则通过 rpc 将它注册给罗斯主人。 当罗斯 大师发现在收听器中注册的沙巴主题有一个酒吧时, 酒吧的专论者信息会提供给听众, tcp/ udp 链接会由 listner 和 rpc 创建。

当一个由朗读者出版的“主题” 由多个列席员订阅时, 罗斯将为每个列席员建构一个传输工具, 以便每个列席员与它互动, 罗斯会通过所有列席员打印消息时, 通过所有列席员发送信息 。

由于Roscpp是一种点对点通信模式,演讲者将为每个听众建造交通工具。 由于jbus是一种跨部门通信模式,我们将调整酒吧的行为,这样,不管是否有几个听众,演讲者只产生一种交通方式,由jbus通过向每个推特发送小费的方式向每个推特发送小费的方式播放。

班级运输是罗斯抽象的地下通信行为的基本类别。 通过继承它,我们获得了罗斯克普底层通信协议的修改,以及基于玻璃运输UDP的玻璃运输JBUS(Glass Transport JBUS ) 。
有关如何利用它们的细节可在README中找到。
# ROSCPP with libjbus
## 依赖
* libcjson
* support_libs
* libjbus
* ros [and it`s dependencies]
## 编译安装
* mkdir build
* cd build
* cmake ..
* make
* sudo cp devel/lib/libroscpp.so /opt/ros/melodic/lib/libroscpp.so
*or catkin_make ??*
## 说明
要求使用jbus, 而不是此前由罗斯在此问题上使用的TCP/UDP底部通信协议, 仅使用 libroscpp。 替换旧的 libroscpp.so; 不需要修改代码 。
### transport_jbus
运输JBUS级来自基级运输,以运输UDP为模范,用来制作专题通讯。
因为最初的罗斯通讯方法 是一个点对点, jbus是一个点对点, 我们不再为酒吧的每个子链接 建造运输工具,
当子主题时, 创建一个 TransportJBUS 和一个 jbus_ handle_ t 对象来管理它。 因为当jbus 接收数据时, 该对象会由空的 * 发送到 jbus 反馈函数, 如果我们直接发送此指针到 Transport JBUS 对象, 该对象会被此指针拆解, 造成意想不到的困难 。 jbus_ handle_ t 通过标记避免这类问题 。
### jbus_transport_manager
Jbus TransportManager是输出 JBUSROS: 开始的单一对象, 用于管理 TransportUDP 对象 。
Hello world
这显示现在正在使用 roscpp_jbus 。
### 其他修改
正在讨论进一步的源文件更改 。
```
/*** jbusros ***/
xxxxx;
/***************/
```
可搜索软件包以快速查找更改 。
本文由 在线网速测试 整理编辑,转载请注明出处。