无人机实战入门——仿真篇

python---------airsim-----------ue4

使用python编写控制代码

使用airsim进行通信(ros)

ue4作为仿真环境

一,仿真环境下载

即ue4,ue4是强大的游戏引擎,可以建造逼真的模拟世界,并且有逼真的物理反馈。

首先下载epic启动器,在启动器内的虚幻引擎中,选择下载ue4.3

二,airsim配置

airsim最初是虚幻引擎的插件,也相当于一个用于无人机等控制的通信的强大的库。

下载好airsim源码后,编译生成的airsim/unreal/plugins用于和环境通信,获取环境中无人机的位置速度等。

现在实现了  无人机------->环境-------->airsim,即把无人机放在仿真环境中,仿真的数据给到了airsim。

三,python控制

现在使用python实现拿到airsim的数据,并且把控制指令发给airsim,airsim再控制仿真环境里的无人机飞行。即airsim-------->python代码-------->airsim-------->无人机

conda环境配置好后,简单的几行代码就与airsim建立起了通信

# 1,连接airsim
 client = airsim.MultirotorClient()
 client.confirmConnection()
 ​
 # 2,取得控制
 client.enableApiControl(True)
 client.armDisarm(True)
 ​
 # 3,起飞
 client.takeoffAsync().join()

client是客户端的意思,可以理解为建立了一个名为client的客户端对象,用于接收环境作为发布者的数据,airsim则是中间通信的桥梁。

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

通过这两句可以感受到client如何作为发布者,发布数据给环境控制无人机飞行。当然还有速度等的控制指令,都十分简单易懂。而位置控制也就是这么单纯,给出你想要的位置或速度,一个函数就可以直接控制

接下来是图像部分,通过airsim获取图像

responses = client.simGetImages([
     # png format
     airsim.ImageRequest(0, airsim.ImageType.Scene, pixels_as_float=False, compress=True),
     # uncompressed RGB array bytes
     airsim.ImageRequest(0, airsim.ImageType.Scene, pixels_as_float=False, compress=False),
     # floating point uncompressed image
     airsim.ImageRequest(0, airsim.ImageType.DepthPlanar, pixels_as_float=True)])

同样的,client.simGetImages()直接返回数据给responses,并且除了rgb图还有深度图,视差图。获得的数据一般使用opencv进一步处理。

四,ros

(不包含如何通过ros发布airsim的消息)

相当于airsim-----ros-------python代码

我不是很明白为什么要再塞一个ros,明明可以直接通过airsim发布接收数据。(大概是因为实践的时候,实际的通信是靠ros进行,即真实的无人机飞控-------ros--------代码,这里airsim扮演了一下飞控?)

由于是偏向实践,ros没有那么简单的封装。需要先建立一个节点,自定义消息类型,发布消息,接收消息。并且由于底层是c++,环境配置也更繁琐。

节点相当于一个中间商,发布者和接收者连接到同一个中间商之后就可以正常通信了。自定义消息类型相当于自己封装了一种消息,这样发布者和接收者能直接用同一个msg / srv保证不出错。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 对于无法连接到服务器的问题,你可以尝试以下方法: 1. 确认网络连接是否正常,检查你的网络设置是否正确。 2. 检查防火墙设置,防火墙可能会阻止程序连接到服务器。 3. 尝试使用其他网络连接,如移动数据或其他Wi-Fi网络。 对于无法进入RTK的问题,可能是由于以下原因导致: 1. GPS信号不稳定,需要移动到开阔地区或更换位置。 2. 设备连接问题,检查连接线是否松动或者设备是否正常开启。 3. RTK基站信号不稳定,需要更换基站位置或者重新设置。 你可以根据以上方法逐一排查问题并解决。如果问题依然存在,建议联系相关技术支持人员进行处理。 ### 回答2: 如果你的P204G飞行控制系统显示无法连接到服务器,或者无法进入RTK(实时运行系统),你可以尝试以下解决方法: 1. 确保网络连接正常:首先,检查无人机所连接的网络是否正常工作。确保Wi-Fi或数据连接正常,没有任何限制或故障。如果网络有问题,尝试重新连接或更换网络。 2. 重启设备:有时候,重新启动无人机和控制设备可能会解决连接问题。关机并重新启动无人机和相关设备,然后尝试重新连接服务器或进入RTK。 3. 更新软件和固件:检查你的无人机控制系统和相关设备是否有更新的软件和固件可用。如果有,及时更新它们。更新可能包含修复了连接问题的修复程序。 4. 重置设置:如果以上方法都无效,尝试重置无人机的设置。一些错误设置可能会导致连接问题。在重置之前,确保你记住了所有重要设置,并备份了必要的数据。 5. 联系技术支持:如果你尝试了上述方法后仍然无法解决问题,最好联系无人机制造商或技术支持团队以寻求帮助。他们可能会提供进一步的指导或为你解决连接问题。 请记住,在尝试任何解决方法之前,确保你详细阅读并遵循无人机控制系统的用户手册和相关指南。遵循正确的步骤和注意事项可以帮助你解决问题,并确保你的操作安全。 ### 回答3: 如果P204G显示无法连接到服务器,并且无法进入RTK模式,可能由以下原因引起: 1. 信号干扰:无线信号干扰可能导致设备无法连接到服务器。可以尝试将无人机移至信号强度更好的地方,并确保周围没有其他干扰设备。 2. 网络设置错误:请确保设备的网络设置正确无误。检查设备的网络连接,确保连接到正确的无线网络,并且网络密码输入正确。 3. GPS信号问题:RTK模式需要稳定和精确的GPS信号。检查附近的GPS信号环境,确保没有阻挡物遮挡信号。 4. 软件更新:检查设备的固件和软件版本,确保它们是最新的。有时,旧的软件版本可能会导致无法连接到服务器或进入RTK模式的问题。 为解决这个问题,可以采取以下步骤: 1. 重新启动设备:尝试重新启动设备,这可能会修复短暂的软件故障或网络问题。 2. 更新软件:检查设备的官方网站或应用商店,下载最新的软件版本,并按照说明进行更新。 3. 重置网络设置:如果网络设置不正确,可以尝试重置设备的网络设置,并重新连接到正确的无线网络。 4. 检查无线信号:移至信号更强的地方,避免周围的无线信号干扰。 如果以上方法无效,还可以尝试联系设备制造商或售后支持团队,寻求他们的帮助和建议。他们可能会提供更具体的解决方案或建议您将设备送修。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值