机器人系统设计与制作:Python语言实现2.2 机器人的传动装置

2.2 机器人的传动装置


移动机器人导航中有一种性价比较高且有效的解决方案就是采用差分传动系统。对于移动机器人室内导航来说,这是一种最简单的传动装置。这种差分驱动的机器人是由两个安装在同轴上的轮子组成的,两个轮子分别由两个独立的电机控制,其上有两个被称为脚轮的支撑轮。这样能够确保机器人的重心分布和稳定性。图2-1画出了一个典型的差分传动系统。

下一步是要选择这个机器人差分系统的机械零部件,主要是电机、轮子和机器人的底盘。根据需求,我们首先来看如何选择电机。

2.2.1 选择电机和轮子

在了解了电机的规格参数后,我们开始选择电机。其中,电机的转速和扭矩是两个非常重要的参数。我们可以从给定的需求中计算出它们的参数值。

2.2.1.1 计算电机转速

假定,要求机器人的行走速度是0.35m/s。我们知道,根据需求机器人的行走速度要在0.25~1m/s之间。假设轮子的直径是9cm,因为根据需求可知离地间隙要大于3cm。使用下列方程,我们能够算出电机的转速:

转速=(60×速度)/(3.14×轮子的直径)

转速=(60×0.35)/(3.14×0.09)= 21 / 0.2826 = 74 r/min

计算方式可参考:http://www.robotshop.com/blog/en/vehicle-speed-rpm-and-wheel-diameter- f?inder-9786。

当机器人行走速度为0.35m/s且轮子直径为9cm时,计算得到74RPM。因此,我们可以考虑设定80 RPM为标准值。

2.2.1.2 计算电机扭矩

那么,接下来看看如何根据需求计算出机器人移动所需要的电机扭矩:

1.?轮子个数为4个,包括2个脚轮。

2.?电机个数为两台。

3.?假设摩擦系数为0.6,轮子的半径为4.5cm。

4.?机器人的总重量W =机器人的重量+负载=~100N +~50N =~150N,总质量= 15kg。

5.?重量分布到4个轮子上,可以写成:2×N1 + 2×N2 = W,其中,N1是分布到每个脚轮上的重量,N2是分布到每个电机驱动的轮子上的重量。

6.?假设机器人处于静止状态。当机器人开始移动时需要的扭矩最大,因为它必须要克服地面摩擦力。

7.?在机器人移动之前,我们可以认为机器人的扭矩和摩擦力都等于0。在满足这样的设定条件下,我们可以得到最大扭矩:

μ×N×r - T = 0,其中μ表示摩擦系数,N表示每个轮子上的平均重量,r表示轮子的半径,T表示扭矩。

N = W/1(假定机器人的重量平均分布在4个轮子上)。

那么,我们可以得到:

0.6×(150/2)×0.045 - T = 0

所以,T = 2.025 N·m或20.25 kgf·cm (1kgf·m = 9.806?65 N·m)

2.2.2 设计小结

通过设计需求,我们计算得到下列值:

电机转速等于80RPM。

电机扭矩等于20kgf·cm。

轮子直径等于9cm。

2.2.3 机器人底盘设计

计算出机器人的电机和轮子参数之后,我们可以开始设计机器人底盘,或者叫作机器人的身体部分。根据设计需求,机器人底盘要能够存放食物,必须能够承受5kg的有效负重载荷,机器人的底盘离地间隙应该大于3cm,且低成本。除此之外,机器人底盘上还要有能放置电子器件的空间,如个人电脑(PC)、传感器和电池。

有一种最简单的设计能满足这些要求,就是类似于分层桌面的设计。TurtleBot(http://www.turtlebot.com/)就是一种类似于分层桌面的设计。它的底盘部分可以分为3层。被称为Roomba的机器人平台就是这种平台的传动装置。Roomba有内置的电机和传感器,所以无须担心它的硬件设计。图2-2画出了机器人TurtleBot的底盘设计。

我们将设计一个类似于TurtleBot的机器人,它有自己的移动平台和组件。我们的设计也将有3层体系架构。那么,来看看开始设计之前都需要哪些工具。

在开始设计机器人的底盘之前,我们需要了解一下计算机辅助设计(CAD)这个软件工具。目前广泛流行的CAD工具有:

SolidWorks (http://www.solidworks.com/default.htm)

AutoCAD (http://www.autodesk.com/products/autocad/overview)

Maya (http://www.autodesk.com/products/maya/overview)

Inventor (http://www.autodesk.com/products/inventor/overview)

Google SketchUp (http://www.sketchup.com/)

Blender (http://www.blender.org/download/)

LibreCAD (http://librecad.org/cms/home.html)

底盘设计可以使用以上你熟悉的任何一款工具软件。在本书中,我们将使用LibreCAD设计2D模型,使用Blender设计3D模型。以上这些应用软件有一个亮点,即它们全部都是免费的,而且适用于所有的操作系统。我们将使用MeshLab这个3D网格显示软件来查看所设计的3D模型,并使用Ubuntu作为主要的操作系统。同时,我们还可以了解这些应用程序在Ubuntu 14.04.2操作系统上的安装过程和使用它们进行设计的过程。我们也会提供这些应用程序在其他平台上的安装教程链接。

时间: 2024-12-01 20:55:31

机器人系统设计与制作:Python语言实现2.2 机器人的传动装置的相关文章

机器人系统设计与制作: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 反应式控制 反应式控制应该算是最简单的一种机器人控制结构(或范例),它可以与前面描述的基元连接在一

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

1.3 机器人上都有什么 在本章一开始的时候,我们就试图给出一个比较完美的(现代意义上的)机器人的定义.事实证明,我们所提出的这个定义不仅能够描述我们所知道(或想要知道)的机器人,还给我们提出了重要的指标--在一个机器人上最可能有什么.我们再来看看定义: "机器人是存在于物理世界中的自主系统,能够感知周围环境,依靠自身判断采取行动并完成特定目标." 那么,机器人上哪些部分是最重要的?下面就是我们所列出的重要部分. 1.3.1 肢体 很难让一个没有实体躯干肢体的机器人存在于物理世界中.显