ROS中有对应msg文件,但是编译时无法生成相应的头文件
第一步,检查cmakelist.txt文件的find_package下是否添加了message_generation:
find_package(catkin REQUIRED COMPONENTS
roscpp
geometry_msgs
pcl_conversions
pcl_ros
std_msgs
sensor_msgs
tf
message_generation
)
在add_message_files文件中要添加需要编译的消息格式
add_message_files(
FILES
Lane.msg
ControlCommand.msg
ControlCommandStamped.msg
Waypoint.msg
LaneArray.msg
PointsImage.msg
ProjectionMatrix.msg
ImageObj.msg
ImageObjects.msg
ImageObjTracked.msg
ImageObjRanged.msg
ImageRect.msg
ImageRectRanged.msg
DetectedObject.msg
DetectedObjectArray.msg
TrafficLightResult.msg
TrafficLight.msg
TrafficLightResultArray.msg
ImageLaneObjects.msg
ecu.msg
)
此外还要在generate_messages中添加标准消息格式
generate_messages(
DEPENDENCIES
std_msgs
sensor_msgs
geometry_msgs
)
编译库和可执行文件时要添加add_dependencies
add_executable(rollout_generator_node
nodes/rollout_generator/rollout_generator_node.cpp
nodes/rollout_generator/rollout_generator.cpp
utils/utils.cpp)
target_link_libraries(rollout_generator_node ${catkin_LIBRARIES})
add_dependencies(rollout_generator_node ${PROJECT_NAME}_generate_messages_cpp)
在package.xml 中
<build_depend>message_generation</build_depend>\
<build_depend>message_runtime</build_depend>
<build_export_depend>message_generation</build_export_depend>
<build_export_depend>message_runtime</build_export_depend>
<exec_depend>message_generation</exec_depend>
<exec_depend>message_runtime</exec_depend>