ROS初学者常见问题

こ雲淡風輕ζ 提交于 2020-01-04 03:23:56

1. msg定义方式

在C++中,数组的定义一般是uint8 a[ ],在ros中定义topic所用的msg时,采用的是uint8 [ ] a;

2. ros包依赖的添加

在package.xml中添加包的依赖,所有者等信息,要严格按照模板进行,否则会出现报错。

3. CmakeLists.txt文件理解

单个功能包可以包含多个节点,多个节点都要配置自己的执行文件和参考库,每个节点智能存在一个main(),对于初学者可能经常注意不到。
  对于使用Roboware的同学来说,添加文件时显示的可执行文件、新的库文件是不同含义,可执行文件中需要包含main(),库文件作为参考,没有main()。
  
这是CmakeLists.txt中,对于节点的管理


add_executable(ipc_serial
  src/ipc_serial.cpp
)
add_dependencies(ipc_serial ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(ipc_serial
  ${catkin_LIBRARIES}
)

4. 回调函数调用

回调函数是否调用是通过spin()函数进行检查的,可以设置通过spin()一直检查回调,也可以通过以下方式以一定频率检查回调函数。

    ros::Rate loop_rate(100);
    while (ros::ok())
    {
        loop_rate.sleep();
        ros::spinOnce();
    }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!