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

简介:

1.3 机器人上都有什么


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

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

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

1.3.1 肢体

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

1.3.2 传感器

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

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

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

1.3.3 执行器

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

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

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

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

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

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

1.3.4 控制器

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

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

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

相关文章
|
2月前
|
机器人 数据安全/隐私保护 Python
企业微信自动回复软件,企业微信自动回复机器人,python框架分享
企业微信机器人包含完整的消息处理流程,支持文本消息自动回复、事件处理、消息加密解密等功能
|
1月前
|
JavaScript 前端开发 机器人
【Azure Bot Service】在中国区Azure上部署机器人的 Python 版配置
本文介绍了在中国区Azure上使用Python SDK配置Azure Bot Service时遇到的问题及解决方案,涵盖参数设置与适配器配置,适用于希望在Azure中国区部署Python机器人的开发者。
|
2月前
|
JSON 机器人 API
微信机器人自动回复插件,vx自动回复机器人脚本助手,python框架分享
这个微信机器人系统包含三个主要模块:主程序基于itchat实现微信消息监听和自动回复功能
|
2月前
|
机器人 API 数据安全/隐私保护
QQ机器人插件源码,自动回复聊天机器人,python源码分享
消息接收处理:通过Flask搭建HTTP服务接收go-cqhttp推送的QQ消息47 智能回复逻辑
|
2月前
|
JSON 机器人 数据安全/隐私保护
微信自动聊天机器人, 微信自动回复机器人,python框架分享
这个微信机器人实现包含主程序、配置文件、工具函数和测试脚本四个模块。主程序使用itchat库
|
2月前
|
JSON JavaScript 前端开发
Python+JAVA+PHP语言,苏宁商品详情API
调用苏宁商品详情API,可通过HTTP/HTTPS发送请求并解析响应数据,支持多种编程语言,如JavaScript、Java、PHP、C#、Ruby等。核心步骤包括构造请求URL、发送GET/POST请求及解析JSON/XML响应。不同语言示例展示了如何获取商品名称与价格等信息,实际使用时请参考苏宁开放平台最新文档以确保兼容性。
|
9月前
|
Unix 编译器 C语言
[oeasy]python052_[系统开发语言为什么默认是c语言
本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。
86 5
|
10月前
|
机器学习/深度学习 算法 TensorFlow
基于深度学习的【野生动物识别】系统设计与实现~Python
动物识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对18种动物数据集进行训练,最后得到一个识别精度较高的模型。并基于Django框架,开发网页端操作平台,实现用户上传一张动物图片识别其名称。目前可识别的动物有:'乌龟', '云豹', '变色龙', '壁虎', '狞猫', '狮子', '猎豹', '美洲狮', '美洲虎', '老虎', '蜥蜴', '蝾螈', '蟾蜍', '豹猫', '钝吻鳄', '雪豹','非洲豹', '鬣蜥'。本系统是一个完整的人工智能,机器学习,深度学习项目,包含训练预测代码,训练好的模型,WEB网页端界面,数
677 2
|
11月前
|
JSON 机器人 API
详解如何使用 Python 操作 Telegram(电报)机器人(一)
详解如何使用 Python 操作 Telegram(电报)机器人(一)
2424 8
|
11月前
|
机器人 数据库 Python
详解如何使用 Python 操作 Telegram(电报)机器人(二)
详解如何使用 Python 操作 Telegram(电报)机器人(二)
778 2

推荐镜像

更多