【rotors】多旋翼无人机仿真(一)——搭建rotors仿真环境

这篇具有很好参考价值的文章主要介绍了【rotors】多旋翼无人机仿真(一)——搭建rotors仿真环境。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

1、前言

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

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

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

2、rotors介绍

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

  • List item
  • AscTec
  • Hummingbird
  • AscTec Pelican
  • AscTec Firefly

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

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

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

  • 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 git@github.com:ethz-asl/rotors_simulator.git
 git clone git@github.com:ethz-asl/mav_comm.git
 git clone git@github.com:ethz-asl/glog_catkin.git
 git clone git@github.com:catkin/catkin_simple.git

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

(4)编译源码

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

编译一切正常会输出如下结果:
rotors,无人机
但不出意外的话,大家或多或少会报一些错误,下面是我编译过程中的遇到的错误(编译过程中优先解决编译错误地方,编译警告的先放着):
问题:
rotors,无人机
解决:
安装编译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会自动启动,出现下面的画面,则表示大功告成:
rotors,无人机

4、launch文件说明

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

我们来看看mav_hovering_example_with_vi_sensor.launch

<!-- 启动无人机仿真,带深度摄像头传感器 -->
<!-- 参数: -->
<!-- mav_name:无人机类型,可以在rotors_description/urdf中查看型号-->
<!--           六翼无人机:firefly、neo11、neo9-->
<!--           四翼无人机:pelican、ardrone、asymmetric_quadrotor、hummingbird、iris-->
<!-- world_name:仿真环境,可选择worlds文件夹下的文件-->
<launch>
  <arg name="mav_name" default="firefly"/>
  <arg name="world_name" default="basic"/>
  <arg name="enable_logging" default="false" />
  <arg name="enable_ground_truth" default="true" />
  <arg name="log_file" default="$(arg mav_name)" />

  <env name="GAZEBO_MODEL_PATH" value="${GAZEBO_MODEL_PATH}:$(find rotors_gazebo)/models"/>
  <env name="GAZEBO_RESOURCE_PATH" value="${GAZEBO_RESOURCE_PATH}:$(find rotors_gazebo)/models"/>
  <!-- 启动gazebo -->
  <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="world_name" value="$(find rotors_gazebo)/worlds/$(arg world_name).world" />
    <!-- <arg name="debug" value="true"/> -->
    <arg name="paused" value="true"/>
    <!-- <arg name="gui" value="false"/> -->
    <!-- <arg name="verbose" value="true"/> -->
  </include>

  <group ns="$(arg mav_name)">
    <!-- 导入无人机模型 -->
    <include file="$(find rotors_gazebo)/launch/spawn_mav.launch">
      <arg name="mav_name" value="$(arg mav_name)" />
      <arg name="model" value="$(find rotors_description)/urdf/mav_with_vi_sensor.gazebo" />
      <arg name="enable_logging" value="$(arg enable_logging)" />
      <arg name="enable_ground_truth" value="$(arg enable_ground_truth)" />
      <arg name="log_file" value="$(arg log_file)"/>
    </include>
    <!-- 启动无人机控制节点 -->
    <node name="lee_position_controller_node" pkg="rotors_control" type="lee_position_controller_node" output="screen">
      <rosparam command="load" file="$(find rotors_gazebo)/resource/lee_controller_$(arg mav_name).yaml" />
      <rosparam command="load" file="$(find rotors_gazebo)/resource/$(arg mav_name).yaml" />
      <remap from="odometry" to="odometry_sensor1/odometry" />
    </node>
    <!-- 启动无人机轨迹控制命令节点 -->
    <node name="hovering_example" pkg="rotors_gazebo" type="hovering_example" output="screen"/>
    <!-- 启动仿真关节节点 -->
    <node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
    <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
  </group>
</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,前者就是无人机的控制节点,后者是给无人机发送轨迹点节点 , 后面会解释说明这两个节点。文章来源地址https://www.toymoban.com/news/detail-796168.html

到了这里,关于【rotors】多旋翼无人机仿真(一)——搭建rotors仿真环境的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【无人机】基于 ode45实现四旋翼无人机姿态仿真附Matlab代码

     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进, 代码获取、论文复现及科研仿真合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab完整代码及仿真定制内容点击👇 智能优化算法       神经网络预测       雷达通信    

    2024年02月03日
    浏览(105)
  • ubuntu搭建PX4无人机仿真环境(4) —— 仿真环境搭建

    前言 在搭建之前,需要把 ROS、MAVROS、QGC 等基础环境安装配置完成。大家可以参考我之前的教程 本次安装是以 px4 v1.13.2 为例。 我的配置如下: 虚拟机 Ubuntu 18.04 (运行内存 4G、硬盘内存 80G) 、ROS melodic 、最新版 QGC 建议安装之前可以先看看这个 👉 ubuntu搭建PX4无人机仿真环境

    2024年02月15日
    浏览(76)
  • 无人机|四旋翼运动动力学建模及位置控制仿真

    本文将实现对无人机动力学以及运动学的公式推导完成建模,该模型以电机转速为输入,以无人机的状态量为输出。并在此基础上实现位置控制,以期望位置作为输入,使用串级pid结合无人机模型生成控制指令并对无人机进行控制。 对于任意刚体运动,均可分解为转动和平动

    2024年04月11日
    浏览(46)
  • 基于EKF的四旋翼无人机姿态估计matlab仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB        卡尔曼滤波是一种高效率的递归滤波器(自回归滤波器),它能够从一系列的不完全包含噪声的测量中,估计动态系统的状态。这种滤波方法以它的发明者鲁道夫·E·卡尔曼(Rudolf E. Kalman)命名。卡尔曼最初提

    2023年04月23日
    浏览(89)
  • (最新)ubuntu搭建PX4无人机仿真环境(4) —— 仿真环境搭建

    前言 在搭建之前,需要把 ROS、MAVROS、QGC 等基础环境安装配置完成。大家可以参考我之前的教程 本次安装是以 px4 v1.13.2 为例。 我的配置如下: 虚拟机 Ubuntu 18.04 (运行内存 4G、硬盘内存 80G) 、ROS melodic 、最新版 QGC 建议安装之前可以先看看这个 👉 ubuntu搭建PX4无人机仿真环境

    2024年02月09日
    浏览(59)
  • 四旋翼无人机反步法控制器设计(含simulink仿真)

    反步法设计: 1.建立四旋翼无人机非线性模型: 2.位置环虚拟控制律及反步控制器设计: 3. 姿态解算  4.姿态环虚拟控制律及反步控制器设计:  5.搭建simulink,仿真结果如下:        

    2024年02月16日
    浏览(69)
  • m基于PID控制算法的四旋翼无人机飞行控制simulink仿真

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB   无人机采用常见的四旋翼无人飞行器,如图1所示。       PID 控制器,即控制器的控制方式为 P 比例调整, I 积分调整以及 D 微分调整三个部分构成, PID 控制器是目前为止应用最为广泛的控制方式。 PID 控制器具

    2023年04月22日
    浏览(79)
  • (最新)ubuntu搭建PX4无人机仿真环境(1) —— 概念介绍及环境建议

    搭建PX4仿真环境一个有挑战性的过程,如果没有一个有经验的人来带的话会走很多弯路。我在搭建PX4仿真环境的时候,不知道Linux、ROS、git,语言也只会一个C语言,没有任何无人机基础,纯小白一个,靠着自学与网上的各种教程,花了一两个月才搭好基本的仿真环境框架。我

    2024年02月08日
    浏览(62)
  • (最新)ubuntu搭建PX4无人机仿真环境(2) —— MAVROS安装

    MAVROS是一个ROS(Robot Operating System)软件包 , 有了它就可以让ROS与飞控通信。这次安装是以ubuntu 18.04 (ROS Melodic)为例,也适用于其他版本 。安装之前确保 ROS 安装成功,没安装的可以看我仿真系列教程。 (注:安装方式有二进制安装和源码安装两种方式,源码安装需要从Git

    2024年02月09日
    浏览(61)
  • ubuntu搭建PX4无人机仿真环境(3) —— ubuntu安装QGC地面站

    前言 QGC ( QGroundControl) 是一个开源地面站,基于QT开发的,有跨平台的功能。这次安装是基于Ubuntu 18.04,QGC v4.2.6 但也适用于其他ubuntu发行版,QGC 版本也可以自行选择,如果发现不行可以降版本。 搭建仿真环境系列教程 👇 ubuntu搭建PX4无人机仿真环境(1) —— 概念介绍 ubuntu搭

    2024年02月16日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包