Rotor_class.py API 参考

多旋翼状态订阅、自动起飞以及位置、速度、加速度设定值发布。

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

阅读方式

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

uav.__init__

__init__(self, type='rotor', uav_index=None)
  • 源码位置:第 28 行
  • 类别:初始化
  • 作用:初始化 uav 的参数、状态缓存以及所需的通信或算法对象。
  • 主要调用State, np.array, self.mavros_client, self.mavros_publisher, self.mavros_subscriber, str, time.time
  • 写入状态self.R_enu2ned, self.R_local2global, self.armed, self.avoid, self.body_acc, self.body_vel, self.control_mode, self.global_acc, self.global_pose, self.global_vel, self.gps_pose, self.index, self.local_pose, self.local_vel, self.mode, self.orientation, self.state, self.time_now, self.topic_form, self.type, self.velocity_sp

uav.mavros_subscriber

mavros_subscriber(self)
  • 源码位置:第 67 行
  • 类别:内部计算/辅助
  • 作用:创建该对象所需的 MAVROS、真值和控制话题订阅者。
  • 主要调用rospy.Subscriber
  • 写入状态self.acc_sub, self.body_vel_sub, self.global_vel_sub, self.gps_pose_sub, self.local_pose_sub, self.local_vel_sub, self.uav_state_sub, self.vel_control_sub

uav.mavros_publisher

mavros_publisher(self)
  • 源码位置:第 141 行
  • 类别:内部计算/辅助
  • 作用:创建 MAVROS 设定值或统一控制话题发布者。
  • 主要调用rospy.Publisher
  • 写入状态self.rotor_cmd_pub

uav.mavros_client

mavros_client(self)
  • 源码位置:第 165 行
  • 类别:内部计算/辅助
  • 作用:等待并创建解锁、模式、起飞或 VTOL 转换服务代理。
  • 主要调用rospy.ServiceProxy, rospy.wait_for_service
  • 写入状态self.arming_client, self.set_mode_client, self.takeoff_client

uav.local_pose_cb

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

uav.global_pose_cb

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

uav.local_vel_cb

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

uav.global_vel_cb

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

uav.body_vel_cb

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

uav.acc_cb

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

uav.state_cb

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

uav.vel_control_cb

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

uav.takeoff

takeoff(self, h=10.0)
  • 源码位置:第 279 行
  • 类别:飞行状态控制
  • 作用:源码内部辅助函数;结合签名、状态写入和主要调用可定位其在调用链中的职责。
  • 主要调用GeoidPGM, _egm96.height, rospy.logerr, rospy.loginfo, self.arming, self.takeoff_client, time.sleep
  • 写入状态:不直接写入对象属性

uav.arming

arming(self, should_arm)
  • 源码位置:第 312 行
  • 类别:飞行状态控制
  • 作用:arming vehicle
  • 主要调用rospy.logerr, rospy.loginfo, self.arming_client
  • 写入状态:不直接写入对象属性

uav.set_mode

set_mode(self, mode)
  • 源码位置:第 326 行
  • 类别:飞行状态控制
  • 作用:Set the mode of the vehicle.
  • 主要调用rospy.logerr, rospy.loginfo, rospy.logwarn, self.set_mode_client
  • 写入状态:不直接写入对象属性

uav.set_offboard

set_offboard(self)
  • 源码位置:第 342 行
  • 类别:飞行状态控制
  • 作用:Switch the vehicle to OFFBOARD mode.
  • 主要调用self.set_mode
  • 写入状态:不直接写入对象属性

uav.MotionControl

MotionControl(self, control_type, control_vector, control_force=0.6)
  • 源码位置:第 353 行
  • 类别:控制接口
  • 作用:按控制类型组装 MAVROS 设定值消息,并发布到 PX4。
  • 主要调用PositionTarget, np.arctan2, np.array, np.linalg.norm, rospy.logerr, self.rotor_cmd_pub.publish
  • 写入状态:不直接写入对象属性