锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

AMR& SLAM& ROS入门——前言

时间:2023-02-22 08:30:00 eg30光纤传感器

一、移动机器人介绍
根据移动机器人在不同领域的应用场景,可分为:
工业机器人:搬运机器人(AGV)
商用机器人:无人车(AMR)、无人机,送餐机器人(AGV或AMR)、导览机器人(AGV或AMR)
消费机器人:扫地机器人(AMR)

此外,如果一个机器人能回答三个问题:我在哪里、我去哪里和如何去,它可以被称为独立移动机器人。本文主要讨论独立移动机器人(AMR,Autonomous Mobile Robots)
能够回答上述三个问题的独立移动机器人必须做到:
(1)有环境信息(人为给定或自主获取)
(2)感知和分析环境信息
(3)在环境中确定自己的位置
(4)规划和实施运动

综上所述,独立移动机器人需要具备感知、定位、规划、运动四个基本功能。其中,感知用于获取周围环境中对象的信息;定位移动机器人本身在环境中的位置;规划是决策和规划路线;运动一般由电机控制。
不同于工业用途AGV(AutomaticGuided Vehicle,自动导引车)等自动运输车辆,独立移动机器人(AMR)它是一个集环境感知、动态决策和规划为一体的多功能综合系统。它是一门集传感器技术、信息处理、电子工程、计算机工程和自动化技术为一体的人工智能学科。它是科技发展中最活跃的领域之一。

参考书籍:
[1]第二版《自主移动机器人导论》[美] R.西格沃特 着,李人厚 翻译,西安交通大学出版社
[2]移动机器人原理与设计·若兰 王世伟,谢广明 译


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
二、移动机器人硬件的组成
移动机器人所谓的智能移动,是指机器人可以根据周围环境的变化,独立规划路线避障,到达目标地。
机器人是模拟人类的各种行为。想象一下人们需要什么器官来行走?首先,用眼睛观察周围环境,然后用大脑分析如何到达目标地点,然后用腿一遍又一遍地走,直到达到目标地址。如果机器人想要实现智能运动,它还需要眼睛、大脑和腿之间的密切合作。

1.腿
腿是机器人移动的基础。机器人的腿不局限于类人或动物的腿,也可以是轮子、履带等。能让机器人移动的部件一般可以称为腿。类人的腿部风格的优点是仅可以在复杂的路况下移动(如爬楼梯),还可以更生动地模仿人们的动作(如跳舞)。缺点是结构和控制单元复杂,成本高,移动速度慢。例如,波士顿机器人,我们不讨论双脚和多足机器人。
大多数移动机器人都是轮式机器人,其优点是轮式设计简单,成本低,移动快。轮式也分为多种类型: 两轮平衡车、三轮、四轮、多轮等。目前最经济实用的是两个主动轮 一个通用轮。简而言之,通过调整两个直流减速电机的转速差,控制算法通常是传统的PID算法。
对于二维空间,使用线速度 角速可实现轮式机器的随机移动。线速:描述机器人前后移动的速度:描述机器人旋转的角速。
因此,控制机器人移动主要是将线速角速度转换为左右轮速度,然后通过轮径和轮间距将线速度和角速度转换为左右轮速度。
这里的一个关键问题是编码器的选择和PID的调速。编码器的选择:一般编码器和轮子在同一轴上,目前速度为0.7m/s下面,编码器选择600键到1200键ok。但需要注意的是,编码器最好使用双线,A、B两线输出,A向B输出相差90度,防止抖动。在以后的里程计算中,防抖动可以更准确。控制左右轮的速度,通过轮子编码器反馈,通过PID实时调整电机PMW来实现。实时计算小车里程计(odom),改变汽车的移动位置。通过编码器计算计算车辆的位置变化。如果车轮打滑,计算变化可能与实际变化不同。要解决这个问题,其实要看那个问题更严重。走5米只走4米.9米重要,180度只有179度重要。事实上,角度不准确对汽车的影响更大。一般来说,汽车的直线距离精度可以控制在厘米范围内,角度精度可以控制在1%~2%。因为角度是重要的参数,很多人用陀螺仪矫正。
2.眼睛
机器人的眼睛实际上是一个传感器。其功能是观察周围环境,包括激光雷达、视觉(深度相机、单双相机)、辅助(超声波测距、红外测距)等。具体内容见第三部分的环境传感器
3.脑
机器人的大脑负责接收眼睛传输的数据,实时计算路线,指挥腿移动。它实际上是将你所看到的转换为数据语言。如何描述数据,如何处理逻辑等一系列问题。具体内容见第四部分SLAM机器人操作系统的第五部分ROS。


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
三、环境感知传感器
1.激光雷达
制造工艺可分为固态激光雷达(不旋转)和机械激光雷达(旋转)。激光测距原理可分为三角测距和脉冲TOF和相位TOF激光雷达。也可分为2D和3D激光雷达,区别在于单线和多线。
扫地机器人是单线激光雷达应用最广泛的领域,多线激光雷达用于无人驾驶和安全监控。

在目前的激光雷达市场中,机械旋转方案占据绝对主导地位。在移动机器人领域,涉及的企业包括国外Sick 、Ibeo、Hokuyo、Trimble以及国内思岚科技、镭神智能、速腾聚创、和赛科技、北醒光子、玩智商。
扫地机器人是目前单线激光雷达应用最广泛的领域。多线激光雷达用于无人驾驶技术和安全监控。在机器人领域,思兰科技、速腾聚创、和赛科技等知名企业是中国从事激光雷达的企业,主要研发固态激光雷达,

国外激光雷达
Velodyne:美国老牌3D激光雷达制造商知名度高,产品稳定。谷歌的自动驾驶使用他的家。其主要产品有16线、32线和64线;16线早期价格较高,现已批量生产,市场价格为3.5w-4.5w,32线价格在40w左右,64线在80w每次线束增加一倍左右,价格几乎翻了一倍,主要原因是制造难度增加到几何倍数,高线束客户群体较少,没有实现量产
SICK:德国西克主要生产2D单线激光雷达在工业上应用广泛,AGV汽车基本上是用他家的,有很多应用:Sick LMS111,Sick TIM561,Sick TIM571等价格在几万元
Hokuyo:日本北阳激光雷达2D以单线为主,工业应用较多,主要型号有:UST-10LX,UTM-30LX-EW等等,价格大多在5W以下
国内激光雷达
速腾聚创:产品广泛应用于中国,与许多公司和大学合作。他们的官方网站上有很多案例,主要是RS-LiDAR-16、RS-LiDAR-32种多线激光雷达的价格分别为3w、13w左右
和赛:和赛生产了40线激光雷达,据说是标杆Velodyne64线雷达最大的区别是通过线束分布不均匀,使其最小角分辨率更小,达到0.33°
镭光智能:激光智能是无人驾驶和汽车辅助驾驶、服务机器人、物流、安全、测绘、港口和工业的智能发展,提供各种性能优异、稳定、价格好的激光雷达(包括TOF200/160/128/32/16线及单线MEMS固体激光雷达、远程激光雷达、激光三维成像激光雷达D FLASH、相控阵、三角法、相位法激光雷达)、三维激光扫描仪、激光位移传感器、激光灭蚊器、激光灭蚊器人及特种光纤激光器,以及基于激光雷达、视觉等多传感器的服务机器人AGV、无人叉车SLAM基于激光雷达反光板导航的自主导航和系统解决方案、视觉等无人驾驶多传感器融合系统解决方案,以及基于激光雷达的工业自动化、智能安防、测绘等系统解决方案。


2.视觉传感器
视觉传感器就是我们常说的相机,按工作方式可以分为:单目相机(Monocular)、双目相机(Stereo)、深度相机(RGB-D)。一般以一定速率拍摄周围的环境,形成一个连续的视频流。普通相机能以每秒钟30秒张图片的速度采集图像,高速相机则更快一些。深度相机(RGB-D)原理较复杂,除了能够采集彩色图像之外,还能读出每个像素离相机的距离。(还有全景相机、Event相机等。)

单目相机的优点:结构简单,成本低,便于标定和识别;缺点:在单张图片里,无法确定一个物体的真实大小。它可能是一个很大但很远的物体,也可能是一个很近很小的物体。通过相机的运动形成视差,可以测量物体相对深度。但是单目SLAM估计的轨迹和地图将与真实的轨迹和地图相差一个因子,也就是尺度(scale),单凭图像无法确定这个真实尺度,所以称尺度不确定性。

双目相机由两个单目相机组成,但这两个相机之间的距离(称为基线)是已知的。我们通过这个基线来估计每个像素的空间位置,基线距离越大,能够测量到的就越远。优点:基线距离越大,能够测量的距离就越远;并且可以运用到室内和室外。
缺点:配置与标定较为复杂,深度量程和精度受到双目基线与分辨率限制,视差计算非常消耗计算资源,需要GPU/FPGA设备加速。

深度相机又称RGB-D相机,通过结构光或ToF(time of fly)的物理方法测量物体深度信息。典型代表Kinect/Xtion pro/RealSense。目前常用的RGB-D相机还存在测量范围窄、噪声大、视野小、易受日光干扰、无法测量透射材质等诸多问题,主要用在室内,室外很难应用。


3.IMU
IMU全称Inertial Measurement Unit,即惯性测量单元,它由三个单轴的加速度计和三个单轴的陀螺仪组成,加速度计检测物体在载体坐标系统独立三轴的加速度信号,而陀螺仪检测载体相对于导航坐标系的角速度信号,对这些信号进行处理之后,便可解算出物体的姿态。
值得注意的是,IMU 提供的是一个相对的定位信息,它的作用是测量相对于起点物体所运动的路线,所以它并不能提供你所在的具体位置的信息,因此,它常常和 GPS 一起使用,当在某些 GPS 信号微弱的地方时,IMU 就可以发挥它的作用,可以让汽车继续获得绝对位置的信息,不至于“迷路”。IMU通常与激光雷达/相机结合使用。


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
四、环境感知技术——SLAM
SLAM(Simultaneous Localization and Mapping),译作“同时定位与地图构建” 。它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。

SLAM研究自1988年提出以来,已经过了三十多年。早期SLAM研究侧重于使用滤波器理论,最小化运动体位姿和地图的路标点的噪声。21世纪之后,学者们开始借鉴SfM(Structure from Motion)中的方式,以优化理论为基础求解SLAM问题。这种方式取得了一定的成就,并且在视觉SLAM领域中取得了主导地位。在过去的三年里,随着VR、AR、机器人、无人驾驶等领域资本市场和消费者市场热度的不断升级,SLAM技术迎来了春天。

目前根据传感器的不同,SLAM主要分为两大类,一种是基于激光雷达的激光SLAM(Lidar SLAM)和基于视觉的VSLAM(Visual SLAM)。

1.激光SLAM
(1)激光SLAM脱胎于早期的基于测距的定位方法(如超声和红外单点测距)。
(2)目前,激光SLAM采用2D或3D激光雷达(也叫单线或多线激光雷达),2D激光雷达一般用于室内机器人上(如扫地机器人),而3D激光雷达一般使用于无人驾驶领域。
(3)激光雷达(Light Detection And Ranging,LiDAR)的出现和普及使得测量更快更准,信息更丰富。激光雷达采集到的物体信息呈现出一系列分散的、具有准确角度和距离信息的点,被称为点云(Point Cloud)。通常,激光SLAM系统通过对不同时刻两片点云的匹配与比对,计算激光雷达相对运动的距离和姿态的改变,也就完成了对机器人自身的定位。
(4)激光雷达测距比较准确,误差模型简单,在强光直射以外的环境中运行稳定,点云的处理也比较容易。
(5)同时,点云信息本身包含直接的几何关系,使得机器人的路径规划和导航变得直观。
(6)激光SLAM研究较早,理论研究和工程相对比较成熟,落地产品更丰富。

2.视觉SLAM
(1)视觉是人类获取外界信息的主要来源。视觉SLAM也具有类似特点,它可以从环境中获取海量的、富于冗余的纹理信息,拥有超强的场景辨识能力。
(2)早期的视觉SLAM基于滤波理论,其非线性的误差模型和巨大的计算量成为了它实用落地的障碍。
(3)近年来,随着具有稀疏性的非线性优化理论(Bundle Adjustment)以及相机技术、计算性能的进步,实时运行的视觉SLAM已经不再是梦想。
(4)视觉SLAM的优点是它所利用的丰富纹理信息。例如两块尺寸相同内容却不同的广告牌,基于点云的激光SLAM算法无法区别他们,而视觉则可以轻易分辨。这带来了重定位、场景分类上无可比拟的巨大优势。同时,视觉信息可以较为容易的被用来(5)跟踪和预测场景中的动态目标,如行人、车辆等,对于在复杂动态场景中的应用这是至关重要的。
(6)视觉方案目前尚处于实验室研究阶段,由于稳定性较差,实际产品应用较少。

如果传感器采用视觉传感器(单目相机/双目相机/深度相机),那就称为“视觉 SLAM”。当用相机作为传感器时,我们要做的,就是根据一张张连续运动的图像(它们形成一段视频),从中推断相机的运动,以及周围环境的情况。
视觉SLAM一般分为五个模块,包括传感器数据、视觉里程计、后端、建图及回环检测。
1.传感器数据:主要用于采集实际环境中的各类型原始数据。包括激光扫描数据、视频图像数据、点云数据等;
2.视觉里程计:主要用于不同时刻间移动目标相对位置的估算。包括特征匹配、直接配准等算法的应用;
3.后端:主要用于优化视觉里程计带来的累计误差。包括滤波器、图优化等算法应用;
4.建图:用于三维地图构建;
5.回环检测:主要用于空间累积误差消除;
其工作流程大致为:传感器读取数据后,视觉里程计估计两个时刻的相对运动(Ego-motion),后端处理视觉里程计估计结果的累积误差,建图则根据前端与后端得到的运动轨迹来建立地图,回环检测考虑了同一场景不同时刻的图像,提供了空间上约束来消除累积误差。

通过对比发现,激光SLAM和视觉SLAM各有优缺点,单独使用都有其局限性,而融合使用则可能具有巨大的取长补短的潜力。例如,视觉在纹理丰富的动态环境中稳定工作,并能为激光SLAM提供非常准确的点云匹配,而激光雷达提供的精确方向和距离信息在正确匹配的点云上会发挥更大的威力。而在光照严重不足或纹理缺失的环境中,激光SLAM的定位工作使得视觉可以借助不多的信息进行场景记录。

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
SLAM技术入门前需要具备哪些知识?首先学习SLAM需要会C和C++,第二要学会用Linux,第三要会cmake,vim/emacs及一些编程工具,第四要会用openCV, PCL, Eigen等第三方库。只有学会了这些东西,才能真正上手编一个SLAM系统。如果要跑实际机器人,还要会ROS(第五部分)。下面是一些推荐SLAM入门的学习书籍、SLAM公开课、SLAM学习网站、SLAM开源代码等资料。

SLAM学习书籍:
(1) 必读经典书籍
Thrun S, Burgard W, Fox D.《Probabilistic robotics》[M]. Cambridge, USA: MIT Press, 2005.下载链接:https://www.jianshu.com/p/99877619b666
Howie C.《Principles of Robot Motion Theory,Algorithms and Implementation》下载链接:https://ebookee.org/PDF-Principles-of-Robot-Motion-Theory-Algorithms-and-Implementations_3540062.html
高翔.《视觉 SLAM 十四讲——从理论到实践》,及其博客半闲居士https://www.cnblogs.com/gaoxiang12/

(2) 入门基础书籍
SLAM入门书籍,简单实现及代码:《SLAM for Dummies》
SLAM入门教材,对深入理解SLAM实质非常有帮助:《STATE ESTIMATION FOR ROBOTICS》
关于Graph-SLAM的教程:《Course on SLAM》
加州伯克利的2D LIDAR SLAM:《Loop Closure Transformation Estimation and Verification Using 2D LiDAR Scanners》

SLAM公开课:
1.大量SLAM公开课相关资料(PPT、音视频文件)
http://ais.informatik.uni-freiburg.de/teaching/ws15/mapping/
2.YouTube的Cyrill Stachniss主页(课堂讲授SLAM的视频集)
https://www.youtube.com/channel/UCi1TC2fLRvgBQNe-T4dp8Eg
3.Andrew Davison的VSLAM公开课资料(VSLAM集大成者)
http://www.doc.ic.ac.uk/~ajd/Robotics/index.html
4.深蓝学院——视觉SLAM概论与基础知识(免费公开课),主讲人高翔
http://www.shenlanxueyuan.com/course/101?source=1
5.深蓝学院——激光SLAM发展和应用趋势(免费公开课),主讲人曾书格,越凡创新科技有限公司技术负责人,电子科技大学硕士
http://www.shenlanxueyuan.com/course/98?source=1
6.深蓝学院——视觉SLAM技术及其应用(免费公开课),主讲人章国锋,浙江大学CAD&CG国家重点实验室副教授,博士生导师
http://www.shenlanxueyuan.com/my/course/71
7.泡泡机器人公开课程(百度网盘下载链接)强烈推荐!
https://mp.weixin.qq.com/s/zxr00q7wDbwqdsdT6R7MOQ
8.浙江大学第二届SLAM暑期学校视频(2019年)
https://space.bilibili.com/36728694?from=search&seid=16985682645173669705
9.第一届全国SLAM技术论坛视频
https://space.bilibili.com/95104646/video

SLAM学习网站:
1.深蓝学院
http://www.shenlanxueyuan.com/courselist
2.泡泡机器人
http://paopaorobot.org/
3.大量优秀代码和框架,权威资料
http://www.openslam.org/
https://github.com/Ewenwan/MVision
4.MRPT库官方网站,有MRPT相关文档和最新下载
http://www.mrpt.org/
5.中文SLAM技术交流网站,将最新进展和相关解决方案链接在里边,还有知名博客、公众号、实验室、数据集等资料,强烈推荐的一个网站
http://www.slamcn.org/index.php/
6.维基百科的SLAM介绍,里边有SLAM的发展综述和大量参考文献
https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping#External_links

会议论文集
《Robotics: Science and Systems》. Cambridge, USA: MIT Press
会议进展网站http://www.roboticsproceedings.org/

期刊:
IEEE Robotics and Automation Magazine
IEEE Transactions on Robotics
International Journal of Robotics Research
Robotics and Autonomous Systems
Journal of Field Robotics

SLAM开源代码:
ORB-SLAM :https://github.com/raulmur/ORB_SLAM
LSD-SLAM:https://github.com/tum-vision/lsd_slam
ORB-SLAM2:https://github.com/raulmur/ORB_SLAM2
DVO(稠密视觉里程计):https://github.com/tum-vision/dvo_slam
SVO(半直接单目视觉里程计):https://github.com/uzh-rpg/rpg_svo
G2O(一般图优化):https://github.com/RainerKuemmerle/g2o
RGBD-SLAM:(https://github.com/felixendres/rgbdslam_v2)

主流开源SLAM方案
PTAM(单目) :http://www.robots.ox.ac.uk/~gk/PTAM/
MonoSLAM(单目):https://github.com/hanmekim/SceneLib2
Elastic Fusion(RGBD): Open source code:https://github.com/mp3guy/ElasticFusion
Kintinous(RGBD):Open source code:https://github.com/mp3guy/Kintinuous
RGBD-SLAM-V2: Open source code:https://github.com/felixendres/rgbdslam_v2
RTAB-MAP: Code:https://github.com/introlab/rtabmap

国外SLAM界的大拿:
[1]Sebastian Thrun(Thrun S,斯坦福大学)
[2]Andrew Davison(牛津大学)
[3]Tim Beily 及所在的悉尼大学一些研究者
[4]Giorgio Grisetti、Cyrill Stachniss、Wolfram Burgard (GridMapping 算法及概率机器人一书作者)
[5]M. Montemerlo、Dirk Haehnel、Sebastian Thrun (FastSLAM创始者,理论水平和实际应用能力非常强),参加过DARPA的智能车挑战赛,取得最好成绩
[6]Austin Eliazar、Ronald Parr (DP-SLAM创始者,从文章到数据,程序都公开的牛人)
[7]以Jose Neira和Jose luis Blanco为代表的一批西班牙学者
[8]Andrew Davison 视觉SLAM领域的权威
[9]John Leonard 侧重于应用,目前主要在做水下SLAM的项目,参加过DARPA的智能车挑战赛

国内SLAM研究者越来越多,比较知名的一线青年老师有:
1.章国锋,浙江大学CAD&CG国家重点实验室(商汤)
2.沈劭劼,香港科技大学(大疆)
3.李明,武汉大学(环宇智行)
4.高翔,慕尼黑工业大学博士后,清华大学自动化博士
5.曾书格,深蓝学院激光SLAM讲师,电子科技大学硕士


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
五、机器人操作系统
ROS(Robot Operating System)是Willow Garage公司于2007年发布的一个开源机器人操作系统。
ROS包括一个类似于操作系统的硬件抽象,但它不是一个传统的操作系统,它具有可用于异构硬件的特性。此外,它是一个机器人软件平台,提供了专门为机器人开发应用程序的各种开发环境。
ROS是起源于2007年斯坦福大学人工智能实验室的项目与机器人技术公司Willow Garage的个人机器人项目(Personal RobotsProgram)之间的合作,2008年之后就由Willow Garage来进行推动。

(1)ROS是开源的,是用于机器人的一种后操作系统,或者说次级操作系统。它提供类似操作系统所提供的功能,包含硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间的消息传递、程序发行包管理,它也提供一些工具程序和库用于获取、建立、编写和运行多机整合的程序。

(2)它为软件开发人员开发机器人应用程序提供了许多优秀的工具和库。同时,还有优秀的开发者不断地为它贡献代码。从本质上讲, ROS 并不是一个真正意义上的操作系统,而更像是一个基于操作系统之上的一个软件包。它提供了众多在实际机器人中可能遇到的算法:导航、通讯、路径规划等等。

(3)ROS的版本号是按照字母顺序来排列的,并随着Ubuntu系统发布更新。通常一个ROS版本会支持两到三个Ubuntu系统版本。ROS从Box Turtle开始,截止至本书写作时间(2016年)为止,已经更新到了Kinetic Kame。同时, ROS 也已经彻底重构,推出了实时性更强的2.0版本。

(4)ROS支持很多操作系统,支持的最完善的为Ubuntu及其衍生版本(Kubuntu,Linux, Mint, Ubuntu GNOME 等),对其他 Linux、 Windows等支持虽有但没有那么完善。推荐使用Ubuntu操作系统来进行开发和研究。ROS 支持目前被广泛使用的面向对象的编程语言C++,以及脚本语言Python。你可以选择自己喜欢的语言进行开发。

ROS主要特点:
1.点对点设计,一个使用ROS的系统,程序可以存在于多个不同的主机并且在运行过程中通过端对端的拓扑结构进行联系。
2.多语言支持,ROS现在支持许多种不同的语言,例如C++、Python、Octave和LISP,也包含其他语言的多种接口实现。
3.精简于集成,ROS建立的系统具有模块化的特点,各模块中的代码可以单独编译,而且编译使用的CMake工具使它很容易的就实现精简的理念。
4.工具包丰富, 为了管理复杂的ROS软件框架,我们利用了大量的小工具去编译和运行多种多样的ROS组建,从而设计成了内核,而不是构建一个庞大的开发和运行环境。
5.免费开源, ROS以分布式的关系遵循这BSD许可,也就是说允许各种商业和非商业的工程进行开发。

参考书籍与博客
[1] 胡春旭《ROS机器人开发实践》以及古月居(胡春旭)的个人主页http://www.guyuehome.com/
[2] YoonSeok Pyo、HanCheol Cho、RyuWoon Jung、TaeHoon Lim.《ROS机器人编程》,下载链接:https://share.weiyun.com/970694619c000c4fef50344d3b3defd8
[3] 摩根·奎格利(Morgan Quigley)《ROS机器人编程实践》,摩根·奎格利博士是现在负责开发和管理ROS的Open Robotics的创办人,也是软件开发负责人。
[4] ROS机器人中文社区,http://www.roswiki.com/

公开课
[1] 机器人操作系统之认识ROS http://www.shenlanxueyuan.com/my/course/86 主讲人胡春旭(古月),知名机器人博客“古月居”博主,武汉精锋微控科技有限公司联合创始人,华中科技大学自动化学院硕士。


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
六、ROS机器人开发套件
国外
Turtlebot是一款低成本的个人机器人套件,带有开源软件,它是ROS官方打造的基于ROS的软硬件学习平台,由Melonee Wise和Tully Foote于2010年11月在Willow Garage创建,Turtlebot作为移动机器人入门级产品,几乎每个研究移动机器人的都是从他开始的,同时学习资料也是最丰富的;Turtlebot提供基础的硬件架构和移动平台,以及基于ROS的开源操作系统,编程开发者只需要依据平台提供的各种接口就可以实现需要的功能(机器人定位、SLAM建图、导航、跟随等功能)。Turtlebot2代平台标配有微软Kinect相机,安装激光雷达后,可以实现基于ROS的视觉SLAM、激光SLAM;同时可以自由选配充电桩。Turtlebot3代最大不同是所有零件都需要自己组装,并且标配2D激光雷达和单片机。

国内
1.北京六部工坊的启智ROS机器人http://www.6-robot.com/
2.上海思岚科技公司将SLAM算法集成到了一个模块化的自主定位导航计算卡,基于思岚开发的基于window的SDK,避开了ROS做二次开发,http://www.slamtec.com/


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
延伸阅读
自主移动机器人(AMR)技术给AGV市场的挑战 http://www.elecfans.com/iot/654012.html
AGV、IGV、AMR,移动机器人新名词迭出,是技术升级还是概念先行? https://www.gkzhan.com/news/detail/116876.html
国内常见移动机器人产品 https://zhuanlan.zhihu.com/p/39298458
为什么我选择并且推崇用ROS开发机器人? https://www.leiphone.com/news/201701/zBHXGJcsRTioj4gH.html
国内外知名激光雷达公司盘点 https://www.cnblogs.com/slamtec/p/9921555.html
机器人自主移动的秘密,从SLAM技术说起(一) https://www.leiphone.com/news/201609/c35bn1M9kgVaCCef.html
机器人自主移动的秘密:实际应用中,SLAM究竟是如何实现的?(二) https://www.leiphone.com/news/201612/FRzmoEI8Iud6CmT2.html
机器人自主移动的秘密:SLAM与路径规划有什么关系?(三) https://www.leiphone.com/news/201612/lvDXqY82OGNqEiyl.html
激光SLAM与视觉SLAM的现状与趋势 https://blog.csdn.net/khflash/article/details/78922967
激光SLAM Vs视觉SLAM  https://www.leiphone.com/news/201707/ETupJVkOYdNkuLpz.html
激光SLAM与视觉SLAM对比 两者融合为主流方向 http://blog.itpub.net/31559640/viewspace-2285991/

 

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章