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

1.3 机器人上都有什么


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

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

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

1.3.1 肢体

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

1.3.2 传感器

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

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

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

1.3.3 执行器

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

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

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

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

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

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

1.3.4 控制器

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

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

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

时间: 2024-12-28 15:04:01

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

机器人系统设计与制作:Python语言实现2.1 服务机器人的设计需求

摘要 服务机器人的机械设计 本书的主要目的是通过设计和构建机器人,并使用Python语言对它进行编程实现来学习机器人技术.我们先来看看如何从零开始对机器人的机械结构进行设计.我们将要设计搭建的是一种服务机器人,它将用于酒店和餐馆为顾客提供食物和饮料. 在本章中,我们可以看到这个机器人将使用的各种各样的机械零部件.同时,还将学到如何组装这些机械零部件.我们可以使用CAD软件工具来设计和装配这些零部件,同时搭建一个机器人的3D模型进行模拟仿真. 酒店里使用的机器人一般会比较大,但在这里我们打算搭建一

机器人系统设计与制作:Python语言实现2.5 用Blender制作机器人的三维模型

2.5 用Blender制作机器人的三维模型 在这一节中,我们将设计机器人的3D模型.3D模型主要用来进行三维仿真,采用Blender工具软件进行建模.Blender的版本必须要在V2.6以上,目前我们只在V2.6以上版本中测试过. Blender软件主界面上的工作空间和用于3D建模的工具栏如图2-14的屏幕截图所示. 我们选择用Blender这个工具的主要原因是,它可以用Python脚本语言进行机器人的3D建模.Blender有一个内置的Python解释器和脚本编辑器,用于代码编写.这里,我们

机器人系统设计与制作:Python语言实现导读

前 言 本书包含12章,主要介绍如何从零开始构建自主移动的机器人,并使用Python进行编程.本书所提到的机器人是用于家庭.宾馆.餐厅的服务机器人,我们将按照顺序介绍如何一步一步构建它.书中从机器人的基本概念开始,然后过渡到机器人三维建模和仿真,在成功进行机器人仿真之后,将介绍构建机器人原型所需要的硬件组件. 机器人的软件部分主要基于Python编程语言和其他一些软件框架开发,这些软件框架包括机器人操作系统(ROS).OpenCV等.你将会从设计机器人到设计人机界面等多个方面来了解如何使用Pyt

机器人系统设计与制作:Python语言实现2.6 习题

2.6 习题 1.?什么叫作机器人建模?它有什么作用? 2.?机器人2D模型的作用是什么? 3.?机器人3D模型的作用是什么? 4.?与手动建模相比,使用Python脚本语言建模有什么好处?

机器人系统设计与制作:Python语言实现3.1 什么是机器人仿真

摘要 用ROS和Gazebo进行机器人仿真 在上一章中,我们了解了机器人的机械设计过程,并着手设计了机器人的2D和3D模型.在这一章中,将对我们设计的机器人进行模拟仿真.在进行仿真之前,要先来了解一下机器人仿真的作用,它存在的优缺点,以及各式各样的机器人仿真软件工具. 本章中我们还将讨论机器人的运动学和动力学参数,它会有助于您了解机器人的各项功能.在讨论了这些概念之后,将确定用于机器人仿真的软件平台.我们计划是在机器人操作系统(Robot Operating System,ROS)平台下,使用G

机器人系统设计与制作:Python语言实现2.7 本章小结

2.7 本章小结 本章主要针对机器人的机械结构设计做了介绍,包括机器人的底盘设计和机械零部件的参数计算.在机器人的机械设计部分,首先需要对机器人的使用需求有一定的了解.一旦需求确定了,我们就可以开始挑选机器人机械设计中所需的组件和计算组件的参数.在满足了组件要求之后,我们就可以根据给定的需求开始设计机器人的底盘.机器人的底盘设计包括构建机器人过程中需要的所有零部件的平面设计.在零部件的2D设计完成之后,我们学习了如何使用Blender工具软件和Python脚本语言来构建机器人3D模型.3D模型中

机器人系统设计与制作:Python语言实现1.1 什么是机器人

摘要 机器人学概述 你如果读过技术性比较强的书籍,就会发现此类书的开头第1章基本都遵循相同的结构.它会先向读者描述一下该书所选的主题多么有意义,开始阅读该书是做了一个多么正确的决定,以及在后续的章节中会有很多非常有意思的内容不断地吸引你一直看下去. 但本章并不是上述所说的这样一个章节.本章从下面这个观点开始: 机器人学是一门艺术. 对于这样一个鲜明的观点陈述,可能需要对它有更多更详细的解释,但是,我相信在读完本书并亲自动手搭建起属于自己的机器人后,你就不再需要更多的书面解释,在实践中就能逐步体会

机器人系统设计与制作:Python语言实现1.2 机器人从哪儿来

1.2 机器人从哪儿来 正如标题所示,本节要介绍的应该是机器人的历史起源.我们已经知道了一些非常重要的事实,比如"机器人"一词是由一位捷克作家Karel apek在1920年提出的,而且通过事实考证,在那几年里,还发生了很多更有趣的事情.为了讲述上更有序,让我们从头开始来看. 历史上很难准确地找出一个具体日期,说它就是第一个机器人诞生的时间.在此之前,我们对机器人已经有了一个相对严格的定义,因此一直等到20世纪,一个真正的严格意义上的机器人才出现.在那之前,我们充其量只是提到这个名词而

机器人系统设计与制作:Python语言实现1.4 如何制作机器人

1.4 如何制作机器人 如果我们试图从本章前面部分去简要抽象地了解机器人的组成部分,那么概括起来主要有以下三个过程:感知部分(由传感器完成).行动部分(通过执行器完成)和规划部分(如果一定要有的话,由控制器完成).我们可以通过给机器人配置不同的体系结构得到不同的功能属性,这主要取决于如何搭建连接这三个过程(这些构建模块也称为基元).下面,我们来说说三个非常基础的体系架构(也称为范例). 1.4.1 反应式控制 反应式控制应该算是最简单的一种机器人控制结构(或范例),它可以与前面描述的基元连接在一