ROS2给python添加自定义消息

ROS2给python添加自定义消息

1.需求描述

  • 为ros2的python节点添加自定义消息
  • python节点无法自定义消息,方法是先建一个cmake的功能包,在里面添加msg,然后在python节点中导入该msg

2.建立msg功能包

  • 1.创建功能包
ros2 pkg create --build-type ament_cmake lane_msg
  • 2.定义msg消息内容
mkdir msg
cd msg
# 创建 xxx.msg文件
  • 3.修改CMakeLists.txt,添加以下内容
find_package(rosidl_default_generators REQUIRED)

rosidl_generate_interfaces(${PROJECT_NAME}
  "msg/xxx.msg"
)
  • 4.修改package.xml,添加以下内容
rosidl_default_generators
rosidl_default_runtime
rosidl_interface_packages
  • 5.编译msg功能包
# 如果下面命令编译失败则删掉install目录重新编译
colcon build --packages-select lane_msg –merge-install
  • 6.检查自定义消息是否可用
# 如果显示出自定义消息内容,则成功
ros2 interface show lane_msg/msg/xxx

3.在python节点中使用自定义msg(示例)

  • 1.导入
# 
from lane_msg.msg import LanesInfo as LaneMsg
  • 2.发布消息格式改为自定义的消息
self.processed_image_pub = self.create_publisher(LaneMsg, '/lane_info', 1)
  • 3.关联发布内容
msg = LaneMsg()
msg.line_c0 = float(fit_params[0][-1].astype("float32"))
msg.line_c1 = float(fit_params[0][-2].astype("float32"))

参考链接

你可能感兴趣的:(python,深度学习,c++)