flightmare初探——简介与安装-程序员宅基地

技术标签: 无人机  RL  flightmare  无人机仿真软件  

一、基本介绍及官方网址链接

flightmare,是uzh组基于unity 3D, gazebo 做的仿真软件:
在这里插入图片描述

1. 效果视频:https://www.bilibili.com/video/BV1mf4y1Q7VD?from=search&seid=14905217311811133451

2. code:https://github.com/uzh-rpg/flightmare

3. flightmare 介绍视频:https://www.bilibili.com/video/BV16v411r7dB?from=search&seid=14905217311811133451

4. 官方document: https://flightmare.readthedocs.io/en/latest/

二、安装flightmare

可以先git clone 工程文件,找到以下路径:

/flightmare/docs/source/getting_started/

其中的quick_start.rst,其中简要介绍了安装的依赖与步骤。内容简洁摘要如下:

  1. git
sudo apt-get install git
   git config --global user.name "Your Name Here"
   git config --global user.email "Same Email as used for github"
   git config --global color.ui true
  1. Packages
apt-get update && apt-get install -y --no-install-recommends \
      build-essential \
      cmake \
      libzmqpp-dev \
      libopencv-dev 
  1. Python environment
  • To create an environment with python3.6
conda create --name ENVNAME python=3.6
  • Activate a named Conda environment
conda activate ENVNAME
  1. Install Flightmare
   git clone https://github.com/uzh-rpg/flightmare.git
  1. Add Environment Variable
echo "export FLIGHTMARE_PATH=~/Desktop/flightmare" >> ~/.bashrc
  source ~/.bashrc
  1. Install dependencies
 conda activate ENVNAME
   cd flightmare/
   pip install -r requirements.txt

其中不建议使用VCS,只有7个依赖,直接找到txt文件打开,git clone会比用VCS快

  1. Install Flighmare (flightlib)
cd flightmare/flightlib
   # it first compile the flightlib and then install it as a python package.
   pip install .
Install with ROS
  1. gazebo版本
  • ROS Melodic and newer: use Gazebo version 9.x sudo apt-get install gazebo9
  • ROS Kinetic and newer: use Gazebo version 7.x sudo apt-get install gazebo7
  • ROS Indigo: use Gazebo version 2.x sudo apt-get install gazebo2
  1. gagzebo 依赖
sudo apt-get install libgoogle-glog-dev protobuf-compiler ros-$ROS_DISTRO-octomap-msgs ros-$ROS_DISTRO-octomap-ros ros-$ROS_DISTRO-joy python-vcstool

  1. Get catkin tools
sudo apt-get install python-pip 
   sudo pip install catkin-tools
  1. Create a catkin workspace
cd
   mkdir -p catkin_ws/src
   cd catkin_ws
   catkin config --init --mkdirs --extend /opt/ros/$ROS_DISTRO --merge-devel --cmake-args -DCMAKE_BUILD_TYPE=Release
  1. Install Flightmare
  • git clone:
cd ~/catkin_ws/src
   git clone https://github.com/uzh-rpg/flightmare.git
  • 下载依赖:
vcs-import < flightmare/flightros/dependencies.yaml
  • build:
 catkin build
  • add source:
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
   echo "export FLIGHTMARE_PATH=~/catkin_ws/src/flightmare" >> ~/.bashrc
   source ~/.bashrc

安装的其他参考博客:
https://blog.csdn.net/ZNxiaobai/article/details/109687203?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.control

出现的报错:
/home/zzx/flightmare/src/flightmare/flightlib/include/flightlib/bridges/unity_bridge.hpp:19:10: fatal error: zmqpp/zmqpp.hpp: 没有那个文件或目录
 #include <zmqpp/zmqpp.hpp>

关于ZeroMQ:
ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需要的“传统”BSD套接字之上的一 层封装。

解决方法:
安装 zmqpp

git clone https://github.com/zeromq/libzmq.git
git checkout v4.3.3
cd libzmq && ./configure --prefix=/usr
make -j4 && sudo make install
测试:
roslaunch flightros rotors_gazebo.launch

三、关于安装Unity

简介

在flightmare的document中(链接:https://flightmare.readthedocs.io/en/latest/),查找“unity”,有需要的版本号和安装链接
在这里插入图片描述
unity需要安装两部分: editor +hub
unity下载中文网站:https://unity.cn/releases/full/2020
**unity hub **:( v2.0)
https://forum.unity.com/threads/unity-hub-v2-0-0-release.677485/
unity editor : Unity Editor Unity 2020.1.10
安装完hub后,可以在hub中下载editor
选择左侧的install, 选择版本。(在flightmare的官方document中推荐2020.2.10,在下载页面中unity推荐了2020.3,所以安装了这一版,经测试也可以使用。在官方document中提到也可以使用旧版的editor,只是需要放弃一些功能)
在这里插入图片描述

文章:Unity2020.1新功能探路:编辑器相关更新
https://www.bilibili.com/read/cv6474757/

安装:
  1. 在Unity.tar.xz的目录:
xz -d Unity.tar.xz
tar -xvf Unity.tar

两步分别得到 Unity.tar压缩包 以及 文件夹Editor

  1. 安装unityhub:
    右键运行UnityHub.AppImage文件, 如果运行不了尝试更改权限,加上可执行权限
chmod 744 文件名

在这里插入图片描述
保存第一步中的许可证,根据提示进行用户注册,进行人机验证后提交,进入邮箱点击相关邮件进行确认,在第二步中添加第一步中的许可证;再开启unity时则可以看到如下界面
在这里插入图片描述

最终测试

最终,运行roslaunch flightros rotors_gazebo.launch时可以得到:
在这里插入图片描述
在这里插入图片描述

quick_start.rst中的Run Flightmare(搬运,最后的roslaunch如前文)
  1. Run pip
    To use unity rendering, you need first download the binary from Releases and extract it into the flightrender folder.
    To enable unity for visualization, double click the extracted executable file RPG_Flightmare.x84-64 and then test a pre-trained controller.
conda activate ENVNAME
   cd /path/to/flightmare/flightrl
   pip install .
   cd examples
   python3 run_drone_control.py --train 0 --render 1
  1. Run ROS
 # The examples are by default not built.
   catkin build flightros -DBUILD_SAMPLES:=ON

   # Now you can run any example.  
   roslaunch flightros rotors_gazebo.launch
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hongliyu_lvliyu/article/details/117265658

智能推荐

zabbix短信告警oracle,zabbix 实现短信告警-程序员宅基地

文章浏览阅读402次。之前一直调用飞信接口发送告警信息,最近购买了第三方短信接口。所以准备使用接口发送告警。短信接口是基于https的摘要认证。https认证还是自己做的,调用接口的时候还需要load证书。感觉超级难用,不管那么多,先让它跑起来再说。废话不多说,先上代码。#!/usr/bin/envpython#coding:utf-8importrequestsfromrequests.authimport..._zabbix实现短信告警

soapui中文操作手册(四)----MOCK服务_soapui设置成中文-程序员宅基地

文章浏览阅读6.8k次,点赞2次,收藏12次。转载地址:http://www.cnblogs.com/zerotest/p/4670005.htmlWeb Service Mocking是武器库一个非常有用的工具。这是解决“如果没有Web服务如何创建针对性的Web服务测试”问题的办法。Web Service Mocking将在这里派上用场。它允许你实际的Web服务产生之前,创建近似或模拟的Web Service。在本教_soapui设置成中文

Swift 包管理器 (SPM):管理 iOS 中的依赖关系_ios spm-程序员宅基地

文章浏览阅读845次,点赞29次,收藏7次。Swift 包管理器 (SPM):管理 iOS 中的依赖关系_ios spm

SCI论文润色真有必要吗?-程序员宅基地

文章浏览阅读381次,点赞10次,收藏7次。总的来说,sci论文润色虽然不会改变论文的学术内容和贡献,但它能够显著的提升论文的质量和可读性,从而增加论文被接受和引用的机会。在论文投稿前都是需要润色的,特别是英文论文投稿,一定得靠谱。但如果是一些小问题,比如语法语句错误,专业言论不恰当,那么你的文章会在投稿过程中外审评定完以后,也会给你返修意见和修改机会。如果是新作者,或者是对自己的语言能力不那么自信,那么是很有必要的。其他人的视角可能会发现你忽略的错误或不清晰的表达,同时也可以提供有关论文结构和逻辑的反馈意见。关于SCI论文润色的常见方法。

Prometheus监控数据格式的学习-程序员宅基地

文章浏览阅读1.1k次,点赞33次,收藏9次。Prometheus 指标(metrics)的数据形式是一种简单的文本格式(容易通过 HTTP 协议被 Prometheus 服务器拉取)。每一行包含了一个指标的数据,通常包括指标名称、可选的一组标签以及指标的值。Prometheus 的指标数据可以有不同类型,如 Counter、Gauge、Histogram 和 Summary,它们的表示形式会有所不同。

数字图像处理(10): OpenCV 图像阈值化处理_binarization threshold-程序员宅基地

文章浏览阅读5.6k次,点赞26次,收藏43次。目录1 什么是阈值化-threshold()2 二进制阈值化3 反二进制阈值化4 截断阈值化5 反阈值化为06 阈值化为07 小结参考资料1 什么是阈值化-threshold()图像的二值化或阈值化 (Binarization)旨在提取图像中的目标物体,将背景以及噪声区分开来。通常会设定一个阈值,通过阈值将图像的像素划分为两类:大于阈值的..._binarization threshold

随便推点

使用安卓模拟器时提示关闭hyper-v_hyperv影响 模拟器-程序员宅基地

文章浏览阅读1.6w次。本电脑是宏碁传奇X,cpu是r7 5800u,显卡rtx3050;使用了雷电、mumu两款安卓模拟器,雷电启动报错g_bGuestPowerOff fastpipeapi.cpp:1161,使用了网上的所有方案都不行,包括开启VT(amd开启SVM),命令关闭hyper-v服务等;尝试mumu模拟器,安装时支持vt项检测不通过,后来发现mumu模拟器在amd的cpu上只支持32位版,换装32位版检测通过,但是只要打开模拟器就提示需要关闭hyper-v,我已经确认关闭后,启动依旧这样提示,查找了网上很_hyperv影响 模拟器

【大厂秘籍】系列 - Mysql索引详解-程序员宅基地

文章浏览阅读564次。MySQL官方对索引定义:是存储引擎用于快速查找记录的一种数据结构。需要额外开辟空间和数据维护工作。● 索引是物理数据页存储,在数据文件中(InnoDB,ibd文件),利用数据页(page)存储。● 索引可以加快检索速度,但是同时也会降低增删改操作速度,索引维护需要代价。

CSS实现当鼠标停留在一个元素上时,使得两个元素的样式发生改变_css鼠标悬浮修改其他元素样式-程序员宅基地

文章浏览阅读825次。使用兄弟选择器实现同时改变两个元素的样式_css鼠标悬浮修改其他元素样式

文献学习-40-基于可迁移性引导的多源模型自适应医学图像分割-程序员宅基地

文章浏览阅读4.8k次,点赞32次,收藏43次。香港中文大学袁奕萱教授团队提出了一种名为多源模型自适应 (MSMA) 的新型无监督域适应方法。MSMA 旨在仅利用预训练的源模型(而非源数据)将知识迁移到未标记的目标域,从而实现对目标域的有效分割。

(4)FPGA开发工具介绍(第1天)-程序员宅基地

文章浏览阅读8.8k次。(4)FPGA开发工具介绍(第1天)1 文章目录1)文章目录2)FPGA初级课程介绍3)FPGA初级课程架构4)FPGA开发工具介绍(第1天)5)技术交流6)参考资料2 FPGA初级课程介绍1)FPGA初级就业课程共100篇文章,目的是为了让想学FPGA的小伙伴快速入门。2)FPGA初级就业课程包括FPGA简介、Verilog HDL基本语法、Verilog HDL 入门实例、FPGA入门实例、Xilinx FPGA IP core设计、Xilinx FPGA原语与U_fpga开发工具

js中的定时器如何使用_js定时器用法-程序员宅基地

文章浏览阅读1.4k次。JS提供了一些原生方法来实现延时去执行某一段代码,下面来简单介绍一下setTiemout、setInterval、setImmediate、requestAnimationFrame。首先,我们先来了解一下什么是定时器:JS提供了一些原生方法来实现延时去执行某一段代码下面来简单介绍一下setTimeout() :在指定的毫秒数后调用函数或计算表达式。setTimeout(code,millisec,lang)参数 描述code 必需。要调用的函数后要执行的 JavaScript 代码串。_js定时器用法

推荐文章

热门文章

相关标签