AIrsim代码解析(二)

hello drone.py

Airsim 提供的这个文件可供初学者进行学习,小洛进行代码调试后,得到以下几部分信息

MultirotorState

信息如下(不同的颜色主要用于区分信息):
在这里插入图片描述
主要分为以上几个部分:state的信息为强化学习中状态的输入基础,必须要了解其中UAV的状态。下面为hellodrone中的部分代码:

'''hello drone代码分析'''
import setup_path
import airsim
import numpy as np
import os
import tempfile
import pprint
import cv2

'''连接airsim环境'''
Client=airsim.MultirotorClient()
Client.confirmConnection()
Client.enableApiControl(True)
'''解除之前的操作'''
Client.armDisarm(True)

state=Client.getMultirotorState()
s=pprint.pformat(state)
print("state= ",state)

IMU_data

在这里插入图片描述

barometer_data(气压数据)

在这里插入图片描述

Gpsdata

在这里插入图片描述

magnetometer_data

在这里插入图片描述
hello_drone介绍完上述信息后,通过如下代码进行起飞的操作:

'''wait_key函数不知怎么不能使用,只能将其注释掉,完成takeoff的操作,后续代码的该函数也注释掉正常运行'''
'''airsim.wait_key('Press any key to takeoff')'''
client.takeoffAsync().join()
'''将UAV以5m/s的速度移动到(-10,10,-10)'''
Client.moveToPositionAsync(-10,10,-10,5).join()
'''悬停'''
Client.hoverAsync().join()
'''查看state变化情况'''
state=Client.getMultirotorState()
print(pprint.pformat(state))
'''可获得位置坐标'''
position=state.kinematics_estimated.position
print(pprint.pformat(position))

通过上述语句可获得当前的位置坐标:
在这里插入图片描述
将无人机运动过程中的图片进行存储

cameraType = "depth"
cameraTypeMap = {
 "depth": airsim.ImageType.DepthVis,
 "segmentation": airsim.ImageType.Segmentation,
 "seg": airsim.ImageType.Segmentation,
 "scene": airsim.ImageType.Scene,
 "disparity": airsim.ImageType.DisparityNormalized,
 "normals": airsim.ImageType.SurfaceNormals
}
rawImage = Client.simGetImage("0", cameraTypeMap[cameraType])
png = cv2.imdecode(airsim.string_to_uint8_array(rawImage), cv2.IMREAD_UNCHANGED)
cv2.imshow("Depth", png)
filepath='image/1.png'
cv2.imwrite(filepath,png)

到这hello_drone.py代码解析结束了,主要学习了如何实现UAV的takeoff、到达指定位置函数、获取当前状态、存储各种类型的图片,希望对大家有帮助!

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值