此文为笔者在ROS使用过程中遇到的一些坑,查阅一些资料后得到的问题解决方案,有些是在编译文件中修改添加一些命令,所谓好记性不如烂笔头,将其整理记录如下。
读万卷书,不如行万里路。看完论文,还得从代码中去实践它的原理!
1、功能包生成msg
假设packageA要生成hello.msg,在ROS中是通过catkin来管理编译msg文件,产生相应的头文件,才能在代码里编译,在编译生成可执行文件是还要在CMakeLists.txt中添加命令add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS})
,
因为在编译生成可执行文件前要线确保生成msg的头文件,具体步骤如下:
- 在CMakeLists.txt中的find_package中添加message_generation
add_message_files( FILES hello.msg)
generate_messages( DEPENDENCIES std_msgs)
- `catkin_package(CATKIN_DEPENDS roscpp rospy std_msgs message_runtime)``
add_executable(${PROJECT_NAME}_node src/hello.cpp) target_link_libraries(${PROJECT_NAME}_node ${catkin_LIBR