【airsim】python控制airsim

使用airsim 1.8.1编译完成,进过block项目在cpp测试后,开始踩坑使用python。

使用AirSim\PythonClient\setup.py或者pip安装airsim。

python setup.py install

或者

pip install airsim

此时,windows电脑的环境信息

(air_py38) D:\code\Github_code\AirSim\PythonClient\multirotor>conda list
# packages in environment at C:\conda\envs\air_py38:
#
# Name                    Version                   Build  Channel
airsim                    1.8.1                    pypi_0    pypi
ca-certificates           2023.12.12           haa95532_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
libffi                    3.4.4                hd77b12b_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
msgpack-python            0.5.6                    pypi_0    pypi
msgpack-rpc-python        0.4.1                    pypi_0    pypi
numpy                     1.24.4                   pypi_0    pypi
opencv-contrib-python     4.9.0.80                 pypi_0    pypi
openssl                   3.0.12               h2bbff1b_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
pip                       23.3.1           py38haa95532_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
python                    3.8.18               h1aa4202_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
setuptools                68.2.2           py38haa95532_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
sqlite                    3.41.2               h2bbff1b_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
tornado                   4.5.3                    pypi_0    pypi
vc                        14.2                 h21ff451_1    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
vs2015_runtime            14.27.29016          h5e58377_2    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
wheel                     0.41.2           py38haa95532_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

python调用教程

官方demo

打开一个环境,临时编译和二进制版本均可。注意和pip版本匹配。否则报错:

WARNING:tornado.general:Connect error on fd 328: WSAECONNREFUSED

然后可以运行AirSim\PythonClient\multirotor中的测试代码。

在这里插入图片描述

 D:\code\Github_code\AirSim\PythonClient\multirotor 的目录

2024/01/06  19:38    <DIR>          .
2024/01/06  19:38    <DIR>          ..
2024/01/06  11:48             1,882 add_drone.py
2024/01/06  11:48               124 arm.py
2024/01/06  11:48             1,826 box.py
2024/01/06  11:48               863 clock_speed.py
2024/01/06  11:48                97 disarm.py
2024/01/06  11:48             2,797 drone_lidar.py
2024/01/06  11:48               570 drone_stress_test.py
2024/01/06  11:48           331,108 Error.wav
2024/01/06  11:48             1,137 external_physics_engine.py
2024/01/06  11:48               858 gimbal.py
2024/01/06  11:48             3,127 hello_drone.py
2024/01/06  11:48             1,848 high_res_camera.py
2024/01/06  11:48             9,062 kinect_publisher.py
2024/01/06  11:48               404 land.py
2024/01/06  11:48               835 line_of_sight.py
2024/01/06  11:48               865 manual_mode_demo.py
2024/01/06  11:48             3,581 multi_agent_drone.py
2024/01/06  11:48             3,278 navigate.py
2024/01/06  11:48             2,229 opencv_show.py
2024/01/06  11:48            10,225 orbit.py
2024/01/06  11:48               135 params.txt
2024/01/06  11:48             1,785 path.py
2024/01/06  11:48               783 pause_continue_drone.py
2024/01/06  11:48             2,239 point_cloud.py
2024/01/06  11:48               455 reset_test_drone.py
2024/01/06  11:48             4,399 sensorframe_lidar_pointcloud.py
2024/01/06  11:48             1,822 setup_path.py
2024/01/06  11:48               772 set_fog.py
2024/01/06  11:48             1,109 set_trace_line.py
2024/01/06  11:48               791 set_wind.py
2024/01/06  11:48             1,158 speaker.py
2024/01/06  11:48             2,357 stability_test.py
2024/01/06  11:48               466 state.py
2024/01/06  11:48             3,878 survey.py
2024/01/06  11:48             1,196 takeoff.py
2024/01/06  11:48               396 teleport.py
2024/01/06  11:48             3,563 vehicleframe_lidar_pointcloud.py
2024/01/06  11:48             6,480 wav_reader.py

示例文件夹中的文件setup_path.py来检测airsim软件包在父文件夹中是否可用。这里,使用该软件包而不是pip安装软件包。

api

详见官方文档
或者查看https://zhuanlan.zhihu.com/p/507304210

计算机视觉API

AirSim在仿真启动时会自动读取 “C:\Users\用户名\Documents\AirSim” 文件夹下面的 “settings.json” 文件内容,并进行初始化设置。因此可以编辑 “settings.json” 文件。
“Multirotor”为无人机,“Car”为无人车

 "SimMode" :"ComputerVision"

AirSim提供全面的图像API,从多台相机中检索同步图像以及地面真值,包括深度、差异、表面法线和视觉。您可以在settings.json中设置分辨率、FOV、运动模糊等参数。还有用于检测碰撞状态的API。另请参阅生成指定数量的立体声图像和地面真值深度的完整代码,并归一化到相机平面,计算差异图像并将其保存为pfm格式。

更多关于图像API和计算机视觉模式的信息。对于可以从域随机化中受益的视觉问题,还有一个对象重构API,可以在支持的场景中使用。

天气API

默认情况下,所有天气效果都被禁用。要启用天气效应,请先致电:

simEnableWeather(True)

可以使用simSetWeatherParameter方法启用各种天气效果,例如,

client.simSetWeatherParameter(airsim.WeatherParameter.Rain, 0.25);

第二个参数值从0到1。第一个参数提供了以下选项:

class WeatherParameter:
    Rain = 0
    Roadwetness = 1
    Snow = 2
    RoadSnow = 3
    MapleLeaf = 4
    RoadLeaf = 5
    Dust = 6
    Fog = 7

请注意,Roadwetness、RoadSnow和RoadLeaf效果需要为您的场景添加材料。

记录API

记录API可用于通过API开始记录数据。可以使用设置指定要记录的数据。要开始录制,请使用-

client.startRecording()

同样,要停止录制,请使用client.stopRecording()要检查录音是否正在运行,请调用client.isRecording()返回一个bool。

此API与使用R按钮切换记录一起工作,因此,如果使用R键启用,isRecording()将返回True,并且可以使用stopRecording()通过API停止记录。同样,如果在Viewport中按下R键,则使用API开始的录制将停止。如果使用API开始或停止录制,LogMessage也将出现在视口的左上角。

请注意,这只会保存设置中指定的数据。为了完全自由地存储数据,如某些传感器信息,或以不同的格式或布局,请使用其他API获取数据并根据需要保存。有关如何修改正在记录的运动学数据的详细信息,请查看修改记录数据。

BUG合集

基础测试代码报错。

setup_path.py用于测试airsim安装有没有成功。

(air_py38) D:\code\Github_code\AirSim\PythonClient\multirotor>python setup_path.py
WARNING:root:airsim module not found in parent folder. Using installed package (pip install airsim).

api报错没有 getMultirotorState

(air_py38) D:\code\Github_code\AirSim\PythonClient\multirotor>python survey.py
Connected!
Client Ver:1 (Min Req: 1), Server Ver:1 (Min Req: 1)

arming the drone...
Traceback (most recent call last):
  File "survey.py", line 99, in <module>
    nav.start()
  File "survey.py", line 22, in start
    landed = self.client.getMultirotorState().landed_state
  File "D:\code\Github_code\AirSim\PythonClient\airsim\client.py", line 1567, in getMultirotorState
    return MultirotorState.from_msgpack(self.client.call('getMultirotorState', vehicle_name))
  File "C:\conda\envs\air_py38\lib\site-packages\msgpackrpc\session.py", line 41, in call
    return self.send_request(method, args).get()
  File "C:\conda\envs\air_py38\lib\site-packages\msgpackrpc\future.py", line 45, in get
    raise error.RPCError(self._error)
msgpackrpc.error.RPCError: rpclib: server could not find function 'getMultirotorState' with argument count 1.

解决方法合集

  1. 推荐重新安装编译后版本
    安装windows的1.8.1,无效
  2. 使用setup安装

运行API时,虚幻卡顿

虚幻编辑器中的“编辑->编辑器首选项”,在“搜索”框中键入“CPU”,并确保“在后台使用更少的CPU”未选中。

Reference

https://microsoft.github.io/AirSim/apis/
  • 24
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AirSim是一个用于仿真和测试无人机系统的开源工具。它提供了Python API,使用户可以使用Python编写代码与AirSim进行通信和控制。在使用AirSimPython API之前,需要安装一些依赖项。 首先,根据引用\[1\]中的提示,安装opencv-contrib-python。这可以通过运行以下命令来完成: ``` pip install opencv-contrib-python ``` 请注意,编译opencv-contrib-python可能需要一些时间,并且可能会遇到一些错误。如果遇到`fatal error: boostdesc_bgm.i: No such file or directory`或`No module named skbuild`等错误,请确保您的环境正确设置,并尝试解决这些错误。 接下来,确保AirSim已经安装并运行。根据引用\[2\]中的描述,AirSim会在41451端口上监听需求。您可以使用Python程序通过msgpack序列化格式向该端口发送RPC包来与AirSim进行通信。 最后,根据引用\[3\]中提供的信息,确保您的AirSim版本与虚幻引擎版本、Visual Studio版本和Python版本兼容。当前的AirSim版本是v1.5.0,支持虚幻引擎4.26.2,使用Visual Studio Community 2019和Python 3.7。 通过安装必要的依赖项并确保版本兼容性,您应该能够使用AirSimPython API进行仿真和控制。 #### 引用[.reference_title] - *1* [强化学习系列文章(二十二):AirSim自动驾驶仿真平台及其Python API分析](https://blog.csdn.net/hhy_csdn/article/details/111871665)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Win10配置Airsim环境并设置Python通信](https://blog.csdn.net/qq1198768105/article/details/126450972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值