这篇教程主要介绍怎样创建和编译一个msg消息和srv服务文件,同时介绍rosmsgrossrvroscp等命令工具。

文章目录

  • 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消息和服务)相关推荐

  1. ROS学习笔记五:理解ROS topics

    ROS学习笔记五:理解ROS topics 本节主要介绍ROS topics并且使用rostopic和rqt_plot命令行工具. 例子展示 roscore 首先运行roscore系列服务,这是使用R ...

  2. ROS学习笔记六:理解ROS服务和参数

    ROS学习笔记六:理解ROS服务和参数 主要介绍ROS服务和参数,同时使用命令行工具rosservice和rosparam. ROS service service是节点之间互相通信的另一种方式,se ...

  3. ROS学习笔记四:理解ROS节点

    ROS学习笔记四:理解ROS节点 本节主要介绍ROS图形概念,讨论ROS命令行工具roscore.rosnode和rosrun. 要求 要求已经在Linux系统中安装一个学习用的ros软件包例子: s ...

  4. ROS学习笔记二:探索ROS文件系统

    ROS学习笔记二:探索ROS文件系统 ROS针对自己文件的特性,具有一些自己的工具命令,当针对ROS文件进行操作的时候是非常方便的.这些命令和ubuntu系统原有的命令相似但却不同,单独针对ROS文件 ...

  5. ROS学习笔记1(配置ROS环境和创建工作空间)

    1 安装ros 参考我的另一篇博客Ubuntu16.04安装ROS和依赖包 如果是通过apt命令安装的package,是不能够被读写的(相当于二进制安装),如果是通过下载源代码编译的,就可以自行编辑. ...

  6. 古月居21讲学习笔记 10—15讲总结 话题VS服务

    模型对比 话题模型 服务模型 数据类型 两种数据在建立的时候都建议放在一个单独的文件夹内方便管理 话题消息 msg文件 服务数据 srv文件 自定义数据创建流程(统一) 1.定义对应的msg/srv文 ...

  7. ROS学习笔记(一)ROS基础入门 — 参考创客制造

    2016年12月8日 Thur 我是看的这土豆网的教程 http://www.tudou.com/listplay/nZHW3aBlxmw/XIovKWZJF2o.html ROS是依赖于某种空间组合 ...

  8. Ros学习笔记(一)Ros中HelloWorld实现(C++/Python)

    例程实现流程 声明:整个学习是我跟着奥特学园进行的,不是原创,只是记录自己的学习过程 1.准备事项 1)先创建一个工作空间 2)再创建一个功能包 3)编辑源文件 4)编辑配置文件 5)编译并执行 C+ ...

  9. ROS学习笔记(一)ROS系统架构

    ROS系统架构 ROS系统的架构主要被设计和划分为三部分,每一部分代表一个层级的概念: 文件系统级(The filesystem level) 计算图级(The computation graph l ...

最新文章

  1. 复习05统计学习方法(决策树算法Decision Tree)---图片版
  2. gRPC 的 4 种基础通信模式
  3. Python爬虫(六)_Requests的使用
  4. Spring-Cloud中的负载
  5. [Bugku][Web][CTF] 30-33 write up
  6. 数学建模学习笔记(二)——Topsis优劣解距离法
  7. 萌宠历险记html5游戏在线玩,《神武2》天外魔境现世 萌宠历险记首发
  8. 使用autoit实现自动加域
  9. oracle里面如何查询sqlid,Oracle SQL查询:如何使用count
  10. UVA11063 B2-Sequence【序列】
  11. 介绍几款最好使用的模拟器怎么下载。
  12. 计算机专业寒假打工大一,大一学生寒假打工心得3篇
  13. 老师给我推荐的经典管理书籍
  14. 软件工程专业的大三学生经历和感悟
  15. IDDD 实现领域驱动设计-SOA、REST 和六边形架构
  16. Hacked【黑客】手游攻略
  17. 堡垒机和防火墙的区别是什么?能防删库跑路吗?
  18. ctfshow 爆破 web21-web28
  19. 大数据给人们生活带来的改变_大数据时代,对人们生活的影响在哪些方面
  20. 一文读懂数字孪生的应用及意义

热门文章

  1. 持续集成部署Jenkins工作笔记0009---创建SVN版本库并提交Maven工程
  2. MFC工作笔记0008---UDP协议通信_sendto 和 recvfrom 浅析与示例
  3. STM32工作笔记0098---Windows下的Linux环境_Cygwin_MinGW_MSYS_MSYS2_之间的关系
  4. mysql根据时间统计数据语句
  5. fastadmin cms使用注意一
  6. win32开发(窗口类和窗口)
  7. 计算机系统启动的加点顺序是,操作系统引导探究
  8. 设置好网络协议了为何网络还是不通_记一次菜鸟网络的面试经历
  9. java hbase流量日志,Spark+Hbase 亿级流量分析实战(日志存储设计)
  10. Java基本数据包装类_java基本数据类型的包装类