查看: 1390|回复: 0

无人机仿真之搭建仿真平台-SITL、gazebo、ROS

[复制链接]

33

主题

842

帖子

1667

积分

金牌飞友

Rank: 6Rank: 6

积分
1667
飞币
816
注册时间
2017-9-28
发表于 2023-8-3 21:12:27 | 显示全部楼层 |阅读模式
无人机仿真之仿真平台搭建

前言

很早之前看到了宾夕法尼亚大学的多无人机协同作业视频,很赶兴趣,就想做一做无人机相关的实验,很多原因综合起来就没能开展(其实就是没钱买无人机?)

现在有一些好东西,让我这个穷逼也能玩玩无人机相关的一些实验,就是SITL和gazebo以及ROS,内容很多,具体细节参考?

主要的开源飞控有两个,APM和PX4,下面介绍两种飞控的仿真平台的安装步骤安装出现错误很正常,多查查资料错误就解决了。

ardupilot-SITL—APM飞控

安装

我是在Ubuntu16.04上安装的,可以参考安步骤参考链接:

https://ardupilot.org/dev/docs/building-setup-linux.html

也可以看下面的安装步骤,做了一下简单的翻译。其他平台(Windows和OSX)的安装步骤在上面的网址中也可以找到

首先下载项目源码(项目是开源的,前面讲到过)


    最后一步需要的时间较长,耐心等待即可

    然后是安装需要的依赖


无人机仿真之搭建仿真平台-SITL、gazebo、ROSw2.jpg

到这里无人机的仿真就可以做到了,下一步安装3D环境的仿真软件gazebo

然后就可以利用这个平台向真实的飞控写入需要的固件,当然淘宝买飞控的时候可能店家就会帮助写好飞控。当自己需要修改飞控固件的时候可以参考这个链接

不过这里做仿真还用不到向飞控写入固件,等以后买得起无人机再说吧

启动仿真

简单仿真

启动仿真的方式为执行一个Python脚本,加入参数,具体有哪些参数可在脚本后加-h参数获取,例如做一个简单的四旋翼无人机的仿真

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw3.jpg

这时候就会看到启动了一个控制终端,一个地图界面,类似下图这样,如果报错找不到文件,是装依赖环境的时候出错了,一般执行脚本安装依赖不会出错,如果一步一步安装依赖可能会出现这种情况,这时候将这个文件的目录加入到环境变量里即可

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw4.jpg

结合gazebo仿真软件的3D环境仿真

环境安装

也可以结合一些其他的仿真平台实现更好的视觉效果,比如连接gazebo仿真器实现3D环境下的无人机仿真

当然,前提是安装好了gazebo仿真软件,gazebo的安装步骤在下文中也有,可以参考

然后是安装插件,项目开发文档上讲的插件安装方式在物理Ubuntu主机上可能不会报错,我使用Ubuntu虚拟机安装总会报错,最后关闭了虚拟机的硬件加速后安装成功,相关命令如下:

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw5.jpg

然后就可以正常安装gazebo插件了(PS 如果使用物理主机,可以忽略上面步骤直接进行安装,如果出错再执行上面的步骤)

gazebo现在可用的有7、8、9三个版本,推荐使用7或8版本

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw6.jpg

然后是安装插件

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw7.jpg

安装完成后,将gazebo的相关文件加入环境变量中(后面会用到模型和环境文件)

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw8.jpg

打开终端配置文件后,将下面内容添加到文件末尾

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw9.jpg

到这里gazebo和插件就安装完成了,下面给出几个示例

示例

1.车辆仿真

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw10.jpg

2.四旋翼无人机仿真

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw11.jpg

3.飞机仿真

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw12.jpg

这是也可以使用地面站软件连接仿真平台,具体地面站软件很多,大家自行学习使用

多无人机仿真

多无人机仿真需要启动三次仿真脚本sim_vehicle.py,修改部分参数,如下:

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw13.jpg

并且需要修改gazebo加载的word(word简单来说就是一个场景,具体是什么含义可以参考gazebo的博文)

还有一个提示是这样说的,因为这部分我没有运行成功(其实当在gazebo中起飞无人机几秒后就会出现GPS故障而坠落,出错原因还未找到,博文最后介绍了禁用GPS的方法,没成功)

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw14.jpg

终端操作无人机的部分指令

在终端窗口可以输入指令控制无人机的飞行,如下:

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw15.jpg

当无人机处于guided模式下,在地图上点击右键可以出来菜单,在菜单里可以进行一些操作(设置飞到位置,高度,也可以绘制任务路线)

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw16.jpg

安装PX4框架–PX4飞控

首先是安装依赖,可以参考链接:

https://docs.px4.io/main/en/dev_setup/dev_env_linux_ubuntu

也可以看下面的步骤

第一步,使用户成为“拨出”组的成员:

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw17.jpg


    注销并再次登录(仅在新登录后进行更改)

    然后按下面的步骤进行



无人机仿真之搭建仿真平台-SITL、gazebo、ROSw18.jpg


    这个脚本会安装带有gazebo的PX4环境

    最好可以翻墙安装,一些文件不翻墙下载会非常非常慢

    安装完之后下载PX4项目源码


无人机仿真之搭建仿真平台-SITL、gazebo、ROSw19.jpg

仿真平台搭建完成后,可以试着跑一下

单个无人机模拟

参考jMAVSim模拟:

https://docs.px4.io/main/en/simulation/gazebo.html

参考gazebo模拟:

https://docs.px4.io/main/en/simulation/gazebo.html

使用JMAVSim进行多车辆仿真

参考链接:

https://docs.px4.io/main/en/simulation/multi_vehicle_jmavsim.html

使用jMAVSim进行多车辆仿真,它易于设置,可用于测试您的车辆是否可以起飞,飞行,降落并适应各种故障条件(例如GPS故障)。个人理解这只是用来测试地面站平台是否支持多无人机。

这是模拟运行PX4的多辆车辆的最简单方法。它适用于在QGroundControl(或Dronecode SDK等)中测试多车辆支持。带有Gazebo的多车模拟应该用于许多车辆的群体模拟,或用于测试仅由Gazebo支持的计算机视觉等功能。

带凉亭的多车模拟-需要安装ROS

参考链接:

https://docs.px4.io/main/en/simulation/multi-vehicle-simulation.html

mode文件的路径为(提示自己,可忽略)

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw20.jpg

给无人机添加摄像头-使用iris_fpv_cam模型-参考


    修改模型文件

    因为默认构建模型用的是模型文件-.xacro结尾的文件

    首先选择使用sdf文件进行模型构建


无人机仿真之搭建仿真平台-SITL、gazebo、ROSw21.jpg


    然后将launch文件中的vehicle参数修改为想要使用的无人机模型,无人机的所有

    模型的sdf文件在下面目录中



无人机仿真之搭建仿真平台-SITL、gazebo、ROSw22.jpg

运行roslaunch,通常会报错—px4无法找到iris_fpv_cam模型

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw23.jpg

安装ROS

参考链接:

https://huangwang.github.io/2019/05/10/Ubuntu16-04%E5%AE%89%E8%A3%85MAVROS/

这里安装ros最好安装全版本的,如果之前就安装了gazebo,先卸载掉,安装ROS自带的gazebo,网上有人说ROS自带的gazebo有错误,暂时使用正常,没发现有什么问题,读者发现了欢迎评论区交流

安装gazebo

Gazebo是一款3D动态模拟器,能够在复杂的室内和室外环境中准确有效地模拟机器人群。与游戏引擎提供高保真度的视觉模拟类似,Gazebo提供高保真度的物理模拟,其提供一整套传感器模型,以及对用户和程序非常友好的交互方式。

如果已经安装了完整版的ROS平台,就已经安装gazebo了

如果没有也可以直接使用命令安装

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw24.jpg


    进行安装

    上面的安装完成后,将gazebo的相关文件加入环境变量中(后面会用到模型和环境文件)


无人机仿真之搭建仿真平台-SITL、gazebo、ROSw25.jpg

打开终端配置文件后,将下面内容添加到文件末尾

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw26.jpg

修改参数-出现GPS故障时可参考

APM下GPS出现故障时,可参考以下操作,进行以下设置,更改飞控使用的卡曼滤波器:

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw27.jpg

重启后,再进行以下设置

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw28.jpg

在APM平台下禁用GPS在引导模式下无法通过自检。

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw29.jpg

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw30.jpg

《从零开发智能小车 • 古月&谦墨》

由古月居核心团队打造,将带领大家从零设计并开发一款智能小车,知识体系横跨结构、电气、嵌入式、ROS、人工智能等诸多领域,快速了解机器人设计的完整路径,掌握机器人开发的核心方法。

无人机仿真之搭建仿真平台-SITL、gazebo、ROSw31.jpg

(扫描二维码可查看课程详情)

点击阅读原文即可查看课程
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表