创建ros自定义消息

$cd catkin_ws/src/rfid/src

$mkdir msg

在msg文件夹下创建 一个名为rfid_data.msg的文件,输入如下内容:

float32 rfid_distance

float32 rfid_phase

接下来,还有关键的一步:我们要确保msg文件被转换成为C++,Python和其他语言的源代码:

查看package.xml, 确保它包含一下两条语句:

<build_depend>message_generation</build_depend>
  <run_depend>message_runtime</run_depend>
然后打开 CMakeLists.txt 文件,利用find_packag函数,增加对message_generation的依赖,这样就可以生成消息了

# Do not just add this line to your CMakeLists.txt, modify the existing line
find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs message_generation)
同样,你需要确保你设置了运行依赖,这块儿要放在generate_message()之后

catkin_package(
  
  CATKIN_DEPENDS message_runtime 
  )

找到如下代码块:

# add_message_files(
#   FILES
#   Message1.msg
#   Message2.msg
# )

去掉注释符号#,用你的.msg文件替代Message*.msg,就像下边这样:

add_message_files(
  FILES
  rfid_data.msg
)

手动添加.msg文件后,我们要确保CMake知道在什么时候重新配置我们的project。 确保添加了如下代码:

generate_message(

DEPENDENCIES

std_msgs

)

现在,你可以生成自己的消息源代码了。

以上就是你创建消息的所有步骤。下面通过rosmsg show命令,检查ROS是否能够识消息。

使用方法:

$ rosmsg show [message type]

样例:

$ rosmsg show /rfid/rfid_data.msg

你将会看到:

float32 rfid_distance

float32 rfid_phase


在上边的样例中,消息类型包含两部分:

  • rfid -- 消息所在的package

  • rfid_data -- 消息名rfid_data.

如果你忘记了消息所在的package,你也可以省略掉package名。输入:

$ rosmsg show rfid_data

你将会看到:

  • float32 rfid_distance

    float32 rfid_phase

  • 如果在程序中用的话应该这样:

  • rfid::rfid_data msg;//rfid是消息所在包的名字,rfid_data为消息文件夹名字去掉.msg,msg为自定义的一个变量,然后

msg.rfid_distance=5.55;
msg.rfid_distance=5.55;
  • 
    






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值