做网站头部为什么很多代码,没有网站也可以做推广吗,wordpress 仿站,如何制作手机免费网站模板机器人入门#xff08;一#xff09; 一、ROS是什么#xff0c;能用来干什么#xff1f;二、哪些机器人用到了ROS#xff1f;三、ROS和操作系统是绑定的吗#xff1f;四、ROS 1 和ROS 2的关系是什么#xff1f;4.1架构中间件改变API改变数据格式改变 4.2特性4.3工具/生态… 机器人入门一 一、ROS是什么能用来干什么二、哪些机器人用到了ROS三、ROS和操作系统是绑定的吗四、ROS 1 和ROS 2的关系是什么4.1架构中间件改变API改变数据格式改变 4.2特性4.3工具/生态 References 本篇仅作为学习总结内容不会大而全详细内容请见书本
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之间的关系 JetJet is a smart, autonomous, low-cost robot kit based on the NVIDIA Jetson embedded development platform. 看来Jet是基于英伟达的Jetson嵌入式开发平台。 JetAutoJetAuto是面向ROS教育场景开发的入门型ROS轮式机器人它搭载了NVIDA Jetson Nano。 看来NVIDA的 Jetson 是款抢手货那Jetson究竟是个什么来到 Jetson 的wiki百科页面阅读后得知Jetson有几个版本分支而Jetson Nano是其中的一种全称是Jetson Nano Developer KitNano计量单位纳。纳米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 ProposalROS进阶提案)里找到[2]这里只列举部分。
ROS 1LinuxEOL(End of Life) dateROS Noetic NinjemysUbuntu Focal Fossa (20.04代表2020年4月份发行)2025年5月ROS Melodic MoreniaUbuntu Artful (17.10) Ubuntu Bionic (18.04)2023年6月27日ROS Lunar LoggerheadUbuntu Xenial (16.04) Ubuntu Yakkety (16.10) Ubuntu Zesty (17.04)2019年5月ROS Kinetic KameUbuntu Wily (15.10) Ubuntu Xenial (16.04)2021年4月ROS Jade TurtleUbuntu Trusty (14.04) Ubuntu Utopic (14.10) Ubuntu Vivid (15.04)2017年5月ROS Indigo lglooUbuntu Saucy (13.10) Ubuntu Trusty (14.04 LTS)2019年4月ROS Hydro MedusaUbuntu Precise (12.04 LTS) Ubuntu Quantal (12.10) Ubuntu Raring (13.04)2015年5月ROS Groovy GalapagosUbuntu 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 resourcesAll 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可以运行在MacOSWindowsUbuntu和其它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官网