机器谱

S123】轮式行走全方位平台机器人

图文展示3264(1)

图文展示3264(1)

副标题

作品说明

作者:孟庆焱 刘明洋 代小阳

单位:三河市职业技术教育中心

指导老师:张志松 王建林

      本项目设计的轮式行走全方位平台机器人以Brsra主控板为核心,以舵机和直流电机为基础的工作台,通过Arduino软件,利用编程思想,完成轮式全方位平台机器人的行进、升降、转向、动作程序,并在生成的C语言代码中,由实际情况调整合适的参数,确保机器人能高效、稳定的完成任务。本作品将多种功能集于一体,采用模块化设计思想,对不同情况设置不同的程序及参数,使机器人能应对不同的工作情况,并通过遥控完成工作。实验结果表明,该设计方案可行。

      关键词:Brsra;Arduino;图形化编程;蓝牙模块

1. 教育机器人研究背景和意义

      2016年3月21日工业和信息化部、发展改革委、财政部关于《机器人产业发展规划(2016-2020年)》(工信部联规〔2016〕109号)的通知正式印发,2017年7月8日国务院关于新一代人工智能发展规划(国发〔2017〕35号)的通知正式印发。在此期间,各级别领导多次发声助力机器人和人工智能的发展。教育机器人是面向教育领域专门研发的以培养学生分析能力、创造能力和实践能力为目标的机器人,具有教学适用性、开放性、可扩展性和友好的人机交互等特点,最早源自于20世纪60年代麻省理工学院的人工智能实验室。

      教育机器人是一个多学科、跨领域的研究,涵盖计算机科学、教育学、自动控制、机械、材料科学、心理学和光学等领域。机器人教育将激发广大学生对智能技术的学习兴趣和动力,并大范围提高学生信息技术能力,提升数字时代的竞争能力。机器人教育主要应用于组装—动力机械,如学习物理学原理、空间结构、机械传动、电与磁等;控制—智能操控,如执行机构、驱动装置、检测装置和控制系统等;竞赛-实战对抗,如按竞赛设计情境搭建机器人,并对机器人进行任务编程,学习问题解决等。随着机器人技术的不断提高,教育服务机器人在教育领域中的应用越来越普遍,有研究表明教育机器人作为一个学习工具有巨大的潜力。此外,教育机器人也是一种典型的数字化益智玩具,适用于各种人群,通过多样化的功能达到寓教于乐的目。

2. 系统整体设计
2.1系统概述

      系统的总体概述为:轮式行走全方位平台机器人主要参考工程车辆和数控机床,根据工程现场的实际需要,完成相关机械结构的设计及组装,包括:行进、升降、转向、动作等。轮式全方位平台机器人基于Brsra主控板及Bigfish扩展版控制算法进行相应路线运行,利用蓝牙模块进行控制。

根据系统的基本要求,本项目设计了系统的结构图,如下图所示。为满足工程要求,力求系统的高效、稳定,因此在结构设计过程中要避免信号干扰和动力不足,减少因硬件而引发的问题。因此,我们采用类似于工程车辆的两套独立控制方式,以及可转手动操作部分。

作品说明

系统结构图

2.2 整体布局

项目中的轮式行走全方位平台机器人整体布局如下图所示,有如下几个特点:

      ① 采用一个蓝牙模块、两个直流电机控制行进、两个舵机控制行进和升降。两个直流电机分别安装在机器人足部,舵机安装在机器人腿部。

      ② 采用一个蓝牙模块、一个舵机控制转向、一个舵机控制手臂动作。一个控制转向舵机安装在机器人胸部,工作舵机安装在机器两臂。为保障整体稳定,主控部分安装在腰部,根据需要可适当增加配重;手控按钮安装在背部。

整体布局实物图

3. 机械结构设计

从设计角度的简便性、稳定性及可靠性出发,结合功能要求,完成轮式全方位平台机器人机械结构的设计,机械机构主要包括行进轮、腿部舵机、转向机构和臂部功能构件。轮式全方位平台机器人的尺寸为:长*宽*高=390*270*185mm。其结构简图如所示

轮式行走全方位平台机器人结构简图

3.1 轮足

选择轮足式的机器人,针对的是相对平坦地形的工作,而对于复杂地形,我们的行走模式一般情况就可以满足,但对于疑难地形我们设计了另一个模式,机器人蹲下降低重心、轮足修正为履带式。因此,我们在设计中采取了易于变更履带安装的轮式结构,同时也是对机器人重心的一个考虑。如下图所示:

轮足式与履带轮实物对比图

3.2 舵机
     本机器人采用M01标准舵机用于驱动越障机构下图所示)。以下将详细介绍所使用的舵机M01标准舵机额定工作电压为6v,左右摆动各90度。如下图所示,M01标准舵机有三根引出线,VCC(电源线),GND(地线),D*(信号线)。VCC,GND为舵机的电源线

M01标准舵机

M01标准舵机三根引出线图

4. 硬件设计

4.1 Brsra主控板

      Brsra是一款基于Arduino开源方案设计的一款开发板下图所示。通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以在Arduino、clipse、VisualStudio等IDE中通过c/c++语言来编写程序,编译成二进制文件,烧录进微控制器。Basra的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一ICSPheader和一个复位按钮,接口图如所示

Basra主控板
Basra主控板接口图

Brsra主控板具有以下特点:

开放源代码的电路图设计,程序开发接口免费下载,也可依需求自己修改

可以采用 USB接口供电,不需外接电源,也可以使用外部DC输入

支持 ISP在线烧,有了bootloader之后,可以在线更新固件

支持多种互动程序,如:Flash、Max/Msp、VVVV、PD、C、Processing等。

具有宽泛的供电范围,电源电压可任选3v~12v 的电源

采用堆叠设计,可任意扩展

主控板尺寸不超过60mm*60mm,便于给小型机电设备安装

板载USB驱动芯片及自动复位电路,烧录程序时无需手动复位

支持Visual Studio、eclipse、sublime text等IDE

4.2 Bigfish扩展板

 Arduino是开源的控制板,专用于简单机器人的扩展板,能将大部分传感器轻松地和arduino控制板连接,通过BigFish扩展板连接的电路可靠稳定,上面还扩展了伺服电机接口、8*8Led点阵、直流电机驱动以及一个通用扩展接口,可以说控制板的必备配件,BigFish扩展板实物图接口图如所示

BigFish扩展板实物图

BigFish扩展板接口图

BigFish扩展板的特点为:

完全兼容Basra、Mehran控制板接口

彩色分组插针,一目了然

全部铜制插针,用料考究,电器性能稳定

优秀PCB设计,美观大方

多种特殊接口设计,兼容所有探索者电子模块,使用方便

所有 3P、4P 接口采用防反插设计,避免电子模块间连线造成的误操作

可直接驱动舵机、直流电机、数码管等机器人常规执行部件,无需外围电路

具有5v、3.3v及vin3种电源接口,便于为各类扩展模块供

4.3主控板使用注意事项

Brsra主控板:USB口附近有一个可重置的保险丝,对电路起到保护作用;当电流超过500mA时会断开USB连接。主控板提供了自动复位设计,可以通过主机复位。

      BigFish扩展板:D11\D12舵机端口与LED点阵复用,应注意避免同时使用。

5. 软件设计

软件部分采用模块化的设计思想,主要是主程序通过调用各个模块的子程序控制机器人的整体运作,每个子程序设计一个模块的动作。软件部分包含了蓝牙模块、行进模块、升降模块、转向模块、动作模块以及算法部分等。其中蓝牙控制模块贯穿了程序的始终,是机器人准确而稳定的接收信号的保障,但手动部分又是意外状况发生后机器人能够完成工作的保障。本项目采用Android的蓝牙管理软件 Amarino 程序如下:

蓝牙模块调试

void setup()

{

Serial.begin(9600);

}

void loop()

{

  while(Serial.available())

   {

     char c=Serial.read();

      if(c=='A')

        {

          Serial.println("Hello I am amarino");

        }

   }

}


#include <Servo.h>

Servo servo_pin_4;

Servo servo_pin_3;

Servo servo_pin_12;

Servo servo_pin_8;

Servo servo_pin_11;

Servo servo_pin_7;

void daoxia();

void zhanli();

void setup()

{

  pinMode( 17, INPUT);

  pinMode( 18, INPUT);

  pinMode( 16, INPUT);

  pinMode( 14, INPUT);

  servo_pin_4.attach(4);

  servo_pin_3.attach(3);

  servo_pin_12.attach(12);

  servo_pin_8.attach(8);

  servo_pin_11.attach(11);

  servo_pin_7.attach(7);

}

void loop()

{

  if (!( digitalRead(14) ))

  {

    zhanli();

  }

  if (!( digitalRead(16) ))

  {

    daoxia();

  }

  if (!( digitalRead(17) ))

  {

    servo_pin_4.write( 45 );

    delay( 1000 );

    servo_pin_4.write( 125 );

    delay( 1000 );

  }

  else

  {

    servo_pin_4.write( 75 );

  }

  if (!( digitalRead(18) ))

  {

    servo_pin_3.write( 45 );

    delay( 1000 );

    servo_pin_3.write( 125 );

    delay( 1000 );

  }

  else

  {

    servo_pin_3.write( 90 );

  }

}

void daoxia()

{

  servo_pin_12.write( 0 );

  servo_pin_8.write( 180 );

  servo_pin_11.write( 90 );

  servo_pin_7.write( 90 );

}

void zhanli()

{

  servo_pin_12.write( 110 );

  servo_pin_8.write( 50 );

  servo_pin_11.write( 0 );

  servo_pin_7.write( 200 );

}


舵机模块调试

6. 系统开发与调试

6.1 开发工具Arduino软件

      Arduino是一个能够用来感应和控制现实物理世界的一套工具。 它由一个基于单片机并且开放源码的硬件平台,和一套为Arduino板编写程序的开发环境组成。Arduino的编程语言就像似在对一个类似于物理的计算平台进行相应的连线,它基于处理多媒体的编程环境。

Arduino特点:

便宜 和其它平台相比,Arduino板算是相当便宜了。最便宜的Arduino版本可以自己动手制作,即使是组装好的成品,其价格也不会超过200元。

跨平台 Arduino软件可以运行在Windows,Macintosh OSX,和Linux操作系统。大部分其它的单片机系统都只能运行在Windows上。

简易的编程环境 初学者很容易就能学会使用Arduino编程环境,同时它又能为高级用户提供足够多的高级应用。

软件开源并可扩展 Arduino软件是开源的,对于有经验的程序员可以对其进行扩展。Arduino编程语言可以通过C++库进行扩展,如果有人想去了解技术上的细节,可以跳过Arduino语言而直接使用AVR C 编程语言(因为Arduino语言实际上是基于AVR C的)。类似的,如果你需要的话,你也可以直接往你的Arduino程序中添加AVR-C 代码。

硬件开源并可扩展 Arduino板基于 Atmel 的ATMEGA8 和ATMEGA168/328 单片机。Arduino基于Creative Commons 许可协议,所以有经验的电路设计师能够根据需求设计自己的模块,可以对其扩展或改进。甚至是对于一些相对没有什么经验的用户,也可以通过制作试验板来理解Arduino是怎么工作的,省钱又省事。

6.2 系统调试

6.2.1 升降调试

      机器人利用的是左右舵机带动机械结构升降的。在调试过程中,为保障舵机动力满足要求,我们在两个舵机启动中采取了延时控制,在保证升降不受影响的基础上,降低启动电流,防止动力不足以及扩展板损坏的情况。

6.2.2 转向调试

首先要通过先对机械结构进行调整,在机械硬件方面保证机器人重心稳定。在机器人腰部的主控模块上增加配重,确保机器人能稳定的实现转向。

6.2.3 手动调试

本机器人采用遥控和手动两套操作方式,目的在与避免工业应用中出现不可控故障。在此过程中,若蓝牙模块收到干扰,则不能被有效接收信号,进而会影响机器人的工作,因此需要对机器人实施手动操作,我们在机器人背部设置了5个触碰传感器模拟线控手柄。

7. 结论

针对轮式行走全方位平台机器人的运行要求,本项目完成了基本结构设计和样机制作,主要成果如下:

      ① 完成了轮式行走全方位平台机器人的系统整体设计,确定了机器人的整体布局方案。

      ② 完成了轮式行走全方位平台机器人的机械结构设计,确定了行走机构的选型设计。

      ③ 完成了轮式行走全方位平台机器人的硬件设计,并利用Brsra主控板及Bigfish扩展板,完成对机器人的硬件设计。

      ④ 完成轮式行走全方位平台机器人系统开发及调试利用Arduino软件对机器人进行编程,并对主要功能进行了调试。

* 本项目未获得作者开源授权,无法提供资料下载

© 2024 机器时代(北京)科技有限公司  版权所有
机器谱——机器人共享方案网站
学习  开发  设计  应用