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

1.4 如何制作机器人


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

1.4.1 反应式控制

反应式控制应该算是最简单的一种机器人控制结构(或范例),它可以与前面描述的基元连接在一起。如图1-3所示,在这个范例里没有规划过程参与。传感部分直接相连到行动部分,这就意味着周围的环境感知数据一进来,执行器就会根据预先定义好的方式去行动。

就像你身体的条件反射,其实并不需要将刺激信息发送到大脑,再由大脑来决策(这个过程会较为缓慢),而是通过最近的脊髓迅速地进行反应。反应式控制的机器人行动非常快,没有任何复杂的计算,已将预先定义好的行动方式存储在机器人的某处。

1.4.2 分级(协商)控制

假定你曾经根据象棋规则编写过国际象棋程序,并利用其与机器人对弈,先是机器人下一步,然后是机器人的对手下一步,诸如此类。很明显,在这样的一个设定环境下,机器人的反应速度并不需要非常快。但是,如果它能够对将要发生的事做一些规划预测就会更加聪明,这样它就可以根据对手当前的棋路来预测对手下一步甚至下几步的棋路,进而调整自己的策略。

类似这样的结构设置就是一种十分理想的分级(或协商)控制范例。从图1-4中可以看到,感知、规划、行动形成一个闭环。因此,不管什么样的情况,这个系统都可以主动地针对所要达到的目标进行规划控制。

1.4.3 混合控制

到目前为止,我们所讨论的控制范例或是快速但不太灵活,或是聪明但相对缓慢。但在许多情况下我们真正需要的,有可能是介于两者之间的。那么,混合控制模式正试图提供这样一种控制范例。

我们该如何在实体机器人上使用混合控制呢?假设,我们要搭建一个机器人服务生,在咖啡店里为客人送咖啡饮料(本书里的大部分内容刚好都在谈这个问题)。那么,这样的机器人服务生,它自己肯定要知道这个咖啡店里的环境设置(如桌椅的摆放位置等)。一旦它得到一个任务指令,去给指定的顾客送一杯咖啡,它就需要规划出一条路线,并沿着这条路线移动。虽然我们可以预先给机器人设置好几条适合它走的固定路径,但咖啡店里还会有其他随机出现的顾客,是我们无法预知的。在送咖啡的过程中,我们既不能让机器人撞到桌子或椅子,又不能让它碰撞到随机出现的顾客。为此,我们需要一个能够进行实时调整的反应式控制器。

图1-5这张图画出了混合控制模式的结构示意图。我们可以看到,机器人先是进行任务规划,任务拆分为一系列反应式控制模式执行的动作。这里需要注意一个很有趣的事情,感知数据有助于系统的任务规划(因为需要根据它做规划)和动作执行(因为要进行反应式控制)。

图1-4 分级控制 图1-5 混合控制

这就是一个机器人简单的制作过程!现在,你知道了什么是机器人,它来自哪里,如何制作一个机器人,它都需要哪些部分组成,以及如何将它们系统地搭建在一起。是时候自己搭建一个机器人了!

时间: 2024-11-10 00:06:00

机器人系统设计与制作:Python语言实现1.4 如何制作机器人的相关文章

机器人系统设计与制作: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语言实现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语言实现3.3 本章小结

3.3 本章小结 在本章中,您已经了解了如何对一个定制的机器人ChefBot进行仿真.在前面的章节中,我们讨论了机器人的机械设计.在完成机器人设计之后,我们开始将机器人放在一个模拟环境里进行仿真,并对机器人的机械结构进行测试,检查是否满足提出的需求.在本章中,您了解了各种各样的模拟仿真应用程序,包括工业.研究和教育等不同的领域.在此之后,我们讨论了ROS框架下和Gazebo仿真器如何用于执行仿真过程.我们还创建了一个ROS的示例功能包hello_world.学会安装TurtleBot包集合,并通

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

1.5 本章小结 在这一章中,你了解了机器人到底是什么,以及这个术语从何而来.我们给出了一个尽量准确.完整的机器人定义:机器人是存在于物理世界中的自主系统,能够感知周围环境,依靠自身判断采取行动并完成特定目标.我们还简单回顾了机器人领域的历史起源,发现了在真正的机器人(根据我们的定义)时代到来之前许多有趣的机械装置.接着,我们讨论了机器人的基本构建块,即执行器.传感器和控制器,其组合方式有多种多样.最后,我们对控制系统的体系结构进行了更深层次的研究,这些在设计机器人的时候将非常有用. 在下一章中

Python语言在未来的发展前景

做了JAVA开发十年,也做过大大小小的项目,最近一两年做开发的被一门编程语言,也就是Python给刷屏了,在各个论坛中,关注圈中,Python的关注量一直都是很高,今天小编给大家聊一下学习Python语言可以发展哪些方向以及Python语言在未来的发展. 首先:Python语言在学术上非常受欢迎,不是计算机专业的人,很多都在学习Python.因为这个语言的前景是不可限量的,而且他的语法非常的简单易懂,这就让很多一些提及编程就恐慌的人减去了担心,现在已经是一人应该掌握一门编程语言的时代,很多不是程