zl程序教程

您现在的位置是:首页 >  后端

当前栏目

机器人系统设计与制作:Python语言实现1.3 机器人上都有什么

Python机器人系统语言 实现 什么 设计 制作
2023-09-11 14:16:03 时间


在本章一开始的时候,我们就试图给出一个比较完美的(现代意义上的)机器人的定义。事实证明,我们所提出的这个定义不仅能够描述我们所知道(或想要知道)的机器人,还给我们提出了重要的指标——在一个机器人上最可能有什么。我们再来看看定义:

“机器人是存在于物理世界中的自主系统,能够感知周围环境,依靠自身判断采取行动并完成特定目标。”

那么,机器人上哪些部分是最重要的?下面就是我们所列出的重要部分。

1.3.1 肢体

很难让一个没有实体躯干肢体的机器人存在于物理世界中。显然,拥有实体躯干肢体的机器人更有其优势(在现实物理世界中,这样的实体机器人会比计算机模拟仿真更令人兴奋),但也需要更高的花费。例如,实体机器人在某个时间只能出现在一个地方,几乎不太可能改变它的物理形状,同时它的功能也会受到物理实体的限制。由于机器人所处的环境也是真实物理世界,可以假设机器人不是物理世界里的唯一对象。这就带来了一定程度的挑战,例如,要确保机器人不会撞到墙,不会撞到人或其他物体,甚至是另一个机器人。当然,为了做到这一点,机器人就需要具有感知周围环境的能力,正如我们定义里所描述的那样。

1.3.2 传感器

我们已经在一定深度上讨论了机器人传感器的重要性,没有它们,机器人就迷失了方向。那么,问题就来了:“机器人通过传感器具体能感知到什么?”在许多其他地方(从科技角度来说),这主要取决于给定的环境中机器人要完成的任务和目标,机器人的整体设计和功率的消耗等。一个好的机器人设计者和程序开发人员会综合考虑所有的这些因素,使得机器人最后可以通过感知周围环境得到适量的信息,来完成它的任务并达到目的。

感知中一个非常重要的概念就是状态。机器人的状态本质上就是在任意给定时刻表示自身的所有状态参数。例如,如果我们假定一个机器人装有声音传感器(可以测量周围环境的噪声等级),但是无法知道它此刻还剩余多少电量,这种情况下我们可以称之为部分可观测(partially-observable)。另一方面,如果这个机器人装有一个传感器,它能够获得机器人的每一个输出值并感知周围环境的每一个物理特性,这种情况下我们可以称之为完全可观测(fully observable)。

既然我们已经能够知道机器人在周围环境中的状态了,那么我们就需要机器人对周围环境做出一些反应,这需要一个类似的执行器。

1.3.3 执行器

当我们在解释机器人定义的时候,就已经接触到了执行器这个概念(虽然很简单),我们已经知道执行器是让机器人去做一些实际的动作,而具体承担着干重活、累活的那部分,被称为执行机构,它也属于整个执行器中的一部分。

之前我们一直没有提及,执行器能够对机器人的两种主要活动起到辅助作用:运动和操控。

一般来说,运动顾名思义就是从A点移动到B点。在机器人学的子领域里,这是一个非常有意思的课题,叫作移动机器人学。这个子领域的研究遍及各式各样的机器人,包括在空中飞的、水下游的以及陆地上行走的。

对于操控来说,就是让机器人将物体从一个地方搬运到另一个地方。在机器人学中,对机械臂的控制也是一个非常有意思的过程,它包括大部分不同工况下的各种各样的机械臂,主要用在工业领域。

从完整性上考虑,机器人上不同的执行器都有哪些区别?从最主要的功能上看,它们都是各种各样的电动机带着几个轮子,让机器人可以动起来。

一旦我们从周围环境中得到数据信息,就能够根据这些信息产生适当的行为。但在这两者之间我们还忽略了一个问题:是什么连接着传感器和执行器呢?

1.3.4 控制器

最终,我们对整个系统得出了这样一个结论:如果没有控制器,机器人不可能完全地自主控制。控制器需要使用来自传感器的数据,来决定下一步要做什么,进而通过执行器进行一些操作。看起来这是一个简单的描述,但最后事实证明控制器部分很难进行精确的操作,特别是当你第一次用它们的时候。

对于大多数机器人业余爱好者和大部分的移动机器人来说,控制器通常是一些可用低级编程语言进行编程控制的微处理器。当然,一个机器人也经常会使用多个控制器。然而,尽管多个控制器确实能够在主控制器突然发生意外情况的时候起到备份作用,以及在由多控制器组成的模块化系统中,每个模块都可以通过独立的控制器去控制,但这些都不是轻而易举所能够实现的。其中,最关键的技术就是多控制器之间的通信,这需要大量的专业知识提供支撑。

现在,我们已经准备好了一个机器人需要的所有构建块,下面简要讨论一下它的组织架构。这看起来好像不太重要,但事实证明预先拥有一个好的设计方案可以节省很多的资源、物力和人力。那么,现在让我们开始系统地搭建一个完整的机器人体系架构。