ROS2给python添加自定义消息
1.需求描述
- 为ros2的python节点添加自定义消息
- python节点无法自定义消息,方法是先建一个cmake的功能包,在里面添加msg,然后在python节点中导入该msg
2.建立msg功能包
ros2 pkg create --build-type ament_cmake lane_msg
mkdir msg
cd msg
- 3.修改CMakeLists.txt,添加以下内容
find_package(rosidl_default_generators REQUIRED)
rosidl_generate_interfaces(${PROJECT_NAME}
"msg/xxx.msg"
)
<buildtool_depend>rosidl_default_generators</buildtool_depend>
<exec_depend>rosidl_default_runtime</exec_depend>
<member_of_group>rosidl_interface_packages</member_of_group>
colcon build --packages-select lane_msg –merge-install
ros2 interface show lane_msg/msg/xxx
3.在python节点中使用自定义msg(示例)
from lane_msg.msg import LanesInfo as LaneMsg
self.processed_image_pub = self.create_publisher(LaneMsg, '/lane_info', 1)
msg = LaneMsg()
msg.line_c0 = float(fit_params[0][-1].astype("float32"))
msg.line_c1 = float(fit_params[0][-2].astype("float32"))
参考链接