Files
RflySimhighschool/基础编程/e11.基于MAVROS的无人机控制实验/code/Ros12OneUav.py
2025-07-25 17:04:14 +08:00

42 lines
1.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)