uav_controller/spawn_uav.py API 参考

供多机示例读取状态、向统一控制话题发布指令的轻量封装。

  • 源码路径:uav_controller/scripts/uav_model_lib/spawn_uav.py
  • 本页函数/方法数:12
  • 行号对应本文档生成时采用的源码版本;源码调整后应重新生成本页。

阅读方式

本页用于快速检索签名与调用关系。核心控制和算法推导请先阅读“开发指南”中的对应章节。

uav.__init__

__init__(self, type='uav', uav_amount=1, uav_index=0)
  • 源码位置:第 17 行
  • 类别:初始化
  • 作用:初始化 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)
  • 源码位置:第 44 行
  • 类别:内部计算/辅助
  • 作用:创建该对象所需的 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)
  • 源码位置:第 94 行
  • 类别:内部计算/辅助
  • 作用:创建 MAVROS 设定值或统一控制话题发布者。
  • 主要调用rospy.Publisher
  • 写入状态self.att_control_pub, self.vel_control_pub

uav.control_send

control_send(self, cmd, cmd_type)
  • 源码位置:第 106 行
  • 类别:控制接口
  • 作用:把上层数组封装成速度 Vector3 或姿态 Float64MultiArray,并发布到统一控制话题。
  • 主要调用Float64MultiArray, ValueError, Vector3, self.att_control_pub.publish, self.vel_control_pub.publish
  • 写入状态:不直接写入对象属性

uav.local_pose_cb

local_pose_cb(self, data)
  • 源码位置:第 120 行
  • 类别:ROS 回调
  • 作用:读取位姿消息并更新位置与四元数姿态缓存。
  • 主要调用:无显式函数调用
  • 写入状态self.local_pose, self.orientation

uav.global_pose_cb

global_pose_cb(self, data)
  • 源码位置:第 134 行
  • 类别:ROS 回调
  • 作用:读取 NavSatFix 消息并更新经纬度和高度缓存。
  • 主要调用:无显式函数调用
  • 写入状态self.global_pose

uav.gazebo_pose_cb

gazebo_pose_cb(self, data)
  • 源码位置:第 142 行
  • 类别:ROS 回调
  • 作用:源码内部辅助函数;结合签名、状态写入和主要调用可定位其在调用链中的职责。
  • 主要调用:无显式函数调用
  • 写入状态self.gazebo_orientation, self.gazebo_pose

uav.local_vel_cb

local_vel_cb(self, data)
  • 源码位置:第 151 行
  • 类别:ROS 回调
  • 作用:读取速度消息并更新对应坐标系下的速度缓存。
  • 主要调用:无显式函数调用
  • 写入状态self.local_vel

uav.global_vel_cb

global_vel_cb(self, data)
  • 源码位置:第 159 行
  • 类别:ROS 回调
  • 作用:读取速度消息并更新对应坐标系下的速度缓存。
  • 主要调用:无显式函数调用
  • 写入状态self.global_vel

uav.body_vel_cb

body_vel_cb(self, data)
  • 源码位置:第 167 行
  • 类别:ROS 回调
  • 作用:读取速度消息并更新对应坐标系下的速度缓存。
  • 主要调用:无显式函数调用
  • 写入状态self.body_vel

uav.acc_cb

acc_cb(self, data)
  • 源码位置:第 175 行
  • 类别:ROS 回调
  • 作用:读取 IMU 加速度并根据姿态转换到全局坐标系,同时扣除重力项。
  • 主要调用np.dot, quaternion_matrix
  • 写入状态self.body_acc, self.global_acc

uav.state_cb

state_cb(self, data)
  • 源码位置:第 189 行
  • 类别:ROS 回调
  • 作用:读取 MAVROS 状态消息并更新解锁或飞行模式状态。
  • 主要调用:无显式函数调用
  • 写入状态self.state