ROS(一)主题

ROS(robot operation system)主要解决了两个问题:
1,进程间通信及主机间通信
2,代码管理
这篇笔记记录ROS进程间通信的方法。

ROS解决进程间通信的方法主要有:主题,服务及动态参数。
1,主题适合于多个节点需要频繁通信的场合,例如智能小车的超声波测距节点,不断的将距离数据发送给处理单元节点。

2,服务适合于不频繁通信的场合。某个节点A向节点B提交服务申请,节点B执行回调函数,并将结果返回给节点A。实际中,我发现调用服务(即便是最简单的服务)到返回结果,在时间上是有明显的延迟的,暂时还不清楚是程序执行耗时,还是ros::spin()间歇耗时。总之,调用服务比主题通信耗费资源更多。

3,动态参数是对目标进程的内存的写操作,适合于修改目标节点的参数。

==============================1,编写自定义.msg文件=========

cd ~/catkin_ws/src

在/src目录下,执行

catkin_create_pkg study_topic std_msgs rospy roscpp

生成study_topic包
在study_topic目录下

mkdir msg

生成msg文件夹
在msg目录下,用常用的编辑器gedit,vim…都可以

vim study.msg

生成study.msg文件,并编辑

string xingming
int32 xuehao
float32 shengao

可以看到.msg文件的内容,跟c的结构体的定义很相似。我猜,等会catkin会把.msg文件编译成消息的结构体,我们使用主题通信时,也会用到这个结构体通信。
接下来,我们要编写配置文档package.xml以及cmakelists。

vim package.xml 

1,打开package.xml,加上两行

<build_depend>message_generation</build_depend>
<run_depend>message_runtime</run_depend>

然后打开CMakeLists.txt

vim CMakeLists.txt 

2,从最顶段开始,找到

find_package(catkin REQUIRED COMPONENTS 
    roscpp rospy std_msg)
<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值