0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用ARM和Linux实现智能机器人的控制

电子设计 作者:电子设计 2018-10-17 08:50 次阅读

引 言

现有智能机器人用直流电机作为驱动轮时一般都是用单片机或者高速的DSP等进行控制,智能机器人之所以叫智能机器人,这是因为它有相当发达的“大脑”。在脑中起作用的是中央计算机,这种计算机跟操作它的人有直接的联系。最主要的是,这样的计算机可以进行按目的安排的动作。正因为这样,我们才说这种机器人才是真正的机器人,尽管它们的外表可能有所不同。而且同一机器人往往需用多个CPU来实现各自的功能,但随着对机器人的智能化要求越来越高,需要一种新的控制器(使用一个处理器)来满足机器人的各种行为要求,例如视频采集、无线通信。本文介绍的利用ARM实现的智能机器人平台,为智能机器人的开发提供了一个新方法。Linux的引入使其他智能模块都以设备的形式存在,只有在用户需要的时候才调用相关设备驱动从而使数据融合更方便,运行多任务也更稳定。

利用ARM和嵌人式Linux作为智能机器人平台具有很大的优势,但在国内还未发现用该平台开发智能机器人的系统。本设计完成了对该系统驱动的初步编写,并通过实际验证,取得了良好效果。

1 驱动电路及测速方法

1.1 总体结构及驱动电路

系统的整体结构框图如图l所示。

利用ARM和Linux实现智能机器人的控制

本设计采用的LMD18200的真值表如表1所列。通过ARM的I/0口(例如D口的DO~3)来控制电机的工作状态。

利用ARM和Linux实现智能机器人的控制

1.2 测速方法

ARM没有捕获外部脉冲的计数器,它的定时器是用来计算内部脉冲的。码盘输出信号接外部中断处理程序(EINTl)并设置上沿触发变量,在中断中设置一全局变量i,用i++累加。设置定时器timer0,使它O.36 s产生1次内部定时器中断。当一个定时器周期完成时引发定时器中断,在timer0中断中读出i的值,即得到O.36 s内码盘转动所产生的脉冲数;接着将i清零,为下一个定时器周期捕获脉冲作准备。

1.3 测量精度分析

智能机器人选用的光码盘精度为256线,即256脉冲/转。电机减速比为1:71,车轮半径R为6 cm,车轮间距为41.1 cm.车轮转一圈所产生的脉冲数n=71×256=18 176,可以得到每个脉冲之间的距离d=27πR/n=2×3.14×0.06/18 176=0.207×10-4m,即每个脉冲对应的控制精度达0.02 mm.考虑到负载变化的影响,理论值与实际值会出现误差,因此在控制精度d前乘以一个修正系数k.表2为机器人直线行走的实验数据。可以看出,k为1.10误差较小,最接近真实值,因此该值就是所需的比例系数。

2 速度调节

一般的PID调节,PID调节是工业控制中应用最广泛的一种调节方式,在各种自控书籍及资料中,也经常看到PID这个字眼,那么什么是PID调节呢,PID是英文单词比例(Proportion),积分(Integral),微分(Differential coefficient)的缩写。PID调节实际上是由比例、积分、微分三种调节方式组成,它们各自的作用如下:比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。当偏差E较大时(如启动或大幅度提速时),由于积分的作用会产生很大的超调量,使系统振荡,因此选用积分分离的方法,开始时取消积分作用,直到被调量相差不多时才引入积分作用。具体步骤如下:

①设定一个值a>0,E(m)一R(m)一M(m),其中R(m)为给定值,M(m)为测量值;

②当E(m)≥a时,采用PD控制,可以避免过大的超调,又可以使系统有较快的响应;

③当E(m)≤n,即偏差值E(m)比较小时,采用PID控制,可以保证系统的精度。

利用ARM和Linux实现智能机器人的控制

使用积分分离方法后显着降低了被控变量的超调量并缩短了过渡时间,使调节性能得到改善。

3 驱动设计

本系统的驱动设计如图2、图3、图4所示。

利用ARM和Linux实现智能机器人的控制

利用ARM和Linux实现智能机器人的控制

设备驱动程序是操作系统内核与机器硬件之间的接口。它作为应用和实际设备之间的软件层,为应用程序屏蔽了硬件的细节。对于应用程序,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。把数据从内核传送到硬件和从硬件读取数据,读取应用程序传送给设备文件的数据和回送应用程序请求的数据,检测和处理设备出现的错误。用到的结构如下:

利用ARM和Linux实现智能机器人的控制

设备打开的时候就会调用dcmotor__open函数进行申请中断号。带内存管理的单元的地址映射,设置B端口的2、3引脚为PWM输出,端口D配置为电机使能刹车制动引脚。

利用ARM和Linux实现智能机器人的控制

利用ARM和Linux实现智能机器人的控制

以下所有的函数都是在ioctl()中实现的。在Dcmo-tor_Start里调用timer0_2_3_start(),设置timer0为接收两路电机的码盘信号,并检测电机速度;timer2、timer3提供2路PWM输出,并设置定时器自动重载。具体实现如下:

利用ARM和Linux实现智能机器人的控制

Select_Speed可以动态选择要运行的速度。它是用户的接口,用户可以调用该函数把速度值传到驱动从而控制电机。例如,在应用程序中执行ioctl(fdl,

timer0中断是核心程序,它可根据PID的调节值来改变占空比。为了便于随时改变占空比的值可定义两个全局变量tmp2、tmp3,通过把它们的值写入TCMPB来改变占空比。

在All_Forward、All_Back、All_Stop中,通过设置端口DO~3的高低电平,实现前进、后退、停止;在Left_Curve、Right_Curve中,设置左右轮的旋转方向,使两轮旋转方向不同,再根据差速在应用程序中给定预定时间,以达到转弯效果。

4 结 论

利用ARM和Linux操作系统实现智能机器人的闭环控制是可行的,闭环控制是控制论的一个基本概念。指作为被控的输出以一定方式返回到作为控制的输入端,并对输入端施加控制影响的一种控制关系。在控制论中,闭环通常指输出端通过"旁链"方式回馈到输入,所谓闭环控制。输出端回馈到输入端并参与对输出端再控制,这才是闭环控制的目的,这种目的是通过反馈来实现的。而且可以充分利用ARM的强大功能实现其他智能模块的扩展。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9097

    浏览量

    367585
  • 机器人
    +关注

    关注

    211

    文章

    28419

    浏览量

    207108
  • 操作系统
    +关注

    关注

    37

    文章

    6826

    浏览量

    123333
收藏 人收藏

    评论

    相关推荐

    智能高尔夫机器人

    了球童的工作效率。智能高尔夫服务机器人利用红外定位原理确定球手位置,并产生电机驱动信号,驱动机器人运动,实现初步跟随功能;对球手位置进行定位
    发表于 10-27 18:20

    变结构智能服务机器人

    控制就要其转换为MCU可以识别的数字信号。 3、伺服电机组 实现变结构的动力来源于安装在机器人四只关节处的四个伺服电机。它在“变结构智能服务
    发表于 10-31 13:05

    智能清洁机器人

    项目说明:室内地面清洁是人们生活中较为频繁的劳动,传统吸尘器工作时需要人的参与,且操作不便。室内地面清洁机器人智能手机、移动机器人技术和吸尘器技术有机地融合起来,结构灵巧,实现了室内
    发表于 11-08 22:30

    【Aworks申请】基于ARM智能清扫机器人研究

    :设计一种基于ARM智能清洁机器人控制系统。机器人能对未知的室内环境进行全面清扫具备避障和台阶检测功能能
    发表于 07-06 10:59

    【OK210申请】基于ARM智能清扫机器人研究

    。项目描述:设计一种基于ARM智能清洁机器人控制系统。机器人能对未知的室内环境进行全面清扫具备避障和台阶检测功能能
    发表于 07-06 11:07

    智能语音机器人

    气象站的部分功能;5.可实现智能家居可视化控制;推广前景:机器人行业已成为一个快速发展的产业,市场空间巨大,前景广阔。机器人的出现,极大地提
    发表于 12-02 19:08

    智能扫地机器人解决方案

    扫地机器人工作。二 智能扫地机器人控制方案简介1. 方案概述智能扫地机器人
    发表于 05-27 13:31

    辰汉-如何实现服务机器人的运算与控制

    。以后服务机器人的趋势会是以上列举的这些机器人的集大成者,即在软件智能和机械运动上不断发展。软件智能方面通过高性能的嵌入式处理器实现视频处理
    发表于 06-09 17:18

    海西智能下棋机器人

    深圳市海西机器人有限公司是一家集研发、生产、销售于一体的高科技新能源公司,公司主打研发运动控制、AI、通讯模块等智能化设备。 海西机器人专注于为工业
    发表于 08-07 09:03

    如何利用ARM研究嵌入式服务机器人控制器?

    计算量增大,一般的单片机等处理器很难完成控制要求。而基于ARM的嵌入式服务机器人控制器采用分层与模块化结构,充分体现可扩展性、可移植性的设计原则.同时具有低成本、低功耗、体积小巧、可
    发表于 07-30 07:02

    如何设计智能灭火机器人控制器?

    性能与可靠的机械控制性能的同时保证,才能在短时间内准确寻找到火源并灭火回家。在此以ARM9处理器为核心,对基于嵌入式系统的智能灭火机器人进行了设计。本文将从硬件和软件方面讲述
    发表于 07-31 06:23

    如何实现移动机器人的设计?

    ,导航技术,计算机技术,人工智能等多个领域,因而对移动机器人控制部分提出很高的要求,特别是视觉传感器的出现,要求控制系统不仅存储量大,而且处理速度快等。以往基于PLC和单片机
    发表于 11-23 15:08

    如何实现拥有强悍功能智能巡检机器人

    ,构建智慧运维软件平台,实现对该空间内的基础属性做常态化的检测,来保证设施的正常运转。智能巡检机器人一般分为三大部分——机器人运行部分、物联传感部分和应用部分,分别用来“保障
    发表于 04-12 15:49

    基于ARM9和Linux机器人控制系统设计

    本文介绍的利用ARM实现智能机器人平台,为智能机器人
    发表于 11-24 10:57 30次下载

    基于ARM9和Linux机器人控制系统设计

    利用ARM 和嵌Linux 作为智能机器人平台具有很大的优势,但在国内还未发现用该平台开发
    发表于 11-30 12:04 10次下载