无人机仿真平台搭建

原创:王稳钺
资料来源:肖老师

本文主要介绍搭建一个无人机仿真平台所需的软件及其简介。

1. ROS简介及安装

ROS是一个比较复杂的概念。在ROS WiKi中,ROS的定义为:一个开放源代码的机器人元操作系统。这里有个比较关键的概念就是元操作系统,它和常见的Windows、Linux、安卓等系统不同,它相当于是在更底层的操作系统之上做了进一步的封装。ROS提供了我们对于操作系统期望的服务,包括硬件抽象、低级设备控制常用功能的实现、进程间的消息传递以及功能包管理。它还提供用于在多台计算机之间获取、构建、编写和运行代码的工具和库。换句话来说,ROS包括一个类似于操作系统的硬件抽象,但它不是一个传统的操作系统,它具有可用于异构硬件的特性。此外它也是一个机器人的软件平台,提供了专门为机器人开发应用程序的各种开发环境。无人机的外号叫空中机器人,所以无人机本质上也是一个机器人。而且随着无人机现在智能化成程度越来越高,更多的开发者其实已经在关注无人机的上层控制,也就是常说的智能化的一些相关算法。所以将底层部分拿走之后只关注上层的话,那对于无人机的智能开发跟对机器人的智能开发是非常类似的。所以就把ROS这个机器人领域用的最多的一个开源的元操作系统拿来,用于在无人机上做上层的控制。

其实选择ROS还有很多其他的原因。首先ROS它原本就集成好了很多高端的功能,包括SLAM,AMCL,Movelt!等。这些功能在ROS的开源社区内,已经有其他的开发者完成开发了,想用的时候很方便的直接拿来用就好,不需要自己去把这些复杂的功能全部开发一遍。第二点是ROS具有大量的工具。比如常用于调试的rqt、可视化工具rviz、用于仿真的Gazebo等。集成了大量好用的工具,就可以便于开发者非常方便的去实现想要实现的功能。第三,从硬件层面上来说,大多数的机器人开发者不太熟悉嵌入式开发,尤其是对于传感器、执行器驱动的开发,这些驱动的开发也是ROS帮助完成了。市面上主流的传感器和执行器大多数都有ROS库,这样的话使用ROS就可以直接的获取传感器的信息和对执行器进行操作,而不需要再去考虑驱动的问题。第四是多语言的支持。编程有非常多的语言,每个人习惯的语言不同,ROS一大优点就是它具有对于多种语言支持的特性,主要支持C++、Python、LISP。对于C++和Python来说,ROS就相当于是它们的一个库,下面有很多相应的类和方法,直接去使用就可以。第五是模块化,不同的任务去用不同的模块来实现,这样的话可以便于解耦,一个模块出了问题之后不会影响到别的模块。第六是资源并发处理。最后也是ROS最关键的一点就是它有非常活跃的开源社区,所有的命令在官网上都有文档说明,而且有非常非常多的已经开发好的开源机器人项目,可以直接使用。

接下来介绍一下ROS的组件,下图展示了主要组件。最下面是硬件接口层,也就是驱动,和传感器、执行器打交道的,像相机驱动、GPS/IMU的驱动、深度相机的驱动、音频的驱动等等。再往

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值