ROS学习笔记10(创建一个ROS消息和服务)
这篇教程主要介绍怎样创建和编译一个msg消息和srv服务文件,同时介绍rosmsg
,rossrv
,roscp
等命令工具。
文章目录
- 1 msg和srv文件长什么样
- 2 msg使用
- 2.1 创建一个msg
- 2.2 rosmsg show
- 3 srv使用
- 3.1 创建一个srv
- 3.2 rossrv show
- 4 小结
1 msg和srv文件长什么样
msg文件:
Header header
string child_frame_id
geometry_msgs/PoseWithCovariance pose
geometry_msgs/TwistWithCovariance twist
srv文件:
int64 A
int64 B
---
int64 Sum
srv中有两个部分,---
上面是request,下面的是response。
2 msg使用
2.1 创建一个msg
$ roscd beginner_tutorials
$ mkdir msg
$ echo "int64 num" > msg/Num.msg
在package.xml
中添加:
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
在CMakeLists.txt
中添加:
find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgsmessage_generation
)
catkin_package(CATKIN_DEPENDS message_runtime
)
add_message_files(FILESNum.msg
)
generate_messages(DEPENDENCIESstd_msgs
)
2.2 rosmsg show
标准用法:
$ rosmsg show [message type]
举例:
$ rosmsg show beginner_tutorials/Num
# echo
int64 num
3 srv使用
3.1 创建一个srv
$ roscd beginner_tutorials
$ mkdir srv
接着拷贝一个srv文件过来
$ roscp [package_name] [file_to_copy_path] [copy_path]
$ roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv
或者新建一个AddTwoInts.srv
文件:
int64 a
int64 b
---
int64 sum
在package.xml
中添加:
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
在CMakeLists.txt
中添加:
# Do not just add this line to your CMakeLists.txt, modify the existing line
find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgsmessage_generation
)
add_service_files(FILESAddTwoInts.srv
)
3.2 rossrv show
标准用法:
$ rossrv show <service type>
举例:
$ rossrv show beginner_tutorials/AddTwoInts
# echo
int64 a
int64 b
---
int64 sum
和rosmsg
一样,也可以不指定Package名字来寻找service:
$ rossrv show AddTwoInts
# echo
# beginner_tutorials里面的服务:
[beginner_tutorials/AddTwoInts]:
int64 a
int64 b
---
int64 sum# rospy_tutorials里面的服务:
[rospy_tutorials/AddTwoInts]:
int64 a
int64 b
---
int64 sum
4 小结
- rospack = ros + pack
- roscd = ros + cd
- rosls = ros + ls 显示一个ros Package中的所有文件
- roscp = ros + cp
- rosmsg = ros + msg
- rossrv = ros + srv
ROS学习笔记10(创建一个ROS消息和服务)相关推荐
- ROS学习笔记五:理解ROS topics
ROS学习笔记五:理解ROS topics 本节主要介绍ROS topics并且使用rostopic和rqt_plot命令行工具. 例子展示 roscore 首先运行roscore系列服务,这是使用R ...
- ROS学习笔记六:理解ROS服务和参数
ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...
- ROS学习笔记四:理解ROS节点
ROS学习笔记四:理解ROS节点 本节主要介绍ROS图形概念,讨论ROS命令行工具roscore.rosnode和rosrun. 要求 要求已经在Linux系统中安装一个学习用的ros软件包例子: s ...
- ROS学习笔记二:探索ROS文件系统
ROS学习笔记二:探索ROS文件系统 ROS针对自己文件的特性,具有一些自己的工具命令,当针对ROS文件进行操作的时候是非常方便的.这些命令和ubuntu系统原有的命令相似但却不同,单独针对ROS文件 ...
- ROS学习笔记1(配置ROS环境和创建工作空间)
1 安装ros 参考我的另一篇博客Ubuntu16.04安装ROS和依赖包 如果是通过apt命令安装的package,是不能够被读写的(相当于二进制安装),如果是通过下载源代码编译的,就可以自行编辑. ...
- 古月居21讲学习笔记 10—15讲总结 话题VS服务
模型对比 话题模型 服务模型 数据类型 两种数据在建立的时候都建议放在一个单独的文件夹内方便管理 话题消息 msg文件 服务数据 srv文件 自定义数据创建流程(统一) 1.定义对应的msg/srv文 ...
- ROS学习笔记(一)ROS基础入门 — 参考创客制造
2016年12月8日 Thur 我是看的这土豆网的教程 http://www.tudou.com/listplay/nZHW3aBlxmw/XIovKWZJF2o.html ROS是依赖于某种空间组合 ...
- Ros学习笔记(一)Ros中HelloWorld实现(C++/Python)
例程实现流程 声明:整个学习是我跟着奥特学园进行的,不是原创,只是记录自己的学习过程 1.准备事项 1)先创建一个工作空间 2)再创建一个功能包 3)编辑源文件 4)编辑配置文件 5)编译并执行 C+ ...
- ROS学习笔记(一)ROS系统架构
ROS系统架构 ROS系统的架构主要被设计和划分为三部分,每一部分代表一个层级的概念: 文件系统级(The filesystem level) 计算图级(The computation graph l ...
最新文章
- 复习05统计学习方法(决策树算法Decision Tree)---图片版
- gRPC 的 4 种基础通信模式
- Python爬虫(六)_Requests的使用
- Spring-Cloud中的负载
- [Bugku][Web][CTF] 30-33 write up
- 数学建模学习笔记(二)——Topsis优劣解距离法
- 萌宠历险记html5游戏在线玩,《神武2》天外魔境现世 萌宠历险记首发
- 使用autoit实现自动加域
- oracle里面如何查询sqlid,Oracle SQL查询:如何使用count
- UVA11063 B2-Sequence【序列】
- 介绍几款最好使用的模拟器怎么下载。
- 计算机专业寒假打工大一,大一学生寒假打工心得3篇
- 老师给我推荐的经典管理书籍
- 软件工程专业的大三学生经历和感悟
- IDDD 实现领域驱动设计-SOA、REST 和六边形架构
- Hacked【黑客】手游攻略
- 堡垒机和防火墙的区别是什么?能防删库跑路吗?
- ctfshow 爆破 web21-web28
- 大数据给人们生活带来的改变_大数据时代,对人们生活的影响在哪些方面
- 一文读懂数字孪生的应用及意义
热门文章
- 持续集成部署Jenkins工作笔记0009---创建SVN版本库并提交Maven工程
- MFC工作笔记0008---UDP协议通信_sendto 和 recvfrom 浅析与示例
- STM32工作笔记0098---Windows下的Linux环境_Cygwin_MinGW_MSYS_MSYS2_之间的关系
- mysql根据时间统计数据语句
- fastadmin cms使用注意一
- win32开发(窗口类和窗口)
- 计算机系统启动的加点顺序是,操作系统引导探究
- 设置好网络协议了为何网络还是不通_记一次菜鸟网络的面试经历
- java hbase流量日志,Spark+Hbase 亿级流量分析实战(日志存储设计)
- Java基本数据包装类_java基本数据类型的包装类