机器人/设计基础/你需要了解什么
机器人学涵盖多个科学和工程学科,所以当你想要设计一个更好的机器人时,你应该在这些领域获得一些基本知识。你需要学习多少取决于你想让你的机器人有多复杂。举个例子:一个小型系绳桌面机器人只需要一些关于电子学和编程的基本知识,一个鞋盒大小的机器人需要一些关于机械学方面的额外知识(主要关于平衡),而一个大型机器人甚至可能需要一些关于固体力学的知识。
本页涵盖了在机器人学中广泛应用的领域。你不需要了解所有这些主题的所有内容,但是了解每个领域的知识可以帮助你构建更好的机器人,并防止你犯一些初学者常见的错误。
机械学是关于
- 力的传递方式,在结构的不同部分之间。
- 重心在哪里。
- 摩擦
- 位置、速度、加速度
- 牛顿定律
- 惯性
- 材料特性
机械学有助于保持机器人的平衡。虽然你可以在对机械学一无所知的情况下构建一个机器人,但了解机械学可以防止你的机器人在转弯或拾取东西时翻倒。
机械学发挥作用的另一个方面是轴。在小型机器人上,你可以将轮子直接连接到电机的输出轴。然而,这对大型机器人并不适用,因为这样会给电机的内部部件带来很大的压力。更好的方法是将轮子连接到轴上,并使用齿轮将电机连接到轴上。了解机械学可以帮助你构建这样的结构。
如果你的机器人是一个小型寻迹机器人,几乎任何建筑材料都可以使用。但是,如果你的机器人重几公斤,那么使用比纸板和吸管更坚固的材料是合适的。如果你的机器人是人类大小的,你应该考虑使用金属和/或复合材料。
参见 理论力学 来了解该领域的介绍。
"理论力学" 刚开始,所以目前还没有太多内容可以阅读。
电子学是关于
- 电子元件
- 模拟电路
- 数字逻辑
- 微控制器
电子学是不可或缺的(除非你想要构建一个完全机械的机器人或使用气动进行控制)。如今有许多关于电子学基础的书籍(参见 电子学)。
计算机编程是关于
- 控制结构(顺序、选择、迭代)
- 数据类型(常量、变量、整数、实数、字符串等)
- 算法
- 硬件控制(设置和读取寄存器、中断等)
- 逻辑
任何学过编程入门课程的人(例如美国高中提供的课程)都会熟悉前三点。第四点在入门课程中很少涉及,但对编程微控制器至关重要。虽然听起来很难,但实际上非常简单(对于大多数目的)。这主要归结于使用简单的布尔逻辑设置字节中的位,并将该值写入某个寄存器或内存位置。像 Bascom 这样的高级语言将硬件寻址作为特殊变量提供,这些变量可以像任何其他变量一样对待。
微控制器(和处理器板)是使用汇编语言仍然非常有效的领域之一。它们的内存(包括 RAM 和程序空间)非常有限,尽管每一代新的微控制器都具有更少的内存,但价格却差不多。许多微控制器提供 2K 到 30K 的内存,而处理器板的内存通常高达 256K。这些数字差异很大,但仍然明显少于 PC 的内存。但是,如果你不了解汇编语言,大多数微控制器和处理器板都提供各种语言的编译器(C、C++、Basic、Pascal、Fortran 等)。
机器人编程也是关于
- 事件循环。大多数微控制器没有资源用于线程。你需要每隔一小段时间查看你的机器人任务,并选择要采取的最小动作。程序在这个时刻能做些什么来更接近它的目标?
- 解释传感器数据。传感器有很多方法提供噪声或误导性信息;你能接受多少种类型的错误?电位器上的灰尘、断开的开关和光电二极管上的百叶窗闪烁是明显的故障。温度漂移、非线性响应曲线或机器人看到自己的影子怎么办?
- 决策,或 **人工智能** 是在当前系统约束下做出正确决策的艺术。
- 电机和运动。使机器人运动通常需要同时移动多个电机,通常还需来自传感器的反馈。
固体力学是关于力如何在固体材料内部分布的。了解这方面的知识非常有用,因为它解释了材料对载荷的反应方式。这有助于防止使用过厚或过薄的材料。这对小型或中型机器人来说不是必须的,但它可以让你更有效地使用建筑材料,并让你了解材料为什么以及如何失效(断裂和/或变形)。参见 [此维基教科书] 来了解固体力学的入门知识。注意:前方有大量的数学知识。
即使你对数学有致命的恐惧,也要克服它,因为它提供了关于材料如何断裂和变形的有价值的见解。不需要记忆数学公式,只要理解其背后的思想即可。
人工智能(在机器人学中)是关于
- 找到两点、三点(或更多)之间最短的路径
- 处理障碍物
- 处理新情况(机器学习)
关于人工智能有很多 书籍,它们涵盖了多个不同的层次。这个领域的历史虽然短暂,但已经成果丰硕,但仍有很长的路要走。人工智能不仅仅是让计算机思考和推理。它更多地是关于在机器中组织、排序和整理知识,以及构建算法从这些数据库中提取现实世界结论。像 谷歌 或 雅虎 这样的搜索引擎就是人工智能实际应用的例子。
除了纯粹的人工智能书籍外,关于大脑如何工作的书籍以及其他类似的书籍可以为机器人的人工智能提供有趣的视角。注意力和集中力等概念可以以某种有趣的方式应用于集成传感器数据。
虽然数学通常被视为终极的理论科学,但它可能是机器人学许多更高级领域中最重要的技能之一。例如,力学需要大量的数学知识。对于简单的结构,你只需要高中水平的数学知识,而对于更复杂的形状,则需要使用更复杂的数学工具,例如积分。但由于机器人学是一门非常实用的手艺,所以很多事情都可以通过近似来完成。然而,数学在进行正确的近似时非常有用。