人们有时会向我询问机器人技术资源。这个主题没有很多高质量的互联网优先列表,因此我做了一个可以链接的列表。我会不断更新此列表,因此如果缺少任何内容或您有更好的链接,请随时提出建议。
机器人技术可能会涉及到众多领域(从数学到物理学到计算机科学到机械工程的所有领域都应运而生)。请记住:您不会在任何事情上都是专家。您不可能最终成为一切专家。学习也不是一条线性的道路。在课程之外,在项目中根据需要获取知识。
不论是加入俱乐部,实验室,还是幸运的从事实习或工作,都不要尝试使自己的知识充斥于最大的理论,而应尝试获得尽可能多的实践经验(见下文)。
如果没有某种环境强制功能,很难独自完成某件事。如果可能的话,将自己置身于一个致力于解决您感兴趣的问题的社区中。
第一届机器人竞赛-简而言之,FRC对我来说是最棒的事情。如果您可以找到一个团队,请他们让您参加…
不幸的是,在这些机器人技术之外,目前尚不容易涉足。从硬件到驱动程序再到算法到用户界面,到(有用的)机器人系统的“活动部件”数量巨大,这意味着很难在几周内完成一个演示,吸引用户,并引导/应用到某些加速器,例如在许多软件项目中。即使拥有世界上所有的知识,也很难从“黑客”过渡到“职业”。如果您知道解决方案,请告诉我。
计算机编程-如果您基本上想从事机器人技术的任何工作,那么这是必不可少的。 Python和C ++是最重要的语言-两者都要学习。熟悉基本的数据结构和算法概念有助于解决问题,在某些领域(例如运动计划)中,其起初的作用不如您想像的那么重要-不必成为主leetcoder。
线性代数-在除基本基本控制之外的大多数主题中至关重要。如果您想成为专家,Axler的书是不错的选择(尽管我并没有从整体上做到它😳)。
微积分-基本微分微积分和偏导数是理解机器人中无处不在的优化算法所必需的。
如果您想快速概述上述两个主题,那么《程序员的数学入门》一书实际上是一个坚实的基础。
如果您想学习基础知识,Wiki的PID控制器也不错(行业中95%的控制器是PID)。 Ben Recht的博客文章也不错。
控制挑战是一组(非常有趣的)挑战,可让您测试编写基本控制器的能力。
FIRST机器人团队254的演讲非常适合介绍机器人控制的基础知识,并展示了如何使用简单插值来改进基本PID。
机器人数学与力学操作-Nathan Ratliff的这组笔记对许多主题进行了很好的概述。这些关于ETH机器人动力学的笔记也很棒。
过滤-Python中的卡尔曼过滤器和贝叶斯过滤器非常适合阅读贯穿整个交互式笔记本示例的内容。有助于建立贝叶斯统计量以及线性和非线性动力学系统的滤波器如何工作的直觉。如果您需要简短的概述,那么有关Kalman过滤器的Wiki文章和此博客文章也写得很好。
机器学习与神经网络-将神经网络作为函数逼近器,而不是将注意力放在机器学习的基础上,这是它们在机器人技术中作为感知和决策模块的主要用途。在这方面,迈克尔·尼尔森(Michael Nielsen)的书是我最喜欢的资源。规范的深度学习书是很好的参考书,但您无需阅读全部内容-根据需要选择特定的主题。
路径和运动计划-我在该领域还没有读过很多书;维基有一个不错的概述,并详细介绍了一些基本算法。
强化学习与发展有关控制器的更多信息-Ben Recht的“ RL局外人之旅”提供了许多相关概念的简洁明了的概述,并将它们与经典控制联系在一起。深度强化学习的兴起是该主题的另一个重要参考,它展示了该领域研究的许多最重要的算法。
软件的空间是如此之大,以至于我无法在这里全部容纳它……此列表提供了有关这方面的更全面的概述。我发现有用的一些实用程序是:
艾萨克体育馆(Isaac Gym)最近发布,并提供了非常快速的样本以进行强化学习。它通过在GPU上并行运行数千个环境来实现此目的(在几乎所有其他模拟人生中,物理都是在CPU上运行的,这意味着您一次只能运行一个环境)。您可以在以前花费数小时的几分钟内训练任务。
凸优化可用于从模拟器到控制器甚至更多的一切。我打算在某个时候阅读规范书籍(免费)。
伯克利高级机器人技术课程以演讲形式提供了相对独立的许多主题的论述(不要被“高级”绰号所吓倒,这不是那么容易理解的😅。)
拉斯·特德拉克(Russ Tedrake)的欠驱动机器人与操纵课程看起来确实很棒(我还没有自己做这些事情)。
域随机化被低估了,并且随着我们获得能够更好地泛化的更快的模拟器,它可能会变得更加重要。从OpenAI学习敏捷性是非常有趣的论文,围绕改进模拟器参数的工作线显示出两种不同且有趣的方法来使用这种强大的方法。
强化学习的层次结构在使行为普遍化方面显示出令人鼓舞的结果,DeepGait和UniCon论文是两个有趣的例子。
DexPilot是用于远程操作(视频)的非常酷的低成本系统。部分启发了我有关遥操作的文章。
可能是我最薄弱的地方……寻求有关特定优质资源的建议。 OnShape是设计事物的绝佳资源,即使只有很少的CAD经验(甚至我也能使用它),它还是非常出色的。OpenDynamic Robot计划有许多机器人,您可以使用现成的组件进行构建。
很有意思的一面,但是资源很少(我敢肯定,该领域的许多人都不会发表他们的论文。)如果您有其他我想念的内容,请发送!