【rotors】多旋翼无人机仿真(一)

您所在的位置:网站首页 无人机模拟操控软件分类有哪些 【rotors】多旋翼无人机仿真(一)

【rotors】多旋翼无人机仿真(一)

2024-07-10 05:50| 来源: 网络整理| 查看: 265

【rotors】多旋翼无人机仿真(一)——搭建rotors仿真环境 【rotors】多旋翼无人机仿真(二)——设置飞行轨迹 【rotors】多旋翼无人机仿真(三)——SE3控制 【rotors】多旋翼无人机仿真(四)——参数补偿和PID控制 【rotors】多旋翼无人机仿真(五)——多无人机仿真

本贴内容参考两位博主的内容: 月照银海似蛟 Reed Liao

1、前言

无人机仿真主要分为两类:硬件在环仿真(HITL)和软件在环仿真(SITL全称Software in the loop)。

无人机软件在环仿真是指完全用计算机来模拟出无人机飞行时的状态,而硬件在环仿真是指计算机连接飞控板来测试飞控软件是否可以流畅运行。一般来说硬件在环仿真若没有加上真实的转台进行测试的话,其与软件在环仿真没有很大的区别。

在无须解决在研发过程中的硬件问题带来的麻烦,并且可以直观的调试代码,搭建一套无人机仿真系统,对于研发来说好处是数不剩数的。

2、rotors介绍

RotorS 是ETH(苏黎世联邦理工大学)研究团队开发的一个ROS包,GITHUB地址 提供了几种多旋翼仿真模型,例如

List itemAscTecHummingbirdAscTec PelicanAscTec Firefly

但是仿真系统不限于使用这几种模型

AscTec 是 德国Ascending Technologies公司的缩写。

是很早的无人机了,实物张下面这个样子: 在这里插入图片描述 仿真系统中包含很多种仿真传感器,都可以安装在无人机上,例如:

IMU里程计视觉惯导相机

功能包中包含了两种控制器,后面会详细介绍控制器的实现

3、rotors安装

rotors官网提供的配置教程是Ubuntu 16.04 with ROS Kinetic、Ubuntu 14.04 with ROS Indigo , 这里我的配置是Ubuntu 18.04 with ROS melodic 安装前已经安装好了ROS melodic和gazebo11(melodic默认安装的是gazebo9,但9不太稳定,升级为11了)

(1)安装依赖安装包

# 如果是其他ros版本就把melodic改为自己ros版本名字 sudo apt-get install ros-melodic-joy ros-melodic-octomap-ros python-wstool python-catkin-tools protobuf-compiler sudo apt-get install libgeographic-dev ros-melodic-geographic-msgs

(2)创建文件夹并初始化工作空间

mkdir -p ~/UAV_rotors/src cd ~/UAV_rotors/src catkin_init_workspace

(3)git下载rotors源码

cd ~/UAV_rotors/src git clone [email protected]:ethz-asl/rotors_simulator.git git clone [email protected]:ethz-asl/mav_comm.git git clone [email protected]:ethz-asl/glog_catkin.git git clone [email protected]:catkin/catkin_simple.git

注意这里git需要提前登录github账号并绑定自己电脑ssh,否则不能正常git,绑定方法参考这个

(4)编译源码

cd ~/UAV_rotors catkin init # 只需运行一次,后续如果修改源码重新编译不需要再执行 catkin build # 在.bashrc文件中添加环境变量 source ~/UAV_rotors/devel/setup.bash

编译一切正常会输出如下结果: 在这里插入图片描述 但不出意外的话,大家或多或少会报一些错误,下面是我编译过程中的遇到的错误(编译过程中优先解决编译错误地方,编译警告的先放着): 问题: 在这里插入图片描述 解决: 安装编译glog库,安装方法如下:

# 安装gflags git clone https://github.com/gflags/gflags.git cd gflags mkdir build && cd build cmake .. -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC .. make -j4 sudo make install # 安装glog git clone https://github.com/google/glog cd glog mkdir build && cd build cmake -DGFLAGS_NAMESPACE=google -DCMAKE_CXX_FLAGS=-fPIC -DBUILD_SHARED_LIBS=ON .. make -j4 sudo make install

如果编译安装过程中报错说cmake版本太低需要升级版本,可参考这个

(5)运行rotors rotors中有许多种机型,包括固定翼、多旋翼等,这里以四旋翼为例,进行仿真,在终端运行下面命令:

roslaunch rotors_gazebo mav_hovering_example.launch mav_name:=firefly world_name:=basic

执行之后,gazebo会自动启动,出现下面的画面,则表示大功告成: 在这里插入图片描述

4、launch文件说明

在~/UAV_rotors/src/rotors_simulator/rotors_gazebo/launch文件夹中有许多启动程序的launch文件,使用较多的有两个:mav_hovering_example.launch和mav_hovering_example_with_vi_sensor.launch,后者比前者多启动了深度摄像头传感器。

我们来看看mav_hovering_example_with_vi_sensor.launch:

launch文件中有两个比较重要的参数:一个是mav_name 无人机型号,这个可以在rotors_description/urdf文件夹下查看有那些无人机型号的建模文件;一个是world_name 仿真环境名字,这个可以在rotors_gazebo/worlds文件夹中查看,需要注意的是如果选择比较复杂的world_name 如 outdoor,仿真环境会加载gazebo官方的一些模型,如果你没有提前下载好这些模型,会导致gazebo打不开,因为此时gazebo正在联网下载这些模型,需要自己提前把官方的全部模型下载到gazebo中。

此外launch还加载了两个节点程序:lee_position_controller_node 、 hovering_example,前者就是无人机的控制节点,后者是给无人机发送轨迹点节点 , 后面会解释说明这两个节点。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3