follower_uav.py API 参考

跟随者 ROS 集成:订阅领航信息并计算编队控制量。

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

阅读方式

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

FollowUAV.__init__

__init__(self, start_pos, offset)
  • 源码位置:第 22 行
  • 类别:初始化
  • 作用:初始化 FollowUAV 的参数、状态缓存以及所需的通信或算法对象。
  • 主要调用__init__, np.zeros, rospy.Subscriber, super, time.time
  • 写入状态self.leader_p, self.leader_p_sub, self.leader_p_sub_time, self.leader_roll, self.leader_roll_sub, self.leader_v, self.leader_v_sub, self.pose, self.vel

FollowUAV.LeaderPCB

LeaderPCB(self, msg)
  • 源码位置:第 38 行
  • 类别:ROS 回调
  • 作用:源码内部辅助函数;结合签名、状态写入和主要调用可定位其在调用链中的职责。
  • 主要调用np.array, time.time
  • 写入状态self.leader_p, self.leader_p_sub_time

FollowUAV.LeaderVCB

LeaderVCB(self, msg)
  • 源码位置:第 42 行
  • 类别:ROS 回调
  • 作用:源码内部辅助函数;结合签名、状态写入和主要调用可定位其在调用链中的职责。
  • 主要调用np.array
  • 写入状态self.leader_v

FollowUAV.LeaderRollCB

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

FollowUAV.Acal

Acal(self)
  • 源码位置:第 48 行
  • 类别:内部计算/辅助
  • 作用:根据当前状态与期望状态计算二维加速度控制量,并执行加速度/速度边界处理。
  • 主要调用Acal, np.array, np.tan, super
  • 写入状态:不直接写入对象属性

FollowUAV.OriCal

OriCal(self)
  • 源码位置:第 54 行
  • 类别:内部计算/辅助
  • 作用:调用加速度控制器并转换为偏航、滚转和轴向加速度指令。
  • 主要调用np.arctan2, np.array, np.linalg.norm, self.Acal, self.AngleCal
  • 写入状态:不直接写入对象属性

FollowUAV.PitchCal

PitchCal(self, d_h)
  • 源码位置:第 63 行
  • 类别:内部计算/辅助
  • 作用:根据期望高度变化率与水平速度计算俯仰角。
  • 主要调用np.arctan2, np.linalg.norm
  • 写入状态:不直接写入对象属性

FollowUAV.StatusUpdate

StatusUpdate(self, self_p, self_v)
  • 源码位置:第 68 行
  • 类别:内部计算/辅助
  • 作用:更新控制器内部状态;离线基类还会按双积分模型推进状态。
  • 主要调用np.array, np.copy
  • 写入状态self.pose, self.status, self.vel