【ROS入门教程】---- 01 ROS介绍

ROS,机器人系统的不二选择

ROS是什么

作为新世纪的孩子们,可能从出生以来,我们就伴随着机器人的飞速发展,在年少时也同样拥有着创建属于自己的机器人,完成那些拯救世界的任务,那么现在真正的机器人是什么样的呢,在我们的生活中,已经能够在处处看到各种各样的机器人,他们不知疲倦地帮助人类完成着那些重复无聊以及危险复杂的任务。
他们可能是这样的,负责协作生产的机械臂:

在这里插入图片描述
也可能是这样的,用于负责处理物流任务的AGV机器人

在这里插入图片描述
当然这些也是,更加类似于人形的机器人

在这里插入图片描述

  • 机器人的定义:
    机器人有着多种多样的定义,简单的讲,就是可以帮助人类完成那些相对人类难以完成或效率地下的任务,并且不会感到疲倦
  • 机器人的类型:
    机器人并不局限于那种我们所了解的人形机器人,机械臂、无人机、无人船乃至于智能小车,都是机器人。现在的主流机器人类型,有智能小车,它们能够实现无人驾驶,主要负责一些仓储物流问题;有机械臂,主要负责智能化的自动生产装配;以及一些特殊的机器人,例如迎宾机器人等。

在这里插入图片描述

  • 机器人开发平台:
    ROS(Robot Operating System),开源机器人操作系统,是一个机器人软件平台,能为异质计算机集群提供类似操作系统的功能。

在这里插入图片描述

机器人的设计制造控制是一个十分综合的研究方向,涉及到了机械、电子、软件、网络、AI等多个专业,对于某个专业的学生来讲,我们只可能掌握其中的几项技能,需要软件帮助我们设计完成机器人,而对于ROS来说:

  • 它支持着无数的电路板,无需我们自行刻录设计;
  • 它自带无数的机械模型,无需我们进行机械设计;
  • 它拥有着强大的通讯和AI功能,无需我们深入了解基本原理;
  • 它拥有者强大的仿真系统,无需我们闭门造车、在设计时考虑诸多问题。

ROS的强大之处

  • 完善的工具:
    ROS拥有着一大批实用方便的组件,这里我们简单举例:

在这里插入图片描述RVIZ,常用于无人驾驶的导航,在导航领域相比于其他软件有着明显的优势;

在这里插入图片描述Gazebo,机器人的物理仿真软件,相比于matlab、admas等能够更加清晰直观的看到在模拟世界下机器人的运动情况,界面更加流畅美观;博主后续也会推出关于Gazebo的入门教程,敬请期待;

在这里插入图片描述QT工具箱,方便的可视化调节测试界面,能够帮助我们更加迅速准确的完成开发编译;
除了这些,ROS还拥有着相关于导航、SLAM等多种优秀组件,在今后的学习中我们将逐步了解。

  • 成熟的社区:
    在这里插入图片描述

对于我而言,ROS的强大除了体现在成熟的架构体系,能够帮助我们减少学习其他学科知识的时间之外,更加在于它完善的开发社区,自从ROS系统公布以来,作为世界上主流的机器人开发软件,它逐渐建设出了强大的功能包、强大的开发工具和强大的开发者社区,能够让你在遇到任何问题,找到相应的解决办法。
下列是一些基本的ROS资源网站:

ROS:提供库和工具,帮助软件开发人员创建机器人应用程序;
ROS Wiki:ROS软件包和教程;
ROSCon:ROS开发者年会;
古月居:较大的中文ROS开发社区;
ROS2 Docm:ROS2 文档;
ROS2 design:ROS2 设计文件;

正是由ROS发行版中的功能包、共享开源代码、以及ROS Wiki、ROS Answers和各种博客共同构成一个完善的ROS生态系统,能够有效的帮助我们完成机器人开发研究。

ROS的学习方法

  • ROS的学习很简单:
    ROS的学习并不困难,主要在于需要深刻了解ROS的各个节点之间的关系,理清它们之间的联系,熟悉各种小工具以及社区资源,在逐渐熟练之后,能够大幅度减少我们开发的时间和成本。
  • ROS的学习很困难:
    同样ROS的学习也很困难,困难在于很多方面,一方面在于Linux系统,不同windows下的图形化操作,初入Linux学习的我们在开始时很难适应,一方面在于编程知识和ROS架构的要求,导致ROS的学习曲线十分陡峭,难以上手。

面对这样的难题,我们当然不能退缩,相信大家和我一样,学习ROS其实是为了学习机器人,我们始终保持着那样一个对于机器人的激情和热爱,而ROS就是我们的武器,这里也简单给出一些学习教程,希望大家共勉。

古月居ROS入门21讲
Mastering ROS for Robotics Programming, by Lentin Joseph
ROS By Example (Volume 1 and Volume 2), by Patrick Goebel
Programming Robots with ROS: A Practical Introduction to the Robot Operating System, by Morgan Quigley, Brian Gerkey & William D. Smart
Learning ROS for Robotics Programming, by Aaron Martinez, Enrique Fernández
ROS机器人开发实践, by 胡春旭
Self-Driving Cars with ROS and Autoware - hosted by Apex.AI

学习ROS要从几个角度学起,一方面我们需要深刻了解ROS的基本架构,掌握ROS节点的知识、通信机制以及命令行和代码的使用;一方面我们要掌握编程知识,在学习中提高对于Linux、C++、python的编程能力;最后我们要掌握自行寻找资源、搜索问题的能力,利用好ROS强大的社区,帮助我们完成机器人的设计与开发。

在这里插入图片描述

总结

本文主要介绍了机器人开发平台ROS系统,从架构、应用以及学习方法上进行了简要的讲述,后续的博客将会首先介绍ROS的安装与基本使用方法,敬请期待。

  • 4
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生如昭诩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值