Files
RflySimhighschool/基础编程/e11.基于MAVROS的无人机控制实验/code/Ros12OneUav.py

42 lines
1.1 KiB
Python
Raw Normal View History

2025-07-25 17:04:14 +08:00
import PX4MavCtrlV4ROS as PX4MavCtrl
import time
# 创建一个ROS控制实例针对飞机1
mav = PX4MavCtrl.PX4MavCtrler(CopterID=1)
time.sleep(1)
print('进入offboard并解锁')
mav.initOffboard()
time.sleep(1)
# 飞机起飞到0.1米前0.8米高
print('发送起飞命令')
mav.SendPosNED(0.1,0,-0.8)
time.sleep(10)
print('PosE',mav.uavPosNED)
print('VelE',mav.uavVelNED)
print('Euler',mav.uavAngEular)
print('Quaternion',mav.uavAngQuatern)
print('Rate',mav.uavAngRate)
time.sleep(1)
print('Start control.')
# 下面开始你的控制算法
# mav.SendPosNED(x,y,z,yaw) 发送期望位置点NED地球坐标系
# mav.SendVelNED(vx,vy,vz,yawrate) 发送速度NED地球坐标系
# mav.SendVelFRD(vx,vy,vz,yawrate) 发送速度FRD机体坐标系通常而言设定vx和yawrate即可前进速度和偏航速度。
# mav.SendPosVelNED(PosE=[0,0,0],VelE=[0,0,0],yaw,yawrate) 同时控制飞机位置和速度
# 下面仅展示使用SendVelFRD控制的例子会撞墙为正常现象
print('开始速度控制')
# 向前0.1m/s飞并缓慢调转方向
mav.SendVelFRD(0.1,0,0,0.05)