ROS实操入门系列(七)ROS topic通讯之自定义复杂msg消息类型解决实际需求二(详解)
需求升级
CMakeLists文件配置
编写代码
https://www.lanqiao.cn/courses/2947,提供准备好的云主机ros环境,进行实操,课程包括了 Topic 通讯, Service 通讯,ROS 自定义消息,URDF可视化,TF坐标转换等技术要点。每个技术点都会结合例子先把原理讲解清楚,为了达到学以致用的目的,我们会再进行知识拓展,针对每个技术点实现对应的生动有趣的需求,保证学完后会有很大的收获。
需求升级
根据上一章的需求一,进行升级。已知有两个节点,其中一个节点是Publisher,另外一个节点是Subscriber。Publisher发布的消息是 团队数据,包含了以下内容:
根据需求类型,定义msg文件,其中student是上一章定义的消息类型,在同一个包中可以直接引用
CMakeLists文件配置
-
package.xml在上一章中已经添加配置,不需要再次配置
find_package(catkin REQUIRED COMPONENTS
roscpp
rosmsg
rospy
message_generation
geometry_msgs
)
add_message_files(
FILES
student.msg
team.msg
)
generate_messages(
DEPENDENCIES
std_msgs # Or other packages containing msgs
geometry_msgs
)
catkin_package(
# INCLUDE_DIRS include
# LIBRARIES student_msgs
CATKIN_DEPENDS roscpp rosmsg rospy message_runtime
# DEPENDS system_lib
)
编译项目
cd 工作空间
catkin_make
遇到下面错误1:可以删除工作空间中的build和devel,然后再次catkin_make
遇到下面错误2:
-
需要根据提示去generate_messages中添加,因为我在该msg文件中是用了geometry_msgs类型,所以需要进行添加
-
命令校验
rosmsg show student_msgs/team
编写代码
-
这一步很重要!!!退出clion, 在运行clion的窗口进入到工作空间目录执行 source devel/setup.bash, 需要重新把环境加载,不然写代码时找不到刚才写的消息类
-
编写publisher
-
运行两个文件查看结果
https://www.lanqiao.cn/courses/2947,提供准备好的云主机ros环境,进行实操,课程包括了 Topic 通讯, Service 通讯,ROS 自定义消息,URDF可视化,TF坐标转换等技术要点。每个技术点都会结合例子先把原理讲解清楚,为了达到学以致用的目的,我们会再进行知识拓展,针对每个技术点实现对应的生动有趣的需求,保证学完后会有很大的收获。
评论(1)
您还未登录,请登录后发表或查看评论