【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

详见官方文档

计算机视觉API

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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/297581.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JDBC数据库访问——数据库操作

与指定的数据库建立连接后&#xff0c;就可以使用JDBC提供的API对数据库进行操作&#xff0c;包括查询、新增、更新、删除等。 1.查询操作 和数据库建立连接后&#xff0c;对数据库表进行查询操作的步骤如下&#xff1a; ①创建statement对象 由已创建的Connection对象con调…

PID各种算法的基本优缺点

PID时间系数对PID本身的影响 积分时间过小积分作用增强。 微分时间过大&#xff0c;微分控制作用过强&#xff0c;容易产生振荡。 在这里的时间系统&#xff0c;一般指的是采样的时间&#xff0c;也就是PID控制的周期。在无人机当中一般采用10ms控制一次。 一般来说采样周期越小…

【Docker】容器的相关命令

上一篇&#xff1a;创建&#xff0c;查看&#xff0c;进入容器 https://blog.csdn.net/m0_67930426/article/details/135430093?spm1001.2014.3001.5502 目录 1. 关闭容器 2.启动容器 3.删除容器 4.查看容器的信息 查看容器 1. 关闭容器 从图上来看&#xff0c;容器 aa…

如何在 Xftp 中使用自定义编辑器编辑远程服务器文件

1、简介 很多时候我们使用 Xshell 远程登录linux服务器进行文本编辑&#xff0c;通过命令行窗口难以进行快速编辑&#xff0c;因此&#xff0c;借助 Xftp 工具&#xff0c;指定文本编辑器&#xff0c;能够快速帮助我们实现文本编辑。 2、Xftp 使用 在上文中&#xff08;https:…

软件工程概论------文件管理

目录 1.文件的相关概念 2.文件目录 3.位示图 4.索引文件 5.例题 1.文件的相关概念 文件:具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。 逻辑结构:有结构的记录式文件、无结构的流式文件。 物理结构: 连续结构、链接结构、索引结构、多个物理块的索引表。 …

乔布斯在斯坦福大学经典演讲

今天&#xff0c;很荣幸来到各位从世界上最好的学校之一毕业的毕业典礼上。我从来没从大学毕业过&#xff0c;说实话&#xff0c;这是我离大学毕业最近的一刻。 今天&#xff0c;我只说三个故事&#xff0c;不谈大道理&#xff0c;三个故事就好。 第一个故事&#xff0c;是关于…

【ChatGPT】提示设计的艺术:使用清晰的语法

探索清晰的语法如何使您能够将意图传达给语言模型&#xff0c;并帮助确保输出易于解析 All images were generated by Scott and Marco. 这是与Marco Tulio Ribeiro共同撰写的关于如何使用指导来控制大型语言模型&#xff08;LLM&#xff09;的系列文章的第一部分。我们将从基…

Spring中的工厂类ApplicationContext和BeanFactory

1.ApplicationContext ApplicationContext的实现类&#xff0c;如下图 ClassPathXmlApplicationContext&#xff1a;加载类路径下 Spring 的配置文件 FileSystemXmlApplicationContext&#xff1a;加载本地磁盘下 Spring 的配置文件 ApplicationContext由BeanFactory派生而…

标签函数 - 打造JavaScript组件

&#x1f4e2; 鸿蒙专栏&#xff1a;想学鸿蒙的&#xff0c;冲 &#x1f4e2; C语言专栏&#xff1a;想学C语言的&#xff0c;冲 &#x1f4e2; VUE专栏&#xff1a;想学VUE的&#xff0c;冲这里 &#x1f4e2; CSS专栏&#xff1a;想学CSS的&#xff0c;冲这里 &#x1f4…

计算机基础知识——校验码概述

目录 1 码距 2 奇偶校验 3 CRC循环冗余校验码 3.1 多项式 3.2 编码的组成 3.3 生成多项式 3.4 校验码的生成 4 海明校验码和恒比码 4.1 校验方程 4.2 恒比码 1 码距 码距是恒量一种编码方式的抗错误能力的一个指标。数字信息在传输和存取的过程中&#xff0c;由于…

权威认可!甄知科技猪齿鱼产品荣获信创产品评估证书

近日&#xff0c;依据《信息技术应用创新产品评估规范 第1部分&#xff1a;应用软件》&#xff08;T/SSIA 2001-2022&#xff09;&#xff0c;经过严格评估&#xff0c;甄知科技旗下自主研发的猪齿鱼数智化开发管理平台 V2.0.0&#xff0c;通过信创测试认证&#xff0c;获得上海…

Jmeter相关知识介绍

Jmeter 是Apache 组织开发的基于JAVA 的压力测试工具,用于对软件做压力测试,特别适合于WEB 应用测试(包括压力,接口测试) 今天简单介绍Jemeter的入门相关概念的理解 一、在安装目录下有一个Bin\Jmeter.bat 双击打开 打开之后是一个这样的界面 二、测试计划 1、添加和删…

基础语法(一)(1)

常量和表达式 在这里&#xff0c;我们可以把Python当成一个计算器&#xff0c;来进行一些算术运算 例如&#xff1a; print(1 2 - 3) print(1 2 * 3) print(1 2 / 3)注意&#xff1a; print是一个python内置的函数&#xff0c;这个稍后我们会进行介绍 可以使用-*/&…

java 音乐会售票平台系统Myeclipse开发mysql数据库struts2结构java编程计算机网页项目

一、源码特点 java 音乐会售票平台系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助struts2框架开发mvc模式&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发 环境为TOCAT7.0,Myeclipse8.5开发&#xff0c;数据…

揭开 JavaScript 作用域的神秘面纱(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Halcon计算最小外接矩形Smallest_rectangle2

Halcon计算最小外接矩形Smallest_rectangle2 该算子用于求最小外接矩形。该算子的原型如下&#xff1a; smallest _rectangle2 (Regions : : : Row, Column, Phi, Lengthl, Length2)其各参数的含义如下。 参数1&#xff1a;Regions 表示输入的区域。 参数2和3&#xff1a;Row…

如何通过HACS+Cpolar实现远程控制米家和HomeKit等智能家居设备

文章目录 基本条件一、下载HACS源码二、添加HACS集成三、绑定米家设备 ​ 上文介绍了如何实现群晖Docker部署HomeAssistant&#xff0c;通过内网穿透在户外控制家庭中枢。本文将介绍如何安装HACS插件商店&#xff0c;将米家&#xff0c;果家设备接入 Home Assistant。 基本条件…

Spring AI和Ollama

概述 Spring AI 不仅提供了与 OpenAI 进行API交互&#xff0c;同样支持与 Ollama 进行API交互。Ollama 是一个发布在GitHub上的项目&#xff0c;专为运行、创建和分享大型语言模型而设计&#xff0c;可以轻松地在本地启动和运行大型语言模型。 Docker环境安装Ollama 1.获取D…

python 模块搜索路径

前言 当我们import os的时候&#xff0c;Python解释器去哪找os模块呢&#xff1f;如果多处都有os模块&#xff0c;选择哪个os模块呢&#xff1f; 去哪找os模块&#xff1f; Python解释器不是很神奇&#xff0c;它会从以下2个地方找os模块 1、内置模块 sys.builtin_module_nam…

ROS-arbotix安装

方式一&#xff1a;命令行输入&#xff1a; sudo apt-get install ros-melodic-arbotix如果ROS为其他版本&#xff0c;可将melodic替换为对应版本。 方式二&#xff1a; 先从 github 下载源码&#xff0c;然后调用 catkin_make 编译 git clone https://github.com/vanadiumla…