consensus_uav.py API 参考

一致性编队 ROS 集成:按图拓扑交换参考点并计算控制量。

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

阅读方式

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

ConsensusUAV.__init__

__init__(self, start_pos, desire_path, L, self_id, offset)
  • 源码位置:第 22 行
  • 类别:初始化
  • 作用:初始化 ConsensusUAV 的参数、状态缓存以及所需的通信或算法对象。
  • 主要调用__init__, int, np.shape, np.zeros, print, range, rospy.Publisher, rospy.Subscriber, self.subs.append, str
  • 写入状态self.consensus_data_pub, self.neighbor_msg, self.subs, self.time_start, self.uav_amount

ConsensusUAV.consensus_cb

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

ConsensusUAV.OriCal

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

ConsensusUAV.PitchCal

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

ConsensusUAV.StatusUpdate

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

CircleCommunicationMGenerate

CircleCommunicationMGenerate(uav_amount)
  • 源码位置:第 80 行
  • 类别:内部计算/辅助
  • 作用:生成环形双邻居通信拓扑对应的图拉普拉斯矩阵。
  • 主要调用np.eye, range
  • 写入状态:不直接写入对象属性