一些学习总结

本文详细介绍了ROS(RobotOperatingSystem)中的节点概念,从可执行文件、CMakeLists.txt配置、main()函数的初始化,到使用roslaunch启动节点、rqt_graph监控节点间通信,以及依赖管理的find_package和catkin_package方法。重点展示了如何通过CMake构建和管理包及其依赖关系。
摘要由CSDN通过智能技术生成

1、ROS节点是一个独立的运行实例;

可执行文件:一个节点对应于一个可执行文件,它通过编译ROS软件包得到,通过运行可执行文件启动和管理ROS节点。

main()函数里“ros::init(argc,argv,"hello");”会初始化ros节点,设置ROS系统的参数,并告诉ROS master(ROS主节点)有一个新节点“hello”加入。

CMakeLists.txt文件里 add_executable(hello_vscode_c src/hello_vscode_c.cpp)配置了一个名为“hello_vscode_c”的可执行文件,该文件源代码位于“ src/hello_vscode_c.cpp”。

target_link_libraries(hello_vscode_c ${catkin_LIBRARIES})用于将ROS节点与ROS库(catkin_LIBRARIES)链接在一起。

当你运行/启动一个ROS节点时,实际上是在运行相应的可执行文件(需要在命令行中运行生成的可执行文件(例如,./hello_vscode_c)),这将启动ROS节点并使其能够与其他节点通信。

#include <ros/ros.h>

int main(int argc, char** argv) {

    // 初始化ROS节点

    ros::init(argc, argv, "my_node");

    // 创建ROS节点

    ros::NodeHandle nh;

    // 执行节点功能...

    // 进入ROS循环

    ros::spin();

    return 0;

}

2、

node ---> 包含的某个节点

  • pkg -----> 功能包
  • type ----> 被运行的节点文件
  • name --> 为节点命名
  • output-> 设置日志的输出目标
  • 运行 launch 文件

roslaunch 包名 launch文件名

3、启动roslaunch并播放bag之后,终端运行:rqt_gragh,查看节点和话题之间的关系。

椭圆代表节点(main函数里面的),方框代表话题。计算图反映了所有运行的节点(错误),rqt_graph只会显示那些已经进行通信的节点。如果某个节点没有发布或订阅任何消息,它可能不会出现在rqt_graph中。

4、10HZ即每秒10次的频率。

5、CMakeLists.txt文件里find_package(Qt5)是找包配置文件(例如Qt5Config.cmake),这个配置文件里包含了包的具体信息,包括动态库文件的位置头文件的目录链接时需要开启的编译选项等等。

安装的包配置文件会自动放到 /usr/lib/cmake/XXX/XXXConfig.cmake 这个路径(其中XXX是包名)。

作用:find_package()把一整个依赖包的头文件包含路径、库路径、库名字、版本号等情况都获取到,后续只管用就好了。

“轻松搞定 CMake”系列之 find_package 用法详解_cmake find_package-CSDN博客

6、catkin_package中添加的包,必须在package.xml中指定依赖。

ROS CMakeLists.txt 中的 catkin_package 与 find_package_find_package 和catkin_package-CSDN博客

7、add_dependencies(free_space_proto ${catkin_EXPORTED_TARGETS})  

#为free_space_proto引入依赖,保证free_space_proto在构建之前这些依赖已经被构建.

cmake中add_dependencies的基本作用-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值