337|0

15

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

ROS2智能机器人开发实践-阅读分享5-ros2消息接口 [复制链接]

 

ROS2智能机器人开发实践-阅读分享5-ros2消息接口

在前文学习中,我们学习topic和service都接触到了消息接口,他们分别是话题消息接口和服务消息接口,这些接口都是人为定义的,这些接口很重要,如图是三大主要服务的流程图,他们都有各自的消息接口。
这里的3个服务的话题类型如上图:所有的接口内部的数据的基础类型有以下几种:
zy@ubuntu:~/dev_ws$ ros2 interface package std_msgs
std_msgs/msg/UInt8
std_msgs/msg/Header
std_msgs/msg/MultiArrayDimension
std_msgs/msg/UInt64
std_msgs/msg/Float32MultiArray
std_msgs/msg/Int16MultiArray
std_msgs/msg/ByteMultiArray
std_msgs/msg/Char
std_msgs/msg/MultiArrayLayout
std_msgs/msg/UInt16MultiArray
std_msgs/msg/Int32
std_msgs/msg/Int32MultiArray
std_msgs/msg/UInt8MultiArray
std_msgs/msg/Int16
std_msgs/msg/ColorRGBA
std_msgs/msg/UInt32MultiArray
std_msgs/msg/Int8MultiArray
std_msgs/msg/Int64
std_msgs/msg/Int64MultiArray
std_msgs/msg/Bool
std_msgs/msg/Float64MultiArray
std_msgs/msg/UInt32
std_msgs/msg/UInt64MultiArray
std_msgs/msg/Byte
std_msgs/msg/UInt16
std_msgs/msg/Float64
std_msgs/msg/Int8
std_msgs/msg/Float32
std_msgs/msg/String
std_msgs/msg/Empty

通信接口命令行

ros2 interface list
ros2 interface show <interface_name>
ros2 interface package <package_name>

自定义接口

需要先创建一个c++的功能包
zy@ubuntu:~/dev_ws/src/ros2_21_tutorials$ ros2 pkg create --build-type ament_cmake learning_interface_zy
我们如图创建一个msg文件夹后创建一个.msg后缀的文件。
我们需要在cmakelist和package.xml里面添加东西:
cmakelist.txt
find_package(rosidl_default_generators REQUIRED)

rosidl_generate_interfaces(${PROJECT_NAME}
"msg/ObjectPosition.msg"
)
package.xml
<build_depend>rosidl_default_generators</build_depend>
<exec_depend>rosidl_default_runtime</exec_depend>
<member_of_group>rosidl_interface_packages</member_of_group>
colcon build --packages-select learning_interface_zy
source install/setup.bash
ros2 interface package learning_interface_zy
让背后你就看见了这个接口被定义好了,我们后续只需要调用就可以了。
同理,我们也可以定义srv
最后的action的接口我们后续有机会再讲吧。
以上就是关于本书的第五次分享,分享内容多为书本内容,本人在此由于篇幅有限只是介绍核心内容,本文我介绍了我们该如何创键我们自己的消息接口,在下次分享我将尽力分享动作action!!!

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
【有奖直播】2025是德科技数字月-数字新品来助阵
直播时间:3月19日(周三)14:00
直播奖励:小米口红充电宝、倍思充电线、是德科技十周年鼠标垫

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表