机器谱

S152】自然选择号巡检机器人

图文展示3264(1)

图文展示3264(1)

副标题

作品说明

作者:任杰 刘福临 刘勇 秦韶阳 侯志

单位:青岛职业技术学院

指导老师:李峰

1. 场景调研

      近些年来,人工智能在全球范围内呈爆发式发展,人工智能高速发展推动了经济的飞速发展,而人工智能也越来越贴近人们的日常生活。目前人工智能技术已在金融、医疗、交通、制造、安防、教育、零售等多个领域实现技术落地,且应用场景也愈来愈丰富。在机器人领域关于人工智能的应用也十分广泛,比如大赛中巡检小车的赛项,就是在AGV小车平台的基础上加入了各种传感器、运动机构、云处理等等与人工智能相关的技术衍生出的技术方向。近几年来这种“AGV+”类型的巡检小车也在各个领域起到了重要作用,应用较为成熟的有国家特高压电网巡检机器人等等极大程度上减轻了人工电力巡检的工作量,同时提高了巡检的精确度。本项目在查阅资料和深入研究之后选择了几个巡检小车典型应用领域作为了此作品小车的参考方向。

      ① 巡检机器人的工业生产运用

      就工厂路线清障而言,使用人工智能进行路障清理十分可行,工厂实现人工智能化,很大程度上降低了道路障碍对工厂运行造成危害的可能性,提高了工作效率,也能够尽量避免道路障碍可能对人员造成的伤害。机器人在日常巡检中,发现意外掉落的物块时,可快速做出反应,将物块放回原处或是放到安全位置等待集中处理,防止发生人员受伤或机器损害,确保了工厂的安全生产。

      巡检机器人在体育领域的应用

      体育球类运动一直很受欢迎,但球类器材的收纳和拾取是一项繁琐的工作,巡检机器人在巡检过程中可对场馆内球类进行扫描,识别出需要抓取的球类,随后派出机器人进行准确抓取,运送到指定位置,并进行分类,方便后续使用。在体育场所投放巡检机器人,能够有效减少人工投入,减少运营成本,提高场所运营效率。

      巡检机器人的园区日常应用

      对于日常生活中一些较为繁琐的场景,如拾取垃圾等场景,使用人力费时费力,所需时间成本较高,使用巡检小车进行处理,可大大提高效率,节省维护成本。机器人在进行垃圾拾取时,首先利用园区智能摄像头对路面上的物品进行扫描识别,判断是否为垃圾,随后派出抓取机器人完成拾取归纳等功能。有效保持路面整洁,保护园区环境。

但就目前看来,“VGA+”巡检小车的现有应用方式更多的是大型化的AGV应用于工厂生产搬运,对于工厂安全巡检,路障清理或日常生活领域的小型“AGV+”巡检小车则较为欠缺,如何使巡检小车更加贴近工厂生产安全和日常生活成为了主要问题。而本项目的主要研究方向就是道路巡检和物品抓取通过建立工厂模拟场景、体育馆模拟场景以及园区模拟场景,分析可能出现的问题以研究此类场景下的具体应用形式。

2. 作品创新点

      为了使“VGA+”巡检小车更加贴近人们日常生活,让巡检小车不仅限于传统工业,使巡检小车更民用化探索不同技术的实用性应用方向不可或缺而在当下的生产生活中,路线清障、清理垃圾、器材收纳,诸如此类的技术含量不高,但又不可不重视的问题并不少见所以为了探索生产生活中这类问题的解决方法,本项目运用探索者机器人进行模拟研究。本作品制作的机器人——自然选择号巡检机器人,就是基于探索者模拟清理垃圾、路线清障、器材收纳的这类问题所制作的一款“UGV+COBOT”多功能巡检小车。

      自然选择号巡检机器人结构简单轻巧,操作简单,能够轻松的翻越各种障碍,将运输物件送到指定位置。现阶段自然选择号机器人不仅接受遥控信号,也可以完成既定路线的循迹流程(在后期也可接受局域网信号或是视觉标注完成系列不同的操作)其中循迹小车能够通过两个白标一个灰度共三个传感器所检测到的信号来完成既定路线的循迹流程或是进行区域遍历,而中间灰度两边白标的传感器布局形式、能够保证检测到稳定和准确的地面信号,使小车的运动轨迹更加准确;小车头部的超声波和红外传感器装载位能够快速替换两类传感器,充分利用超声波的检测距离远和红外的检测精确度高的不同优势,在完成检测之后可以通过局域网信号进行同步继而完成既定轨迹或是自由轨迹下的自动抓取与放置功能自动小车也能够通过寻迹小车的信号进行配合抓取或储存功能。

      目前小车可实现基于六通道遥控器的无线遥控以及手机配套软件的蓝牙控制,而在后面的技术的迭代中,通过其他人工智能相关技术的配合,自然选择号机器人还可以实现完全自动化、智能化的信息处理。在现阶段我们可以通过ardunio来对自然选择号机器人进行编程ardunio编程界面很大程度上消除了编程语言带来的门槛,使得小车的编程更容易上手,也更容易通过不同用户的自我编程来满足不同情况下的特异性应用完全可以根据自己的需求更改程序使小车的功能更加灵活多变。除此之外,两个小车配合能够完成一定场景下的巡检工作,例如自动化物流仓库下的搬运路线的自动清障,公园里面的垃圾拾取归箱,乒乓球等器材的收纳。

      自然选择号机器人由十余种探索者零件组成,拼装简单它不仅仅可以应用于日常搬运物件,也可以作为孩童的启蒙玩具使用,锻炼孩子的动手能力和学习能力。在物流搬运领域,自然选择号机器人更贴近民生,可跨越障碍,在多种环境进行作业。

3. 机器人本体技术路线说明

      自然选择号机器人移动方式采用汽车四轮式结构,可以实现机器人各个方向上的移动,小车正前方安装的框式结构,便于小车对于球类器材的整理。物块的抓取机构采用夹爪结构,由两个大舵机实现夹爪的起落动作及抓放动作的执行,来配合爪子进行物块的抓取也能够通过传感技术循迹走线抓取物块清理路障。机器人采用前高后低结构,有效后移重心,减少机器人前端夹爪结构过重带来的影响,增加机器人的稳定性。机器人采用了NRF遥控模块,配合六通道遥控器来进行遥控,遥控器收到摇杆信号,通过NRF无线发射器将信号发给机器人本体,自然选择号机器人本体的NRF无线接收器收到信号后,根据程序做出相应动作,比如机器人的前后移动,左右移动,夹爪的抬起落下,夹爪的加紧动作、松开动作。

作品说明

自然选择号巡检机器人

      自然选择号机器人本体主要使用“探索者”机器人平台中的各类零部件组成,主要有Basra主控板、Bigfish拓展板、双摇杆控制板、标准舵机、直流电机、锂电池、P22橡胶轮胎、由细橡胶轮胎裁剪成的防滑垫、各类面板以及孔平板、支架、以及一些线材。机器人程序主要由Ardunio1.8.2软件进行编写以及烧录,分为机器人本体程序以及遥控器程序。除了遥控器程序外,可以根据客户个人需求进行手机遥控。在后期也可接受局域网信号或是视觉标注来控制机器人。自然选择号机器人也会,致力于不同领域的基本需求,不断改进、不断完善便利群众生活。

4. 作品难点及解决方案

      ① 在对小车的三维建模过程中,需要对各个零件进行精确的测量,并且运用soild words软件进行建模,模拟出我们需要的方案。建模过程中出现了尺寸不合适从而导致装配错误时我们会进一步的完善尺寸。装配的过程中也会因为步骤颠倒导致模型崩溃等问题,就重新进行装配并加以完善和改进,最后进行成功建模。

      ② 组装机器人的过程中,夹爪设计与机械臂接触面过于光滑,容易夹不起所需要的工件,我们对夹爪加装了防滑条从而解决了这一问题。

      ③ 机器人车轮设计中因为不同的环境会出现不同的路况,面对环境过于潮湿导致轮子摩擦力变大等一系列问题,我们对车轮进行了相应的更改,将前面的两个橡胶车轮换用摩擦力更低的新型车轮从而解决了这一系列的问题。

      ④ 在组装机器人过程中,我们考虑到地面有多个垃圾的情况下,该如何进行垃圾储存,因此我们在小车的后方安装了一个托盘,当拾取垃圾后,夹爪可以直接将垃圾放在托盘,从而解决了垃圾储存的问题。

      ⑤ 原本机器小车的循迹方式不能够较完美的完成既定轨迹的循迹工作,所以我们在一系列的产品迭代中确定了小车主体下左右两个白标中间一个灰度共三个传感器的布局方案,使得小车能够精确的进行轨迹巡检工作,从而解决了这一问题。

      ⑥ 在抓取物块时,因为机器人在抓取物块时达不到所需的结果,所以我们将抓取物块的触发方式由原先的手动触发改成了自动触发,使得机器人在抓取物块时能够更加智能、准确的进行小车周围各个位置的精确抓放。

      ⑦ 因为超声波传感器对近距离小物块的传感能力相对较弱,传感精度低,等待时间长,有些特定的形状很难捕捉到反射波等系列问题所以我们对机器人前面的超声波传感器进行了更换并对其进行了一系列的优化。

      ⑧ 编程过程中,需要机器人与程序进行完美的配合从而达到所需要的结果,但编程时会出现机器人夹爪与程序无法进行完美的配合,我们需要对程序进行一步步的完善和对夹爪的多次调整不断优化,在调整中避免了相关情况的出现。

      ⑨ 后期测试过程中,机器人工作过程中容易出现失误导致达不到我们所需要的结果,所以我们对机器人进行了深度的完善,并且进一步的优化了机器人的程序,最终机器人达到了我们所想要的成果。

5. 示例程序

#include <Servo.h>

Servo servo_pin_3;

int _ABVAR_1_data = 0 ;

Servo servo_pin_4;

void JIA();

void G();

void B();

void L();

void DIXIA();

void GAO();

void SONG();

void S();

void R();

void DISHANG();

void HUIXIANG();

void DI();

void ZHONG();

void setup()

{

  servo_pin_3.attach(3);

  Serial.begin(9600);

  pinMode( 5 , OUTPUT);

  pinMode( 6 , OUTPUT);

  pinMode( 9 , OUTPUT);

  pinMode( 10 , OUTPUT);

  servo_pin_4.attach(4);

  servo_pin_3.write( 40 );

}

void loop()

{

  _ABVAR_1_data = Serial.parseInt() ;

  if (( ( _ABVAR_1_data ) == ( 1 ) ))

  {

    L();

  }

  if (( ( _ABVAR_1_data ) == ( 2 ) ))

  {

    R();

  }

  if (( ( _ABVAR_1_data ) == ( 3 ) ))

  {

    B();

  }

  if (( ( _ABVAR_1_data ) == ( 4 ) ))

  {

    G();

  }

  if (( ( _ABVAR_1_data ) == ( 5 ) ))

  {

    S();

  }

  if (( ( _ABVAR_1_data ) == ( 6 ) ))

  {

    JIA();

  }

  if (( ( _ABVAR_1_data ) == ( 7 ) ))

  {

    SONG();

  }

  if (( ( _ABVAR_1_data ) == ( 8 ) ))

  {

    HUIXIANG();

  }

  if (( ( _ABVAR_1_data ) == ( 9 ) ))

  {

    GAO();

  }

  if (( ( _ABVAR_1_data ) == ( 10 ) ))

  {

    ZHONG();

  }

  if (( ( _ABVAR_1_data ) == ( 11 ) ))

  {

    DISHANG();

  }

  if (( ( _ABVAR_1_data ) == ( 12 ) ))

  {

    DI();

  }

  if (( ( _ABVAR_1_data ) == ( 13 ) ))

  {

    DIXIA();

  }

}

void G()

{

  digitalWrite( 5 , LOW );

  digitalWrite( 6 , HIGH );

  digitalWrite( 9 , LOW );

  digitalWrite( 10 , HIGH );

}

void HUIXIANG()

{

  servo_pin_3.write( 10 );

}

void SONG()

{

  servo_pin_4.write( 96 );

}

void DISHANG()

{

  servo_pin_3.write( 130 );

}

void R()

{

  digitalWrite( 5 , LOW );

  digitalWrite( 6 , HIGH );

  digitalWrite( 9 , HIGH );

  digitalWrite( 10 , LOW );

}

void L()

{

  digitalWrite( 5 , HIGH );

  digitalWrite( 6 , LOW );

  digitalWrite( 9 , LOW );

  digitalWrite( 10 , HIGH );

}

void DI()

{

  servo_pin_3.write( 140 );

}

void B()

{

  digitalWrite( 5 , HIGH );

  digitalWrite( 6 , LOW );

  digitalWrite( 9 , HIGH );

  digitalWrite( 10 , LOW );

}

void ZHONG()

{

  servo_pin_3.write( 110 );

}

void GAO()

{

  servo_pin_3.write( 60 );

}

void DIXIA()

{

  servo_pin_3.write( 150 );

}

void S()

{

  digitalWrite( 5 , LOW );

  digitalWrite( 6 , LOW );

  digitalWrite( 9 , LOW );

  digitalWrite( 10 , LOW );

}

void JIA()

{

  servo_pin_4.write( 66 );

}


6. 项目总结

      在这几个星期的时间,我们查阅了大量的资料,咨询老师进行答疑解惑,学习程序编写技术和三维建模绘制。在研究初期,我们提出了许多想法,通过激烈讨论,最终确定了小车的大体设计方案,而在小车的主体组装过程中,每一个零件都由大家动手组装,在经历了很多次试错之后最后组装完成我们定期检测维护零件,对其进行修正和更新并且不断进行试验,更换试验方案,最终找到了最为合适的场景,在一次次失败中不断前进,不断突破自己,取得了很大的进展。本项目坚持科技创新,致力于把人工智能引进更全面的生产生活中,这次的作品基于探索者配套组合零件,结合arduino软件编写机器人程序,使它完成搬运拾取动作。对于不同场景分别采用超声波和红外线传感器,成功实现了对待抓取物所在位置的快速定位,并以最省时省力的方式进行抓取,提高了效率,减少机器损坏的几率。我们通过对原版机械爪的机械结构和电机等关键部位进行改造,查阅了大量资料,更换了零件,在保证机械爪精准抓取的前提下,可以更加高效率的运行,大大节省了运行时间。在移动装置的选择上,我们的研究对不同场景的适应性要求很高,所以我们舍弃原有的橡胶轮胎,采用泛用性更好的的新型轮胎来提高环境适应性,能够减少安全事故的发生,同时提高运输效率。本作品通过对原版机械爪的机械结构和电机等关键部位实施改造,从思路上创新,保证抓件机械爪完美运行,大大节约了材料。

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

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