欢迎光临小土的机器人世界
2015年我硕士毕业,当时正赶上国家提倡“大众创业万众创新”,而且要大力发展机器人技术。在这个时代背景下,我加入了一家创业公司,做大型的双足仿人机器人。 我们也做出来了几台样机,而且参加了世界机器人大会,展出效果还是不错的。感谢这家创业公司,为我打开了机器人世界的大门。我就像刘姥姥进了大观园一样,走到哪里都觉得新鲜。
到写下这篇序言时,我已经在机器人这个行业工作了5年的时间。跟着时间一起走来,我越来越真切的体会到,机器人的概念实在是太大,机器人的技术实在是太广,机器人的系统实在是太杂。 但它似乎还是有一条主线的:感知→决策→控制,这每一个环节都很有分量。用途不同,机器人(产品)的定义就不一样,技术上就会有不同的侧重点,人们就会给出各种不同的系统实现。
刚开始我把机器人看作是外设更加丰富的计算机,各种传感器和执行器就是那些丰富的外设。找一台算力比较强劲的处理器,跑上操作系统把这些外设驱动起来,一台机器人就造出来了。 后来发现,这种想法是片面的,我只看到了计算。而实际上,支撑起机器人本体的结构和电路决定了机器人的适用场景,传感器和执行器的精度和响应速度往往会对如何计算提出比较苛刻的要求。
我还一度以为机器人就是一个控制系统,只要把反馈量和控制量找出来形成闭环,故事就结束了。实际上这只是拟定了一个提纲而已,故事的情节该如何设计, 故事的人物该如何刻画,都需要认真推敲才能有好的作品。
我是希望机器人能够真正走进我们的日常生活当中,我也体会得到这件事情正在发生,只是这个过程比较曲折。这两年来听到了太多不明觉厉的概念、名词, 人们给大众和投资人们描绘了很多美好的画面。以至于人们对机器人技术的期望很高,但实际的产品落差很大。人们开始怀疑机器人无法落地。但是,不管机器人能不能落地, 我觉得未来我们的生活中一定充满了各式各样的机器人。
机器人操作系统之ROS | 本系列的文章是我个人对官方教程以及相关源码的解读,算是我的入门笔记。 ROS系统提供了一个"进程间的通信框架",让我们能够方便的把各个不同的模块组合起来,搭建一个机器人的控制系统。 由于有很多开源的工具可以使用和借鉴,使得我们可以专注于某个方面的技术,而不必为机器人宽泛的概念和技术所困扰。 |
概率上的机器人学(Probabilistic Robotics) | 为了强迫自己读下来,索性将它翻译一遍。 这本书系统的介绍了机器人的状态估计以及定位建图的方法,在SLAM相关的技术中有着很重要的地位。 |
刚体动力学算法(Rigid Body Dynamics Algorithms) | 为了强迫自己读下来,索性将它翻译一遍。 最近想通过研究 MuJoCo 的文档和代码,入门仿真引擎。但是专业不足,很多说法都没有听过。 为了有个系统的认知,找来一本介绍刚体动力学算法的教材来看看。 据说 Mujoco 中用到的 RNE, CRB 算法以及稀疏惯性分解(sparse inertia factorization)都是参考的它。 |
Turtlebot的建图导航之旅 | 机器人操作系统之ROS的延续,从两个demo出发, 结合概率上的机器人学(Probabilistic Robotics)的基础, 来窥视一下SLAM以及导航控制都需要什么技术。详细解读了gmapping和navigation相关的技术栈。 |
机器人控制的数学物理基础 | 基础不牢,地动山摇。 |
深究ROS系统 | 简介。 |
机器视觉 | 简介。 |
双足机器人 | 简介。 |
机器人图鉴 | 简介。 |
开源SLAM框架解读
简介。。。
Cartographer源码解读 | Cartographer是google的工程师开发的一个用于室内实时建图的SLAM解决方案。总体上可以看作是由局部地图更新和全局回环检测两个部分构成。 在局部地图更新过程中,通过最优位姿估计,把激光扫描数据插入到当前维护的子图(submap)中。由于局部地图只使用最近一段时间的传感器数据, 所以存在累积误差的问题。这一问题通过全局的闭环检测来加以修正,这还是一个优化问题,Cartographer通过分支定界的方式提高了算法的运行效率。 |
ORB-SLAM源码解读 | ORB-SLAM是Raúl Mur-Artal等人在2015年提出的一种基于ORB特征点的单目SLAM算法框架。 该框架继承了PTAM的场景识别(place recognition)技术,应用了具有尺度感知(scale-aware)的闭环技术, 在大尺度操作中利用了共视信息(covisibility information)。它是一个完整的SLAM解决方案,提供了位姿跟踪、地图构建、闭环检测的功能。 后来在2017年,原作者又做了一些改进并增加了双目和深度相机的支持,发布了ORB SLAM2。 |
SLAM数据收集 | 简介。。。 |
机器人仿真
可以说仿真是机器人应用的开发最重要的工具。
MuJoCo仿真引擎 | MuJoCo 是一个通用的物理引擎,全称是 Multi-Joint dynamics with Contact。 最初由 Roboti LLC 开发,在2021年10月份被 DeepMind 收购,2022年5月开源。本系列文章主要是探索一下物理引擎的,为了通用它都用了哪些套路。 |
Gazebo仿真 | ROS系统中广泛使用的仿真工具,功能丰富,可以根据需要选择物理引擎。本系列文章编写各种demo来研究如何使用Gazebo进行仿真。 |
谋攻第三
孙子曰:夫用兵之法,全国为上,破国次之;全军为上,破军次之;全旅为上,破旅次之;全卒为上,破卒次之;全伍为上,破伍次之。
是故百战百胜,非善之善者也;不战而屈人之兵,善之善者也。故上兵伐谋,其次伐交,其次伐兵,其下攻城。攻城之法,为不得已。修橹轒輼,具器械,三月而后成; 距堙,又三月而后已。将不胜其忿而蚁附之,杀士卒三分之一,而城不拔者,此攻之灾也。故善用兵者,屈人之兵而非战也,拔人之城而非攻也,毁人之国而非久也, 必以全争于天下,故兵不顿而利可全,此谋攻之法也。
故用兵之法,十则围之,五则攻之,倍则分之,敌则能战之,少则能逃之,不若则能避之。故小敌之坚,大敌之擒也。
夫将者,国之辅也。辅周则国必强,辅隙则国必弱。故君之所以患于军者三:不知军之不可以进而谓之进,不知军之不可以退而谓之退,是谓糜军; 不知三军之事而同三军之政,则军士惑矣;不知三军之权而同三军之任,则军士疑矣。三军既惑且疑,则诸侯之难至矣。是谓乱军引胜。
故知胜有五:知可以战与不可以战者胜,识众寡之用者胜,上下同欲者胜,以虞待不虞者胜,将能而君不御者胜。此五者,知胜之道也。 故曰:知彼知己,百战不殆;不知彼而知己,一胜一负;不知彼,不知己,每战必败。