欢迎光临散文网 会员登陆 & 注册

AirSim无人机起飞降落、线性位置控制及速度控制代码

2023-05-22 17:25 作者:皮卡丘上大学啦  | 我要投稿

一、起飞降落代码

import airsim
# connect to the AirSim simulator
client = airsim.MultirotorClient()

client.confirmConnection()
# get control
client.enableApiControl(True)
# unlock
client.armDisarm(True)

# Async methods returns Future. Call join() to wait for task to complete.
client.takeoffAsync().join()
client.landAsync().join()

# lock
client.armDisarm(False)
# release control
client.enableApiControl(False)

二、位置控制代码

import airsim
import time

# connect to the AirSim simulator
client = airsim.MultirotorClient()
client.enableApiControl(True)   # get control
client.armDisarm(True)          # unlock
client.takeoffAsync().join()    # takeoff

# square flight
client.moveToZAsync(-3, 1).join()               # 上升到3m高度
client.moveToPositionAsync(5, 0, -3, 1).join()  # 飞到(5,0)点坐标
client.moveToPositionAsync(5, 5, -3, 1).join()  # 飞到(5,5)点坐标
client.moveToPositionAsync(0, 5, -3, 1).join()  # 飞到(0,5)点坐标
client.moveToPositionAsync(0, 0, -3, 1).join()  # 回到(0,0)点坐标

client.landAsync().join()       # land
client.armDisarm(False)         # lock
client.enableApiControl(False)  # release control

三、速度控制代码

import airsim
import time

client = airsim.MultirotorClient()  # connect to the AirSim simulator
client.enableApiControl(True)  # 获取控制权
client.armDisarm(True)  # 解锁
client.takeoffAsync().join()  # 第一阶段:起飞

client.moveToZAsync(-3, 1).join()  # 第二阶段:上升到3米高度

# 飞正方形
client.moveByVelocityZAsync(1, 0, -3, 5).join()  # 第三阶段:以1m/s速度向前飞5秒钟
client.moveByVelocityZAsync(0, 1, -3, 5).join()  # 第三阶段:以1m/s速度向右飞5秒钟
client.moveByVelocityZAsync(-1, 0, -3, 5).join()  # 第三阶段:以1m/s速度向后飞5秒钟
client.moveByVelocityZAsync(0, -1, -3, 5).join()  # 第三阶段:以1m/s速度向左飞5秒钟

# client.moveByVelocityZAsync(10, 0, -3, 5).join()  
# client.moveByVelocityZAsync(0, 10, -3, 5).join()  
# client.moveByVelocityZAsync(-10, 0, -3, 5).join() 
# client.moveByVelocityZAsync(0, -10, -3, 5).join()  


# 悬停 2 秒钟
client.hoverAsync().join()  # 第四阶段:悬停2秒钟
time.sleep(2)

client.landAsync().join()  # 第五阶段:降落
client.armDisarm(False)  # 上锁
client.enableApiControl(False)  # 释放控制权

AirSim无人机起飞降落、线性位置控制及速度控制代码的评论 (共 条)

分享到微博请遵守国家法律