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

简介:

1.4 如何制作机器人


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

1.4.1 反应式控制

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

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

1.4.2 分级(协商)控制

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

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

1.4.3 混合控制

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

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

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

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

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

相关文章
|
3月前
|
人工智能 自然语言处理 机器人
探索人工智能:使用Python构建一个简单的聊天机器人
探索人工智能:使用Python构建一个简单的聊天机器人
205 0
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
Python 语言的瑰宝:数据科学中的无限潜能
在当今数字化时代,数据科学的应用已成为推动企业和学术界前进的重要力量。而Python语言,作为一门简洁、灵活且功能强大的编程语言,正日益成为数据科学领域的首选工具。本文将探讨Python语言在数据科学中的广泛应用,从数据分析到机器学习,再到人工智能。
|
6天前
|
前端开发 Java Go
开发语言详解(python、java、Go(Golong)。。。。)
开发语言详解(python、java、Go(Golong)。。。。)
|
22天前
|
JSON 网络协议 前端开发
【UR六轴机械臂源码】python脱离示教器控制UR机械臂实时采集机器人位姿(优傲机器人)
【UR六轴机械臂源码】python脱离示教器控制UR机械臂实时采集机器人位姿(优傲机器人)
|
27天前
|
自然语言处理 机器人 Python
Python实现简易聊天机器人
Python实现简易聊天机器人
14 2
|
1月前
|
XML 数据采集 数据格式
Python语言的结构化标志语言处理
Python语言的结构化标志语言处理
|
2月前
|
Rust API Android开发
Python潮流周刊#4:Python 2023 语言峰会
Python潮流周刊#4:Python 2023 语言峰会
18 2
|
2月前
|
JavaScript 前端开发 C语言
Python 到底是强类型语言,还是弱类型语言?
Python 到底是强类型语言,还是弱类型语言?
17 2
|
2月前
|
开发者 Python
Python中的元编程:扩展语言的力量
【2月更文挑战第5天】本文将探讨Python中的元编程,介绍了元编程的概念和意义,并详细讨论了Python中常用的元编程技术,如装饰器、元类和动态类型。通过元编程,我们可以在不改变语言核心的情况下,扩展Python的功能和灵活性,为开发者提供更强大的工具和框架。
|
2月前
|
供应链 JavaScript 前端开发
25个常见的python系统设计源码(python+mysql+vue)
25个常见的python系统设计源码(python+mysql+vue)
95 3

热门文章

最新文章