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

文章目录

  • ROS,机器人系统的不二选择
    • ROS是什么
    • 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的安装与基本使用方法,敬请期待。

【ROS入门教程】---- 01 ROS介绍相关推荐

  1. 【ROS入门学习01| ROS命令行工具的使用】

    ROS命令行工具的使用 -----------------可以配合古月居的ROS入门教程来学习实践. 文章目录 ROS命令行工具的使用 一.roscore 二.rosrun 三.rqt_graph 四 ...

  2. ROS入门教程(三)—— 用C++实现Hello world

    本文将继上文介绍安装完用C++或Python实现Hello world后,如何在VS Code下用C++实现Hello world. 目录 前言 Hello world实现 前言 在VS Code下用 ...

  3. 奥比中光深度摄像头_ros与深度相机入门教程-在ROS使用奥比中光Orbbec Astra Pro

    ros与深度相机入门教程-在ROS使用奥比中光Orbbec Astra Pro 说明: 介绍如何在ros安装和使用奥比中光Orbbec Astra Pro OrbbecAstra介绍 astra_ca ...

  4. ROS 入门教程 —— 小海龟简单控制

    ROS 入门教程 -- 小海龟简单控制 这里我们直接介绍命令使用方法,原理请查看我的另外几篇博客: ROS 命令行工具的使用 ROS 创建工作空间与功能包 运行并控制小海龟 由于小海龟并不是 ROS ...

  5. ros入门--中科院软件所ros学习笔记

    视频链接: 中科院软件所-机器人操作系统入门(ROS入门教程)_哔哩哔哩_bilibili 中科院软件所-机器人操作系统入门(ROS入门教程)_哔哩哔哩_bilibili 另外有一个不错的 学习网址: ...

  6. React 全家桶入门教程 01

    React 全家桶入门教程 01 前面是基础课程(难度小,略过),后面是案例 目的 巩固react基础知识,查漏补缺(熟悉的部分快进) 学习相关的库的使用 https://study.163.com/ ...

  7. VAPS XT开发入门教程01:软件安装包

    本文首发于:VAPS XT开发入门教程01:软件安装包 上一篇:VAPS XT开发入门教程00:基本介绍 VAPS XT软件包括三个部分: 主程序,按照版本不同大小也不同,大概在800M~2GB左右 ...

  8. ROS学习----依据ROS入门教程,整理的ROS命令

    文章目录 ROS命令学习 文件系统介绍 ROS文件系统工具命令:rospack,rosstack roscd,rosls 创建ROS程序包命令:roscreate,catkin程序包结构,catkin ...

  9. ROS入门21讲 | ROS机器人入门教程 【简明笔记】

    古月·ROS入门21讲 | 一学就会的ROS机器人入门教程 文章目录 ROS核心概念 ROS命令行 工作空间与功能包 订阅与发布 发布者 Publisher 订阅者 Subscriber 话题消息的自 ...

最新文章

  1. 树莓派电压过低 串口数据错误增多
  2. 姚振宇:在数据科学培养下,我成为了那个不安分的“细菌” | 优秀毕业生专访...
  3. Python中通过lambda抛异常的奇技淫巧
  4. 【PHP】微信官方代码Log调试输出类,面向对象设计模式!来看看,你会有收益!...
  5. UA MATH523A 实分析3 积分理论例题 控制收敛定理计算一元积分的极限
  6. 作为一名程序员,谁没跳过槽,“6”招让你“空降”大厂
  7. 两种方法设置disabled属性
  8. reac——父组件向子组件传递值,子组件何时能同步获得父组件改变后的值
  9. 分布式系统session一致性的问题
  10. 优酷视频如何修改账号密码?
  11. apache php debug,fedora linux apache/php下安装配置xdebug
  12. Kryo 为什么比 Hessian 快
  13. Go Web框架 Gin路由(一)
  14. Cadence PSpice 仿真2: 三极管运放交流小信号仿真图文教程
  15. 【RDSNet】《RDSNet:A New Deep Architecture for Reciprocal Object Detection and Instance Segmentation》
  16. 小米平板2刷哪个系统更流畅_小米平板2刷lineage os与remix os及其体验
  17. 如何创建sis文件——PKG文件格式
  18. outlook中网址连接打不开解决办法
  19. numpy 处理txt的简单样例
  20. Win11+Ubuntu20.04双系统安装教程

热门文章

  1. 【Redis】查看redis服务的版本
  2. 【测试与自动化】介绍-框架-Jest-覆盖率-异步代码-e2e-Vue测试
  3. 如何用python画散点图矩阵_Python的散点图竟然能画这么好看
  4. java 怎么让打印信息换行?
  5. MAC最详细配置rz/sz命令
  6. 通过开源工具XCA工具签发和管理可被浏览器信任的SSL证书
  7. OpenWrt路由器macvlan单线多拨的方法
  8. 【自动化测试】自动化测试框架那些事儿
  9. 乌丹一中2021高考成绩查询,2021年赤峰高考状元名单公布,赤峰文理科状元是谁多少分...
  10. 一致 先验分布 后验分布_先验概率、似然函数与后验概率