机器人走进开放源代码

Darrick Addison 是个在数据库、网络、用户界面和嵌入式系统方面具备丰富经验的研发人员,他介绍了机器人技术领域和和机器人系统有关的问题。他谈到了机械设计、传感系统、电子控制和软件。他还讨论了微控制器系统,包括串行接口连接和存储映象接口连接,并谈到了某些可供选择的开放源代码软件。

“机器人”一词起源于捷克语,意为强迫劳动力或奴隶。这个词是由剧作家 Karel Capek 引入的,他虚构创作的机器人很象 Frankenstein 博士的怪物-由化学和生物学方法而不是机械方法创造的生物。但现在流行文化中的机械机器人和这些虚构的生物创作物没多大区别。基本上,一个机器人包括:

  • 机械设备,如能够和周围环境进行交互的车轮平台、手臂或其他构造。
  • 设备上或周围的传感器,能够感知周围环境并向设备提供有用的反馈。
  • 根据设备当前的情况处理传感输入,并按照情况指示系统执行相应动作的系统。
定义的机器人

“可重复编程的多功能操纵器,设计成通过不同的编程动作为执行多种任务移动原料、部件、工具或专门的设备。” 
- 美国机器人协会,1979 年

在制造业领域,机器人的研发集中在执行制造过程的工程机器人手臂上。在航天工业中,机器人技术集中在高度专业的一种行星漫步者上。不同于一台高度自动化的制造业设备,行星漫步者在月亮黑暗的那一面工作- 没有无线电通讯 -可能碰到意外的情况。至少,一个行星漫步者必须具备某种传感输入源、某种解释该输入的方法和修改他的行动以响应改变着的世界的方法。此外,对感知和适应一个部分未知的环境的需求需要智能(换句话说就是人工智能)。

从军事科技和空间探索到健康产业和商业,使用机器人的优势已被认识到了这种程度- 他们正在成为我们集体经验和日常生活的一部分。

他们能把我们从危险和枯燥中解脱出来:

  • 安全:机器人技术已被研发用于处理核能和放射性化学制品的很多不同用途,包括核武器、电厂、环境清洁和某些药品的处理。
  • 不愉快的事:机器人执行很多乏味、不愉快但必需的任务,如焊接和看门工作。
  • 重复和精度:装配线工作已成为机器人技术工业的一个中流砥柱。机器人被广泛地用于制造业,而且,在强调最小维护需求的空间探索中,使用机器人更具备吸引力。

机械平台 -硬件基础

一个机器人包括两个主要部分:机器人的身体和某种形式的人工智能(artificial intelligence,AI)系统。很多不同的身体部分都能够叫做机器人。关节手臂被用于焊接和上漆;起重机和传送带系统在工厂中运送零件;巨型机器人机器搬运矿井深处的泥土。一般说来,机器人最有趣的一个方面是他们的行为,这需要一种形式的智能。机器人最简单的行为是移动。典型地,轮子被作为让机器人从一点移动到下一点的基本机械装置。还需要某种力(如电力)让轮子在命令时转动。

电动机

很多种电动机向机器人提供能源,让他们用不同的编程动作搬运材料、零件、工具或专用设备。电动机的效率等级表明多少消耗的电量转化成机械能。让我们看看现代机器人技术中现在被使用的一些机械设备。

直流电机: 永久磁铁,直流(Permanent-magnet,direct-current,PMDC)电机只需要两根导线,使用固定磁铁、电磁铁(定子和转子)和开关。这些组成一个换向器来通过旋转的磁场产生运动。

交流电机 交流电机在输入导线循环能源,连续地运动磁场。直流电机和交流电机在收到一个信号时会全速运转。

步进电机 步进电机就像没有电刷的直流或交流电机。他通过按顺序(步进地)向电动机中不同的磁铁提供能源使其运转。步进电机设计的目的是更好的控制,他不会只在命令时旋转,还能够以任意的“步/每秒”(最高到他的最大速度)的速度旋转。

伺服电动机 伺服电动机是闭合线圈设备。在收到信号时,他能够自我调整直到和该信号匹配。伺服电动机用于无线电控制的飞机和汽车。他是有传动装置和反馈控制系统的简单的直流电动机。

驱动机制

齿轮和链条: 齿轮和链条是机械平台,他提供了一种向另一个地方传送转动动作的强大而精确的途径(可能在传送的时候改变了动作)。两个齿轮之间速度的改变取决于每个齿轮上齿的数目。当加电的齿轮旋转一周时,他根据齿轮上的齿数来拉动链条。

滑轮和皮带: 滑轮和皮带是机器人所使用的两种另外的机械平台,工作的方式和齿轮和链条相同。滑轮是轮缘有凹槽的轮子,皮带是能够放进这个凹槽的橡皮圈。

变速箱: 变速箱运转的原理和齿轮和链条相同,但是没有链条。变速箱需要更精密的公差配合,因为不是使用一条又大又松的链条来传送力量,也不用调整错位,齿轮之间直接和对方啮合。变速箱的示例能够在汽车的传动装置、落地大座钟的定时机制和打印机的送纸装置中找到。

电源

电源一般通过两种电池提供。一次电池使用过一次就被丢弃;二次电池以一种(通常是)可逆的化学反应工作,能够多次充电。一次电池有较高的容量和较低的自放电率。二次(可充电)电池比一次电池电量小,但能够重复充电,按化学反应和环境的不同能够多达一千次。一般可充电电池第一次使用能够为电器或机器人提供 4 小时连续工作的能源。


### 回答1: ROS(机器人操作系统)是一个灵活、分布式的框架,用于开发机器人应用程序。它提供了一系列工具和库,用于帮助开发人员构建机器人的不同功能模块,并使它们能够相互通信和协调工作。 在ROS中,许多功能模块都以“软件包”形式存在,每个软件包都包含了一个特定功能的源代码和配置文件。这些软件包的源代码可以通过ROS的官方网站或其他开发者提供的资源来获取。 ROS的开发实践主要涉及以下几个方面的源代码: 1. 订阅者(Subscriber)和发布者(Publisher):ROS使用消息传递机制来实现模块之间的通信。订阅者从指定的主题(Topic)接收消息,发布者将消息发布到特定的主题。源代码中的订阅者和发布者使用ROS提供的API来创建和配置。 2. 服务(Service)和客户端(Client):ROS还提供了服务和客户端机制,用于实现请求-响应式通信。服务端提供一个特定的服务,客户端向其发送请求并接收响应。源代码中的服务端和客户端也使用ROS API来实现。 3. 动作(Action)和动作服务器(Action Server):动作是一种高层次的通信机制,可用于实现复杂的行为。动作服务器为客户端提供了一个异步的、长期运行的操作,客户端可以查询进度和取消操作。源代码中的动作服务器和客户端也是通过ROS API来实现的。 除了这些基本的通信机制,ROS还提供了许多其他功能,如参数服务器、TF变换、导航堆栈等,它们都有相应的源代码和配置。开发者可以根据项目需求选择适当的软件包,并创建自己的功能模块或修改现有的模块。 总之,ROS机器人开发实践的源代码包括了订阅者、发布者、服务、客户端、动作、参数服务器等各种通信机制的实现。开发者可以根据需要选择和使用这些源代码,以构建功能齐全、高效的机器人应用程序。 ### 回答2: ROS(Robot Operating System)是一种用于机器人开发的开源软件平台。它提供了一系列的工具和库,方便开发者构建机器人应用程序。 ROS的源代码是以开源的方式发布的,因此任何人都可以自由地访问、修改和分发它。ROS的源代码包括了ROS核心功能的实现,例如通信机制、节点管理、消息传递、服务调用等。 在ROS开发实践中,首先需要搭建ROS环境,安装ROS的源代码以及相关的库和依赖项。然后,可以使用命令行工具或者图形化界面工具创建一个ROS工作空间,并在该空间下创建项目。 在项目中,可以编写C++或者Python等代码来实现所需的功能。在ROS中,通常使用ROS的核心概念,例如节点(Node)、话题(Topic)、服务(Service)和参数(Parameter)来开发应用程序。 通过编写节点节点之间可以通过发布(publish)和订阅(subscribe)的方式进行通信,其中发布者将消息发布到特定的话题上,而订阅者则从该话题上接收消息。 此外,还可以使用ROS提供的工具和库来快速实现一些常见的机器人功能,例如导航、感知、SLAM(同步定位与地图构建)等。这些功能的实现往往依赖于ROS提供的源代码和算法。 总之,ROS机器人开发的源代码开放的,任何人都可以访问和利用它。通过使用ROS提供的工具和库,开发者可以快速构建机器人应用程序,并实践各种功能和算法。 ### 回答3: ROS(机器人操作系统)是一种开源的机器人开发平台,用于构建灵活、可扩展的机器人应用程序。ROS提供了一系列的工具、库和软件包,开发者可以使用这些工具来快速开发机器人程序。 在ROS开发实践中,源代码是非常重要的一部分。开发者可以通过编写和修改源代码来实现自己的机器人应用程序。 首先,ROS提供了一套用于创建和组织源代码的标准结构。一个典型的ROS源代码包含一个包描述文件(package.xml)和一个CMakeList.txt文件,这两个文件用于指定源代码包的依赖关系、编译选项等。 其次,在ROS中,源代码以节点(node)的形式组织。一个节点是一个执行特定任务的程序,可以通过ROS的消息传递机制和其他节点进行通信。开发者可以编写自己的节点源代码,并使用ROS提供的通信机制实现节点间的信息传递。 此外,ROS还提供了一系列的开发工具和库,用于编写常见的机器人任务代码。例如,ROS提供了用于控制运动的库(move_base)、用于感知和处理传感器数据的库(sensor_msgs)等。开发者可以找到适合自己需求的源代码,并根据需要进行修改和扩展。 最后,ROS社区是一个活跃的开发者社区,开发者可以在ROS社区中分享自己的源代码、跟踪和参与他人的开源项目。这有助于加快机器人开发的速度,并促进协作和共享。 总之,ROS机器人开发实践中的源代码是关键的一环。开发者可以借助ROS提供的工具、库和社区支持,编写、共享和修改源代码,以实现各种机器人应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值