ROS学习——rotors仿真下载与运行

news2024/9/22 15:33:14

rotors

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

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

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

RotorS 是ETH(苏黎世联邦理工大学)研究团队开发的一个ROS包,GitHub官方网站,rotors提供了几种多旋翼仿真模型,仿真系统中包含很多种仿真传感器,都可以安装在无人机上

rotors下载

科学上网
一些博主的参考
阿栋阿栋
懒小象

进入rotors的Github官方网站中的下载部分
在这里插入图片描述
可以直接从第二步开始,按步骤创建对应的文件夹即可,注意的时第一步没有的包,可能会在后续make项目的时候报错,后续安装kinetic的版本即可

按官网的步骤

1.创建一个ROS工作空间

先安装好依赖包
如果是其他ros版本就把kinetic改为自己ros版本名字

sudo apt-get install ros-kinetic-joy ros-kinetic-octomap-ros python-wstool protobuf-compiler
sudo apt-get install libgeographic-dev ros-melodic-geographic-msgs 

就是新建文件夹,然后有src文件夹

$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace  # initialize your catkin workspace
$ wstool init

2.下载rotor-simulator项目和其他的一些依赖

$ cd ~/catkin_ws/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,你需要安装一下git
注意这里git需要提前登录github账号并绑定自己电脑ssh,否则不能正常git,不能git的解决方案参考这个博客

下载完之后

在这里插入图片描述
除了control文件,剩下的4个文件夹都是Git下载的,注意下载的是src目录下

3.编译项目

先返回上一级目录,也就是工作空间,catkin_ws目录下,在进行编译

cd ..
catkin_make

编译过程中会疯狂报错,我报了一下午,各种各样的错
这是一些解决错误的网站

https://blog.csdn.net/Lawliet9666/article/details/104908385
https://blog.csdn.net/qq_16775293/article/details/109330494

还有很多网站,我后续慢慢加上

各种各样的错,搞了一晚上
还有Gazebo仿真出错,我卸载了重装了
注意一定要卸载干净!

4.运行rotors

先打开一个终端
执行

roscore

然后新建一个终端,执行

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

在这里插入图片描述
效果是一个飞机悬停,我改过代码所以换了一个位置

这一步一般都会碰到Gazebo打不开的现象,如果百度上的方法那种设置环境变量或者是杀死进程都不管用的话,试试直接重启虚拟机然后在打开,再不行就重装。我用的是Gazebo7

这样就是将rotors安装好了
会有很多很多报错,在百度上慢慢查~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/440424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ArcGIS Pro二次开发】(22):生成分级用地编码和名称

在国土空间规划中,用地用海分类采用三级分类体系,共设置24种一级类、106种二级类及39 种三级类。在某些场景中,需要按等级归类并汇总统计。 这个小工具的作用就是通过用地编码生成三级地类,作为后续统计的基础。 一、要实现的功能…

研读Rust圣经解析——Rust learn-3(变量与可变性,数据类型)

研读Rust圣经解析——Rust learn-3(变量与可变性,数据类型) 变量|常量与可变性变量声明案例为什么不可变变量可变(mut关键字)变量可变(覆盖) 常量声明 数据类型标量类型整型整型字面值整型溢出问…

ECShop开源商城与COS互通:降低本地存储负载、提升访问体验

ECShop简介 ECShop是一款开源电子商务平台,具有简单易用、安全稳定、模块化设计等特点。它提供了完整的电子商务解决方案,包括商品管理、订单管理、支付管理、配送管理、会员管理、促销管理、数据统计等功能。ECShop支持多语言、多货币、多种支付方式和配…

防火墙做网关双链路接入不同ISP

USG作为校园或大型企业出口网关可以实现内网用户通过两个运营商访问Internet可以实现外网用户访问内网服务器,并保护内网不受网络攻击。 组网需求: 某学校网络通过USG连接到Internet,校内组网情况如下: 校内用户主要分布在教学…

【Java|golang】2409. 统计共同度过的日子数---golang中全局变量带来的坑

Alice 和 Bob 计划分别去罗马开会。 给你四个字符串 arriveAlice ,leaveAlice ,arriveBob 和 leaveBob 。Alice 会在日期 arriveAlice 到 leaveAlice 之间在城市里(日期为闭区间),而 Bob 在日期 arriveBob 到 leaveBo…

CTFWIKI-PWN-ret2libc

目录 1.libc 2.plt 和got 3.调用system 4.flat函数 5.libc泄露 例题1 checksec ida 计算偏移量 查找system.plt 查找/bin/sh 1.ida 2.ROPgadget exp 例题2 checksec ida 思路 给出流程图 查看bss是否可以写入 exp 例题3 checksec ida 偏移量 找puts的go…

投屏市场的挑战与发展趋势

投屏的定义 投屏是指将手机、平板、电脑等设备的屏幕内容无线传输到电视、投影仪等大屏幕上的技术,也称为无线投屏、屏幕镜像、屏幕共享等。投屏技术可以实现多屏互动、内容共享、远程协作等功能,为用户提供更丰富的视听体验和更便捷的工作方式。 投屏市…

Jupyter Notebook小知识

目录 1 快捷键1.1 常用快捷键1.2 魔法函数 2 常用快捷键2.1 模式切换2.2 命令模式快捷键2.3 编辑模式快捷键3 Matplotlib绘图 4 小技巧4.1 文件默认目录的查看以及更改4.2 更改主题颜色 5 其它5.1 python中 r, b, u, f 的含义5.2 f/format():格式化操作 6 常见问题6.1 查看模块…

25K测试老鸟6年经验的面试心得,四种公司、四种问题…

这里总结了下自己今年的面试情况 先说一下自己的个人情况,普通二本计算机专业毕业,懂python,会写脚本,会selenium,会性能。趁着金三银四跳槽季,面试字节跳动测试岗技术面都已经过了,本来以为是…

基于OC端的Bridge-API组件化应用

前言 在移动应用开发中,组件化可以提高代码的模块化和重用性,降低耦合度。当下大部分APP都至少包含一到两种Hybrid框架,H5基本是必要的,还可能叠加React Natvie、Weex或Flutter。 对于Hybird来说,Native的很多能力是…

Ae:自动定向

Ae 菜单:图层/变换/自动定向 Auto-Orient 快捷键:Ctrl Alt O 自动定向 Auto-Orient是 Ae 图层中的一个附加的、隐藏实现(不会在时间轴面板上更改属性的值)的功能,它可以使得图层自动旋转或改变方向以朝向指定的运动路…

HIVE相关操作

HIVE有两种启动方式 方式1: bin/hive 即Hive的Shell客户端,可以直接写SQL方式2: bin/hive --service hiveserver2 后台执行脚本:nohup bin/hive --service hiveserver2 >> logs/hiveserver2.log 2>&1 & bin/hiv…

Vue.js列表渲染指令v-for

目录 一、原理概述 二、基本用法 (1)v-for循环普通数组 (2)v-for循环对象 (3)v-for循环对象数组 (4)v-for迭代整数 一、原理概述 v-for指令时在模板编译的代码生成阶段实现的…

6.java程序员必知必会类库之pdf处理库

前言 Pdf作为我们办公文件中的一种常用文件格式,很多业务中会涉及到一个功能,是将系统中的某些数据,按照要求的格式生成Pdf文件。比如常见的征信报告,合同文件等等,为此通过java代码,处理PDF格式的文件&am…

Vulnhub项目:Earth

靶机地址:The Planets: Earth ~ VulnHub 渗透过程: 首先查看靶机描述,需要获取2个flag 老样子,确定靶机ip,具体的就不详细写了,看图即可 探测靶机开放端口 如果不进行dns绑定,就会出现下面的…

带你玩转状态机(论点:概念、相关图示、示例代码、适用场景、相关文档)

概念 状态机(State Machine)是一种用于描述系统在不同状态下的行为及状态之间转换的数学模型。状态机主要由三个部分组成:状态(State)、事件(Event)和转换(Transition)。…

Vue2-黑马(九)

0目录: (1)router-动态菜单 (2)vuex-入门 (3)vuex-mapState (1)router-动态菜单 我们点击按钮跳转到主页面,主页在制作动态菜单,路由的跳转方…

【PWN】刷题——CTFHub之 简单的 ret2text

萌新第一阶段自然是了解做题的套路、流程,简单题要多做滴 目录 前言 一、checksec查看 二、IDA反汇编 三、exp编写 前言 经典的ret2text流程 一、checksec查看 64位程序,什么保护都没有,No canary found——可以栈溢出控制返回 二、IDA反汇…

SpringBoot整合Redis、以及缓存穿透、缓存雪崩、缓存击穿的理解、如何添加锁解决缓存击穿问题?分布式情况下如何添加分布式锁

文章目录 1、步骤2、具体过程1、引入pom依赖2、修改配置文件3、单元测试4、测试结果 3、redis运行情况4、项目中实际应用5、加锁解决缓存击穿问题代码一(存在问题)代码二(问题解决) 6、新问题7、分布式锁 1、步骤 前提条件&#…

FFmpeg 编译静态库

1. 使用工具 1.1 FFmpeg 官网: 1.2 FFmpeg macOS 官方安装教程: 1.3 Homebreaw 安装网站: 2. Homebreaw 介绍 2.1 简称 brew,在 Mac 平台终端上管理软件包,安装,更新,卸载等软件 2.2 安装 brew,终端执行指令(内部安装…