一、msg

  用于发布-订阅的通信方式中。

  1、在包的src 中创建msg文件夹。

  2、在msg文件夹中,创建.msg文件

  3、编辑.msg文件

  4、编辑package.xml , 添加依赖

    <build_depend>message_generation</build_depend>

    <run_depend>message_runtime</build_depend>

    以及其他以来项,如.msg中嵌套了其他消息

  5、如果没有使用catkin_simple 需要编辑CMakeLists.txt

  6、编译,catkin_make,在devel/include 中可以看到头文件

二、srv

  用于请求-服务通信方式中,对服务消息的描述

  1、在包的src 中创建srv文件夹。
  2、在srv文件夹中,创建.srv文件 

  3、编辑.srv文件格式如下

string name
---
bool on_the_list
bool is_good
int32 age
string nickname

    使用---分割,上面为请求,下面为响应

  4、5、6参照msg

三、action

  用于动作服务器客户端模式

  1、在包的action 中创建action文件夹。
  2、在action文件夹中,创建.action文件 

  3、编辑.srv文件格式如下:分为3部分 gaol、result、feedback

# goal
int32 input
---
#result
int32 output
int goal_stamp
---
#feedback
int32 fdbk

  4、5、6参照msg

参考:

  http://wiki.ros.org/msg

  https://blog.csdn.net/u013453604/article/details/72903398

ROS--自定义消息类型的更多相关文章

  1. ROS 自定义消息类型方法

    流程 1.在package中新建文件夹名为msg 2.在msg文件夹中创建消息(此处以my_msg.msg)为例,注意的是要以msg为后缀名 内容举例如下: int32 data1 float64 d ...

  2. ros自定义消息

    ros自定义消息可以根据自身项目需求定义和封装想要的数据类型和数据结构.具体可以参考维基百科关于ros自定义消息部分 这里我只是记录自定义消息的要点部分: 1.首先要在工作空间下功能包中创建一个msg ...

  3. ros自定义消息的时候报错ImportError: No module named em

    Traceback (most recent call last):  File "/opt/ros/kinetic/share/gencpp/cmake/../../../lib/genc ...

  4. geometry_msgs的ros message 类型赋值

    test_custom_particles.cpp // // Created by gary on 2019/8/27. // #include <ros/ros.h> #include ...

  5. ROS教程4 ROS自定义srv类型及使用

    创建srv文件 在上一节单独为自定义的消息和服务的包 test_msgs 里面 创建 srv文件夹 进入创建 testsrv.srv 文件 ,内容为: (srv文件和msg文件类似,唯一不同的是它包含 ...

  6. ROS教程3 ROS自定义msg类型及使用

    1ROS自定义msg类型及使用 http://blog.csdn.net/u013453604/article/details/72903398 首先创建一个空的package单独存放msg类型(当然 ...

  7. ros中自定义消息 报错 ImportError: No module named em

    大家好,欢迎来到我的博客,之前写的都是比较松散的,鉴于工作的原因,之后的随笔将持续更新ROS以及linux使用方面的随笔,欢迎大家留言,相互学习 ——————————————————————————— ...

  8. ROS学习笔记五:创建和使用ROS msg和srv

    1 msg和srv简介 1.1 msg文件 msg文件就是一个简单的text文件,其中每行有一个类型和名称,可用的类型如下: int8, int16, int32, int64 (plus uint* ...

  9. ROS之arduino交互

    一.第一种安装方式(不支持自定义消息) 第一步打开官网 http://wiki.ros.org/rosserial_arduino/Tutorials/Arduino%20IDE%20Setup 第二 ...

  10. ROS主题发布订阅

    节点是一个可执行程序,它连接到了ROS的网络系统中.我们将会创建一个发布者,也就是说话者节点,它将会持续的广播一个信息. 改变目录到之前所建立的那个包下: cd ~/catkin_ws/src/beg ...

随机推荐

  1. Nginx 配置整理

    链接:nginx配置详细解析 1. C10k问题:无法同时并发超过(1w)客户端请求而出现的问题. nginx默认配置超过1w并发: 2.配置文件conf/nginx.conf (1)user www ...

  2. css重置样式

    <style> html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, ...

  3. 通过哪吒动漫豆瓣影评,带你分析python爬虫与BeautifulSoup快速入门【华为云技术分享】

    久旱逢甘霖 西安连着几天温度排行全国三甲,也许是<哪吒之魔童降世>的剧组买通了老天,从踩着风火轮的小朋友首映开始,就全国性的持续高温,还好今天凌晨的一场暴雨,算是将大家从中暑边缘拯救回来了 ...

  4. 大型情感剧集Selenium:3_元素定位 #华为云·寻找黑马程序员#

    关于昨天的文章 今天有朋友反馈,代码运行的时候,selenium提示警告 DeprecationWarning: use options instead of chrome_options drive ...

  5. 失去循环标记的Python,我这样实现跳出外层循环

    不完美的Python 自从各类Python大火,感觉天上地下哪儿都有Python的一席之地,Python功夫好啊-但python有些细节上缺少其他语言的便利.今天我们就来举几个例子. 跳出外层循环 大 ...

  6. Java修炼——插入排列,选择排列

    话不多说,直接上代码: package com.bjsxt.Array; import java.util.Arrays; public class TestSort { //选择排序 //插入排列 ...

  7. 使用 RMI 实现方法的远程调用

    RMI 介绍 RMI 指的是远程方法调用 (Remote Method Invocation).它是一种机制,能够让在某个 Java虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法.可以用此 ...

  8. JSTL学习

    基本标签: out标签:<c:out value="${表达式}" default="默认值"></c:out> 作用:结合EL表达式将 ...

  9. A.Two Rival Students

    题目:两个竞争的学生 链接:(两个竞争的对手)[https://codeforces.com/contest/1257/problem/A] 题意:有n个学生排成一行.其中有两个竞争的学生.第一个学生 ...

  10. Python必学之编译器用哪个好?你用错了吧!

    学python要知道怎么用好编译器.当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件.要运行代码,就需要Python解释器去执行.py文件由于整个Pyth ...