入门ROS其实也没有那么难!

作者:Tassel

相信提出这个问题的小伙伴已经对ROS有一定的了解,但不管是出于工程应用还是理论学习,我们都有必要谈谈ROS的概念,从概念去理解ROS。

ROS(机器人操作系统)是用于机器人应用程序的开源软件开发工具包。ROS 为各行各业的开发人员提供了一个标准软件平台,将他们从研究和原型设计一直带到部署和生产。当你学会了使用ROS,就可以避免因为重复造轮子而浪费大量的时间。同时,ROS也为硬件与软件算法之间提供了桥梁。

既然ROS这么好用,那么让我们来看看如何零基础入门ROS吧!

一、安装

ROS 以发行版的形式发布,也称为“发行版”,一次支持多个 ROS 发行版。有些版本带有长期支持 (LTS),这意味着它们更稳定并且经过了广泛的测试。其他发行版较新,生命周期较短,但支持更新的平台及其组成 ROS 包的更新版本。有关更多详细信息,请参阅分发列表。一般来说,每年世界海龟日都会发布一个新的 ROS 发行版,LTS 发行版会在偶数年发布。我们目前推荐以下版本之一:

 

 

详细的安装步骤可以点击这里官网:

//www.ros.org/wiki/groovy/Installation/)

需要注意的是不同系统版本有对应不同版本的ROS,比如Ubuntu18.04对应的是ROS Melodic、Ubuntu对应的是ROS Noetic。安装完成后启动小海龟进行测试,确保安装成功。

二、支持

ROS为用户提供了许多支持服务,比如:

//docs.ros.org/

在此站点上,您可以找到该项目的核心教程和文档,以及为各个包生成的 API 文档。

//answers.ros.org/

如果上述中的文档没有解决您的问题,不用担心,也许有人和你遇到过同样的问题,不同的是他早就解决了并且在该网站上发布了解决方案。遇到问题时搜索与您类似的问题,它会给出答案或者类似的解决方法。如果您的问题尚未提出,请发布一个新问题,网站会及时更他人对此问题的建议。

//discourse.ros.org/

要了解 ROS 社区的最新动态,您需要加入ROS Discourse论坛。这些论坛是发布公告、新闻和普遍感兴趣的讨论的地方。

//index.ros.org/

当您想查找有关特定包的信息时,可以访问上述网站,除了 ROS 软件包的官方文档外,该 wiki 还包含两个您应该参考的关键资源:故障排除指南和常见问题解答。

三、ROS入门

Wiki上的例子都可以用作入门测试,对代码有解释,新手需要把这些代码和例子弄明白。具体点击下面网址:

//www.ros.org/wiki/ROS/Tutorials

ROS主要使用的语言就是C++Python,因此需要至少对其中一门语言有一定的基础,针对这两种语言的功能包分别是roscpp和rospy,根据个人情况学习使用。

ROS中包含了以下几种功能包:

1. rviz

一款3D可视化工具包,我们可以在里面创建自己的机器人模型,并且可以让机器人运动。还可以创建地图,显示3D点云等等,当然这些显示都是通过消息的订阅来完成的,机器人通过ROS发布数据,rviz订阅消息接收数据,然后在界面中显示。

2. tf

ROS中的坐标变换系统,主要用于机器人的建模仿真中。

ROS中主要有两种坐标系:

        (1)固定坐标系: 用于表示世界的参考坐标系;

        (2)目标坐标系:相对于摄像机视角的参考坐标系。

3. gazebo

ROS中的物理仿真环境,gazebo本身就是一款机器人的仿真软件,基于ODE的物理引擎,可以模拟机器人以及环境中的很多物理特性。

4. 此外ROS中还有许多常用的机器人模型,PR2、TurtleBo’t等。

 

当我们对这些基本知识和功能应用都掌握了之后,你就可以自豪地说自己已经入门ROS学习了,当然学习过程中肯定会遇见许多难题,如果担心时间不够想要快速上手,不妨通过视频课的学习来避免自己在学习过程中走弯路,在这里推荐深蓝学院的《ROS理论与实践》和《C++基础与深度解析》搭配学习,课程有课后作业,助教会及时批阅,学员可以在群里进行提问,还能认识许多志同道合的朋友,扩展自己的学习圈子。

Tags: