机器人入门(一)

这篇具有很好参考价值的文章主要介绍了机器人入门(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


本篇仅作为学习总结,内容不会大而全,详细内容请见书本: ROS Robotics By Example (Second Edition) —— Carol Fairchild Dr.Thomas L.Harman

一、ROS是什么,能用来干什么?

ROS是Robot Operating System(机器人操作系统)的缩写,此操作系统是开源的。既然末尾带了OS,那自然是干操作系统的事情,它可以为你提供控制各种机器人的能力,但无需知道各种机器人的细节。

书中原文是这么描述的:“One of its main purposes is to provide communication between the user, the computer’s operating system, and equipment external to the computer.”

我个人认为上面的结构是对的,因为设备要经过ROS抽象,才能让各部件通用化,并统一将数据交给与计算机硬件打交道的操作系统进行处理。当然,user也可以直接接触Computer’s OS。
机器人入门(一),机器人,机器人

二、哪些机器人用到了ROS?

书中提供了这个网址:http://wiki.ros.org/Robots,点进去一看,确实包罗万象,搜一搜著名的波士顿动力机器人,Atlas,没搜到,搜搜书本上的机器人:Baxter,没搜到,于是我对着网页找了下Baxter,找到了名字叫Mobility Base的机器人,图片和书中一致,只是缺了手,所以叫Mobility Base,继续,TurtleBot2、TurtleBot3和Crazyfile也搜到了,还不错。

继续浏览的时候,我在education标签分类下,看到了Jet,于是,我好奇Jet和JetAuto之间的关系:

Jet:Jet is a smart, autonomous, low-cost robot kit based on the NVIDIA Jetson embedded development platform. 看来Jet是基于英伟达的Jetson嵌入式开发平台。

JetAuto:JetAuto是面向ROS教育场景开发的入门型ROS轮式机器人,它搭载了NVIDA Jetson Nano。

看来NVIDA的 Jetson 是款抢手货,那Jetson究竟是个什么,来到 Jetson 的wiki百科页面,阅读后得知,Jetson有几个版本分支,而Jetson Nano是其中的一种,全称是Jetson Nano Developer Kit,Nano(计量单位,纳。纳米:nanometer)是形容这东西小巧灵活 ,此产品面向的群体有制造商、初学者和开发人员,对许多流行的外设和部件都可以做到开箱即用。更多关于Jetson Nano的内容可以直接去NVIDIA官网查看,板子是好板子,就看怎么使了。

网站里给robot分了这么几类:ground(车)、manipulator(机械臂)、Aerial(飞行器)、marine(船)、component(零部件),所有东西还是在想象范围之内的:地上走的、天上飞的、水里游的,一般的robot在地球上工作,无外乎这三个地方(即便高大上如火星车也使用ROS),然后就是加些机械臂啊,摄像头啊,传感器啊,能走能跑,握得稳,看得清,听得见这就差不多齐活,至于表现的像个真人一样,那是后话。

三、ROS和操作系统是绑定的吗?

ROS和Ubuntu操作系统是有对应关系的,软件开发中这有点搞人心态,甚至升级个版本就didn’t work,后来又一想,这个问题是由于人类之间的组织互不隶属,虽然互联网让彼此之间互通有无,良好的开发文档给开发人员清晰的理解,业界通用的设计规范使工程师之间有共同语言,但究竟是谁说服谁,this is a question。工作后发现,哪怕组织是隶属的,写出垃圾代码的企业也是一抓一大把。

ROS 1与Linux之间的对应关系可以在REP 3(ROS Enhancement Proposal,ROS进阶提案)里找到[2],这里只列举部分。

ROS 1 Linux EOL(End of Life) date
ROS Noetic Ninjemys Ubuntu Focal Fossa (20.04,代表2020年4月份发行) 2025年5月
ROS Melodic Morenia Ubuntu Artful (17.10)
Ubuntu Bionic (18.04)
2023年6月27日
ROS Lunar Loggerhead Ubuntu Xenial (16.04)
Ubuntu Yakkety (16.10)
Ubuntu Zesty (17.04)
2019年5月
ROS Kinetic Kame Ubuntu Wily (15.10)
Ubuntu Xenial (16.04)
2021年4月
ROS Jade Turtle Ubuntu Trusty (14.04)
Ubuntu Utopic (14.10)
Ubuntu Vivid (15.04)
2017年5月
ROS Indigo lgloo Ubuntu Saucy (13.10)
Ubuntu Trusty (14.04 LTS)
2019年4月
ROS Hydro Medusa Ubuntu Precise (12.04 LTS)
Ubuntu Quantal (12.10)
Ubuntu Raring (13.04)
2015年5月
ROS Groovy Galapagos Ubuntu Oneiric (11.10)
Ubuntu Precise (12.04 LTS)
Ubuntu Quantal (12.10)
2014年7月

只要相应版本的Ubuntu停止支持,该版本对应的ROS也将停止支持工作,还有些其它规矩。

Release rules

  • ROS release timing is based on need and available resources
  • All future ROS 1 releases are LTS, supported for five years(看发行时间确实如此,没猜错的话,这个时间也是根据Ubuntu的维护时间来的,但文章没明确说)
  • ROS releases will drop support for EOL Ubuntu distributions, even if the ROS release is still supported.

Side effects of the release policy:

  • Every ROS release will be supported on exactly one Ubuntu LTS.
  • LTS releases will not share a common Ubuntu release with any previous releases.
  • ROS releases will not add support for new Ubuntu distributions after their release date.

These simplified rules and side effects are subject to change with changes to the underlying Ubuntu release policy.

此文档也说了它推荐的一些Fedora发行版(Fedora是软呢帽的意思,Red Hat的logo即它,颇具浪漫主义气质),Fedora各版本的下载地址与ROS 2各个发行版清单的访问地址在文末的References给出。

四、ROS 1 和ROS 2的关系是什么?

此问题下的内容主要来自于文章ROS 1 vs ROS 2 What are the Biggest Differences? [5],二者的不同体现在三方面:架构、特性、工具/生态。

4.1架构

中间件改变

ROS 1使用了ROS主从架构和XML-RPC(Remote Procedure call)中间件。这个中间件是一种远程过程调用方法,使用XML格式并通过socket,在程序之间传递数据[8]

API改变

ROS 1的两个libraries是互相独立的,支持C++的roscpp,以及支持Python的rospy,并且二者功能还不等价。

而ROS 2则干脆许多了,library有一个用C写的rcl(ROS client library),Github上也有其官方用C++编的rclcpp,其余的libraries都是构建在此基础上,因此这也是ROS 2可以提供更多语言支持的关键。

数据格式改变

ROS 2的rosbags就序列化方面,比ROS 1更具便捷性,剩余内容请看原文。

4.2特性

ROS 2支持多线程执行,实时处理功能,剩余内容请看原文。

4.3工具/生态

ROS 2取消了Catkin,代之用Ament作为系统构建工具;ROS 2有一个辅助工作空间,在不影响现有的工作空间情况下,有助于在不影响现有配置的情况下进行新包测试。

另外在系统生态方面,ROS 2不兼容ROS 1。ROS 1主要是为Ubuntu构建的,而ROS 2可以运行在MacOS,Windows,Ubuntu和其它OS上。

最后,文章作者建议逐步从ROS 1迁移至ROS 2,因为ROS 1将在2025年停止支持。

References

[1] Jetson Nano - NVIDIA官网

[2] REP 3 - Target Platforms

[3] Fedora各版本的下载地址

[4] ROS 2各个发行版的清单

[5] ROS 1 vs ROS 2 What are the Biggest Differences?

[6] Changes between ROS 1 and ROS 2

[7] Ros 2 how is it better than Ros 1?

[8] XML-RPC COMMUNICATION

[9] Fedora - wiki

[10] ROS官网文章来源地址https://www.toymoban.com/news/detail-729885.html

到了这里,关于机器人入门(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ROS2机器人入门到实战】RVIZ2可视化移动机器人模型

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 大家好,我是小鱼,上一节讲完joint和link,我们来把我们上面定义

    2024年02月03日
    浏览(31)
  • 【ROS2机器人入门到实战】

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 第 1 章 ROS2介绍与安装 基础篇-Linux基础 1.Linux与Ubuntu系统介绍 2.在

    2024年02月16日
    浏览(39)
  • 机器人技能学习-robosuite-0-入门介绍

    资料太少、资料太少、资料太少,重要的事说三边,想根据自己实际场景自定义下机器人,结果发现无路可走,鉴于缺少参考文献,现在这里记录下,主要内容为官网信息,如有不合适的地方,望留言 结构很清晰,就是不会,以下是整体的框架图: 仿真模型三要素 要素 数量

    2024年02月02日
    浏览(32)
  • 机器人入门(五)—— 仿真环境中操作TurtleBot

    进行实操之前,先准备环境 环境准备好后,执行以下命令启动 可以看见以下效果,视角不舒服的话,就按 Ctrl+Shift+鼠标左键 调整调整至你喜欢的视角,并通过滚轮缩放大小。 按如下顺序点击,TurtleBot将被一个白色框线框住,并可以查看姿态信息 也可以用以下命令,打印出

    2024年04月26日
    浏览(29)
  • #530. 【入门】小 X 与机器人 (betago)

    小 X 最近对战胜韩国围棋大神李世石的 AlphaGo 很感兴趣,所以小 X 自己写了一个叫 做 BetaGo的人工智能程序(简称 AI) , 这个 BetaGo 会做什么呢? 小 X 首先想要让 BetaGo 做到自己在棋盘上落子, 这一点 AlphaGo 是由程序员来完成的。小 X 的设想是这样的: 在棋盘的边框上放置一个

    2024年02月19日
    浏览(19)
  • ROS入门21讲 | ROS机器人入门教程 【简明笔记】

    古月·ROS入门21讲 | 一学就会的ROS机器人入门教程 ROS = 通信机制+开发工具+应用功能+生态系统 通信机制 : Node :完成具体功能的进程、独立运行的可执行文件。可用多种语言py、c++。节点在系统中的名称唯一。 ROS Master :为节点提供命名注册服务;跟踪和记录话题、服务通信

    2024年02月09日
    浏览(50)
  • 强化学习:MuJoCo机器人强化学习仿真入门(1)

        声明 :我们跳过mujoco环境的搭建,搭建环境不难,可自行百度 下面开始进入正题(需要有一定的python基础与xml基础):  下面进入到建立机器人模型的部分: 需要先介绍URDF模型文件和导出MJCF格式  介绍完毕,下面开始进行mujoco仿真: 首先将这4个文件复制到.mujoco/muj

    2024年01月24日
    浏览(40)
  • 【ROS2机器人入门到实战】ROS2话题入门

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 话题是ROS2中最常用的通信方式之一,话题通信采取的是订阅发布

    2024年02月04日
    浏览(48)
  • 【ROS2机器人入门到实战】ROS2服务入门

    当前平台文章汇总地址:ROS2机器人从入门到实战 获取完整教程及配套资料代码,请关注公众号鱼香ROS获取 教程配套机器人开发平台:两驱版| 四驱版 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 大家好,帅鱼又蹬蹬蹬的游回来了。本节小鱼将要带大家一起了解

    2024年02月07日
    浏览(43)
  • langchain系列:langchain入门(一分钟搞定对话机器人)

       随着aigc的火热,各大厂商开始提供他们自己的api服务,诸如openai、google、等,还有的直接开源出自己的模型,放到Huggingface提供使用,而LangChain就是一个基于语言模型开发应用程序的框架,它可以很方便的去调用不同公司的api,以及huggingface的资源,为人们提供统一的开

    2024年02月10日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包