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 - 写入状态:不直接写入对象属性