Auterion PX4 VIO代码分析

也就是PX官方文档给的VIO代码,用的T265

也是之前在github里面搜PX4 T265搜到的

https://github.com/Auterion/VIO/blob/master/src/nodes/px4_realsense_bridge.cpp

 

 

这里写着发布里程计话题消息

这个函数的输入是里程计信息,我估计就是接受到里程计信息,然后发布里程计信息。(莫非是中间做 一定的格式上的转换?)

Auterion PX4 VIO代码分析_第1张图片

 

 

main函数是放在这个文件里,我不知道它为什么要这么弄

Auterion PX4 VIO代码分析_第2张图片

我看明白了,仔细看你会发现这部分就是标准的publisher节点的写法!!!!是的,你可以对比着古月的publisher代码去看,这就是标准写法,先init,然后nodehandle  后面的spin都是的,我现在也清楚为什么它要单独把这写成一个文件,为了让结构清晰,如果把另一个文件的内容全部塞进来,你再想看出这是个Publisher的程序就不容易了。

Auterion PX4 VIO代码分析_第3张图片

 

然后我们可以看到main函数里调用的是PX4_Realsense_Bridge(const ros::NodeHandle& nh)这个函数,我们去看这个文件里面,之前看到发布里程计信息的函数odomCallback(const nav_msgs::Odometry& msg)其实是在PX4_Realsense_Bridge(const ros::NodeHandle& nh)函数里作为一个subscriber的回调函数,也就是我弄成蓝色的,这样程序思路就很清晰了,就是以订阅接受到里程计信息,就发布一个里程计信息,直接把Publisher作为subscriber的回调函数。

Auterion PX4 VIO代码分析_第4张图片

 

t265_realsense_node.cpp里面总共三个函数,后两个函数都是被第一个函数调用的,第一个函数则是被mian函数调用的,第二个上面分析过了,第三个具体调用看这下面,第三个函数里面的while(ros::ok())是典型的publisher实现里面的代码。

Auterion PX4 VIO代码分析_第5张图片

Auterion PX4 VIO代码分析_第6张图片

 

你可能感兴趣的:(无人机-SLAM-T265,ROS)