single_demo/spawn_uav.py API 参考¶
单机算法读取 MAVROS 与 Gazebo 状态、发送速度/姿态命令的主要开发接口。
- 源码路径:
single_demo/scripts/uav_lib/spawn_uav.py - 本页函数/方法数:12
- 行号对应本文档生成时采用的源码版本;源码调整后应重新生成本页。
阅读方式
本页用于快速检索签名与调用关系。核心控制和算法推导请先阅读“开发指南”中的对应章节。
uav.__init__¶
__init__(self, type='uav', uav_amount=1, uav_index=0)
- 源码位置:第 14 行
- 类别:初始化
- 作用:初始化
uav的参数、状态缓存以及所需的通信或算法对象。 - 主要调用:
State,self.mavros_publisher,self.mavros_subscriber,str - 写入状态:
self.armed,self.avoid,self.body_acc,self.body_vel,self.gazebo_orientation,self.gazebo_pose,self.global_acc,self.global_pose,self.global_vel,self.index,self.local_pose,self.local_vel,self.orientation,self.state,self.topic_form,self.type
uav.mavros_subscriber¶
mavros_subscriber(self)
- 源码位置:第 37 行
- 类别:内部计算/辅助
- 作用:创建该对象所需的 MAVROS、真值和控制话题订阅者。
- 主要调用:
rospy.Subscriber - 写入状态:
self.acc_sub,self.body_vel_sub,self.gazebo_pose_sub,self.global_pose_sub,self.global_vel_sub,self.local_pose_sub,self.local_vel_sub,self.uav_state_sub
uav.mavros_publisher¶
mavros_publisher(self)
- 源码位置:第 87 行
- 类别:内部计算/辅助
- 作用:创建 MAVROS 设定值或统一控制话题发布者。
- 主要调用:
rospy.Publisher - 写入状态:
self.att_control_pub,self.vel_control_pub
uav.control_send¶
control_send(self, cmd, cmd_type)
- 源码位置:第 99 行
- 类别:控制接口
- 作用:把上层数组封装成速度 Vector3 或姿态 Float64MultiArray,并发布到统一控制话题。
- 主要调用:
Float64MultiArray,ValueError,Vector3,self.att_control_pub.publish,self.vel_control_pub.publish - 写入状态:不直接写入对象属性
uav.local_pose_cb¶
local_pose_cb(self, data)
- 源码位置:第 113 行
- 类别:ROS 回调
- 作用:读取位姿消息并更新位置与四元数姿态缓存。
- 主要调用:无显式函数调用
- 写入状态:
self.local_pose,self.orientation
uav.global_pose_cb¶
global_pose_cb(self, data)
- 源码位置:第 127 行
- 类别:ROS 回调
- 作用:读取 NavSatFix 消息并更新经纬度和高度缓存。
- 主要调用:无显式函数调用
- 写入状态:
self.global_pose
uav.gazebo_pose_cb¶
gazebo_pose_cb(self, data)
- 源码位置:第 135 行
- 类别:ROS 回调
- 作用:源码内部辅助函数;结合签名、状态写入和主要调用可定位其在调用链中的职责。
- 主要调用:无显式函数调用
- 写入状态:
self.gazebo_orientation,self.gazebo_pose
uav.local_vel_cb¶
local_vel_cb(self, data)
- 源码位置:第 144 行
- 类别:ROS 回调
- 作用:读取速度消息并更新对应坐标系下的速度缓存。
- 主要调用:无显式函数调用
- 写入状态:
self.local_vel
uav.global_vel_cb¶
global_vel_cb(self, data)
- 源码位置:第 152 行
- 类别:ROS 回调
- 作用:读取速度消息并更新对应坐标系下的速度缓存。
- 主要调用:无显式函数调用
- 写入状态:
self.global_vel
uav.body_vel_cb¶
body_vel_cb(self, data)
- 源码位置:第 160 行
- 类别:ROS 回调
- 作用:读取速度消息并更新对应坐标系下的速度缓存。
- 主要调用:无显式函数调用
- 写入状态:
self.body_vel
uav.acc_cb¶
acc_cb(self, data)
- 源码位置:第 168 行
- 类别:ROS 回调
- 作用:读取 IMU 加速度并根据姿态转换到全局坐标系,同时扣除重力项。
- 主要调用:
np.dot,quaternion_matrix - 写入状态:
self.body_acc,self.global_acc
uav.state_cb¶
state_cb(self, data)
- 源码位置:第 182 行
- 类别:ROS 回调
- 作用:读取 MAVROS 状态消息并更新解锁或飞行模式状态。
- 主要调用:无显式函数调用
- 写入状态:
self.state