【ROS】话题消息的使用

自定义话题信息

 

在功能包下创建msg文件夹

文件夹里定义msg文件:

$ touch Person.msg

string name   
uint8 sex
uint8 age

uint8 unkonwn=0
uint8 male=1
uint8 female=2

在package.xml中添加功能包依赖

<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>

在CMakeLists.txt添加编译选项

find_package(... message_generation)

add_message_files(FILES Person.msg)
generate_messages(DEPENDENCIES std_msgs)

catkin_package(... message_runtime)

 编译生成语言相关文件

catkin_make

编译完成之后便扩展 C++的类的定义,属性

问题:msg文件夹里的person.msg和CMakeLists里面写的Person.msg不一样

解决:使两个名字一样即可 

添加src的代码

 在CMakeLists做连接

add_executable(person_publisher src/person_publisher.cpp)
target_link_libraries(person_publisher ${catkin_LIBRARIES})
add_dependencies(person_publisher ${PROJECT_NAME}_generate_messages_cpp)

add_executable(person_subscriber src/person_subscriber.cpp)
target_link_libraries(person_subscriber ${catkin_LIBRARIES})
add_dependencies(person_subscriber ${PROJECT_NAME}_generate_messages_cpp)

 

编译运行

cd ~/<name>
catkin_make
source devel/setup.bash
roscore
rosrun learning_topic person_subscriber
rosrun learning_topic person_publisher

ROS省略source devel/setup.bash 环境变量

每一次运行都要设置环境变量,否则就不能正常运行,为了方便我们可以设置打开终端默认运行source。

主目录下Crtl+H显示隐藏文件,打开.bashrc

输入  source /home/<用户名>/<工作目录>/devel/setup.bash

 效果:

此时若是关闭roscore,也不影响发布者和订阅者的连接。roscore只是用于帮助节点的连接。

但若是想要访问参数就会出现问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值