GAAS的px4_mavros_run.py 代码分析
总体可以看出 px4_mavros_run.py 是非常关键的一个代码,不管是GPS下offboard控制还是SLAM下offboard控制都是用的这个文件,我去看了下这个文件里面出现了比如目标位置,当前位置,这可能就是真正弄清楚offboard的是会给飞控发送的到底是什么消息 这文件里面我还看到了NED ENU坐标系。
ZN无人机看出提供的代码文件里也是有GAAS的这个文件的 px4_mavros_run.py
他应该也是借助了GAAS已经封装好的一些东西来实现,本身GAAS讲课的老师说了很多东西已经给你弄好了,可以很方便地弄。
我可以去看看ZN无人机课程里有没有详细讲这段代码的。
这出出现了publish cur_target_pose,我觉得这个消息看名字应该是包含当前位置和目标位置信息,这个在这个文件里面多次出现!!!!!!
不对cur_target_pose好像就是当前目标位置
看72行的那个赋值
self.cur_target_pose = self.construct_target(0, 0, self.takeoff_height, self.current_heading)
其实就是把水平坐标(0,0) takeoff_height应该是起飞高度 current_heading应该是机头朝向, 这四个信息就可以完全确定一个无人机的位置和朝向了,应该就是期望的位置和朝向。
它的这段初始化代码应该包含了它所有的参数,可以看书,self.local_pose我觉得一个是当前位置,self.cur_target_pose我觉得应该是目标位置
hover是盘旋的一时,所以函数的处理就是把当前位置local_pose的信息直接赋给目标位置cur_target_pose,方向赋值当前方向current_heading也就是不变。
悬停如果就是把当前位置作为目标位置,这样不会产生累计便宜么,没有一个固定的全局目标位置么?
上面两个给 cur_target_pose 赋值都是用的construct_target()这个函数
降落则是把当前位置local_pose的X,Y赋给cur_target_pose,Z给赋值0.1,方向赋值当前方向也就是不变current_heading
当前的位置信息应该都是由接受到的信息得到,这个信息可能是传感器发出的,可能是比如摄像头SLAM后发出的。我是这么理解的。
callback是回调函数的意思
就是ROS接受到消息之后都会执行的一个回调函数,这也得益于之前看了ROS的基础课程,不然你怎么看得懂,再一次说明打基础的重要性。
python里面注释似乎就是两个三点
看了下这里面回调函数干的都是接受到信息之后把信息值赋给比如当前位置等等的。
这个文件里面所有的Publish subscriber 服务应该都写在这里了