首页 > 编程知识 正文

机器人码垛搬运编程程序(scratch二级巡线小车代码)

时间:2023-05-03 10:58:41 阅读:81547 作者:1375

0引言

室内服务型移动机器人作为机器人的重要分支之一,使人们的生活更加便利。 目前,美国TRC公司开发的Helpmate医疗机器人、IROBOT公司的扫地机器人Roomba等几个机器人已应用于现实生活[1]。

目前,室内服务型机器人多采用两轮差动驱动,其主要原因是控制系统成熟,但对于带配送功能的机器人来说,带拖车的结构可以在不改变驱动电机转矩的情况下搬运更多的行李,向更灵活的方向转换带拖车的移动机器人主要由一个牵引车头和几个牵引车组成,牵引车主要起驱动和转向作用,拖车随牵引车运动。 这种自主工作的配送机器人可以用于工厂的材料运输、医院内部的药品运输、大型码头的货物运输等。

单车身移动机器人路径规划方法通常采用姿态空间法。 也就是说,在机器人外接圆半径扩展障碍物的同时,将单车体机器人缩小为一个控制点。 因此,路径规划可以转换为扩展的姿态空间中的一点的计划路径[2]。 对于带拖车的移动机器人,其外接圆时时刻刻都在变化,采用包括所有车身在内的外接圆来扩展障碍物,建立环境模型的方法常常人为地减少运行空间,导致系统找不到最佳或可行的路径[3]。

在本设计中,牵引车的部分设计在拖车前端的车底部,因此该机器人在运行中也可以视为单一的车身。 针对该结构建立运动学模型,以搭载ROS的MiniPC为上位机,接收下位编码器和激光雷达的反馈信息,完成自主定位和路径规划的计算,将机器人控制点的速度和角速度的信息发送到下位机。 以STM32F103为下位机,接收上位机发送的运动信息,最终换算成驱动轮电机的转速,旋转驱动基础电机,完成机器人控制系统的构建,在机器人本体进行实验。

带单节拖车的配送机器人运动学模型建立

1.1机器人结构介绍

如图1、图2所示,整个机器人结构可以分为两大部分,一部分是牵引车的车头转向部分,另一部分是拖车部分。 牵引车的转向部分通过转盘与拖车部分连接,牵引车部分的两个轮为驱动轮,驱动电机的尾部安装有编码器,可以获得驱动电机的转速信息; 牵引车和拖车部分安装有陀螺仪,可以测量车头和拖车部分的相对旋转角度信息。 拖车前部上方装有激光雷达,可以为上位机反馈周边环境信息。

1.2运动学模型的建立

将以上机器人的结构简化后,将得到如图3所示的运动概略图。 其中,k0点为机器人车头牵引车部分的旋转中心,k1点为机器人拖车部分的后轮中心。 V0、W0是k0点运动的速度和角速度,V1、W1是k1点运动的速度和角速度,l是k0到k1的长度,是车头驱动轮和拖车车轴的角度,X-Y是k1点的坐标系,是k1点运动方向和x轴的角度。 假设:整个系统在平面上工作; 车轮没有滑动,车身相对于其长度轴线对称; 车轮与地面点接触,是纯粹的滚动运动; 车身是刚体; 用于连接牵引车缸盖和车身的转盘没有摩擦。

在带有自主运动的拖车的配送机器人的情况下,将拖车部分的后轴中心设为控制点即k1点。 上位机通过控制k1点的速度和角速度来实现机器人的自主运行。

V1、W1和V0、W0的关系如下所示。

2 ROS的概要

2007年,斯坦福大学与机器人技术公司Willow Garage进行了项目合作,ROS系统在此次项目合作中诞生[4]。 通过其分布式的控制机制大大简化了机器人系统的开发,此后ROS被机器人领域的许多研究者所熟知[5]。

ROS运行时由多个松散耦合的进程组成,这些进程被称为节点(Node ),各节点独立工作,与其他相关节点进行通信。 在实际使用中,这种模块化设计可以大大提高开发效率[6]。

ROS支持多种开发语言,不同的节点可以用不同的语言编写。 由于各节点模块的独立性和开源性,所有ROS用户都可以共享自己制作的功能包[7]。

3控制系统的硬件设计

从该机器人的工作角度考虑,控制系统的设计总体上分为上位机的设计和下位机的设计两部分。 上位机由PC主机和车载用MiniPC构成,两者之间通过无线局域网进行通信。 下位机由车身、车轮、带编码器的直流减速电机、电机驱动器、STM32F103开发板、电源、陀螺仪和激光雷达组成。 STM32F103RCT6是下位机的主要控制单元,其作用是将上位机发出的控制指令转换为与各电机对应的速度后输出到电机驱动器,实现机器人不同形式的运动。 与此同时,STM32计算并转换编码器反馈的速度信号,获得与车轮相对应的速度信息,并将这些信息反馈给上位机。 拖车部和牵引车的头部分别安装有陀螺仪,陀螺仪的形式为TransducerM,通过计算两个陀螺仪的偏转角之差,可以得出牵引车相对于拖车部的旋转角度,即

图3中的角α。激光雷达采用的是HOKUYO公司的URG-04LX-UG01二维激光雷达,用于反馈周围环境信息给上位机。

上位机的车载MiniPC以拖车尾部车轴中点为控制点,向下位机发送移动指令。本设计中上位机向下位机发送的是该点的速度与角速度信息。同时接受下位机反馈的里程信息。车载MiniPC采用的是占美微型电脑,电源采用12 V-5 A适配器,具有体积小、价格低、性能高、接口丰富等特点。控制系统硬件框图如图4所示。

4 控制系统软件设计

控制系统软件设计在移动机器人的整体设计中占有绝对的核心地位,这直接关系到机器人运行的鲁棒性与稳定性。本设计中的控制系统软件是基于ROS平台。在车载MiniPC中装有ROS系统,车载MiniPC与下位机通过串口进行通信,主控电脑通过无线局域网采用ssh远程登录方式对车载MiniPC进行控制。下位机通过解算由上位机发送的速度与角速度等信息最终得到驱动电机的PWM波值,从而实现对电机的控制。

4.1 下位机软件设计

下位机的主要作用是接收上位机传来的运动信息,并解算成最终的驱动信号,与此同时,向上位机反馈里程计信息,供上位机做位姿定位使用。图5为下位机的工作流程图。

下位机上电后首先对整个系统进行初始化,这里由于整个配送机器人是在室内环境下使用的,因此陀螺仪初始化时就失去了使用GPS的校准功能,但是初始化完成后,陀螺仪偏航角的相对精度还是可以保证的。

当下位机接收到上位机传来的控制点的角速度W1与速度V1信息时,通过式(3)将其解算成牵引车部分运动的速度V0与航向角度α。为了减少下位机运算量和防止角速度的突变,直接给定车头部分一个恒定的角速度量W0=0.4 rad/s,当V1=0时,W0=0。W0的正负由W1决定,当W1为正时,W0=0.4 rad/s;当W1为负时,W0=-0.4 rad/s。牵引车与拖车部分的陀螺仪通过串口反馈各自的偏航角,在系统初始化之后,以当前偏航角值为初始值,计算各自的变化量,再将两者相减,即可得到牵引车与拖车部分的相对转角α*。再将此转角与解算后的目标α做对比,直到α*=α时,车头部分的W0=0,只留下一个前进方向的速度V0,在这里为了防止牵引车在目标α角周围来回抖动,所以将目标α角范围扩大±0.2。

接下来将牵引车部分的速度与角速度进行换算得到最终驱动电机的PWM波值。与此同时,下位机还将读取到的编码器信息通过式(1)换算成控制点的速度与角速度信息,再由串口回传至上位机做处理。

4.2 上位机软件的设计

上位机的主要作用是对下位机反馈的里程计信息以及激光雷达捕捉到的周围环境的信息进行计算,得到当前整车的位姿信息,并且对下一步的运动路线进行规划,换算成速度与角速度信息,发送给下位机。

在建好地图的情况下,ROS导航主要需要使用到两个程序包,一个是move_base,另一个是amcl。move_base包可以根据各个传感器反馈的信息进行路径规划,使机器人移动到指定位置,amcl包主要是根据已有的地图进行自主定位与导航[8]。图6为导航包的整体格局。

move_base包主要提供了对于自主导航的相关参数配置、系统与各种传感器的接口等,主要包括两个部分。第一部分为全局路径规划(global planner):使用者给定目标位置后,系统根据给定的目标位置进行整体路径规划;第二部分为本地实施规划(local planner):在导航过程中,系统根据自身传感器所反馈的周围环境信息,对附近的障碍物进行避障路线规划。

除此之外ROS还提供了一种可视化工具——rviz。使用这种插件机制可以扩展丰富的功能,便于进行二次开发[9]。在这里,可以通过设置footprint的大小来规定机器人的最大边界,由于该移动机器人的牵引车驱动部分处于拖车车体前端的下方,因此拖车部分的最大边界即为整车的最大边界。通过rviz,还可以实时观测到机器人在地图中的位置、激光雷达反馈的信息、每一时刻的速度方向以及上位机对导航路径的规划情况等。

5 配送机器人实验与分析

带单节拖车的配送机器人样机如图7所示。在实验开始之前,需要将车载MiniPC与远程控制PC都连接上同一个WiFi,在远程控制PC上打开一个终端,通过ssh命令登录上车载MiniPC,启动控制机器人的所有相关节点。在远程控制PC端打开rviz界面,输入机器人起始点信息,给定目标点,机器人即可开始自主导航。

图8是机器人在直线走廊的导航情况,图9是机器人在直线走廊导航的rviz结果,图10是机器人在“T”字形走廊拐角处的导航情况,图11是机器人在“T”字形走廊拐角处的导航的rviz结果。

由图可见,该机器人在直线走廊中可以顺利地避开遇到的障碍物,在“T”字形走廊拐角处也可以兼顾到拖车部分的转向情况,实现了带单节拖车的自主导航。

6 结论

本文研究了带单节拖车的配送机器人控制系统,并在物理样机上实现了相关的功能。针对带单节拖车的配送机器人,提出了一种采用单车体运动学模型控制带单节拖车的配送机器人的控制方案,建立了运动学模型,以及下位机接收到上位机信息之后的决策方案,从而有效地解决了带单节拖车的室内配送机器人遇到障碍物的避障问题与在“T”字形走廊的转向问题。

参考文献

[1] dpdgs.医院服务机器人室内导航算法与自主充电系统研究[D].哈尔滨:哈尔滨工业大学,2016.

[2] 丰富的春天,火星上的蜻蜓,朴素的山水,等.带拖车移动机器人的运动学分析与仿真[C].2006中国控制与决策学术年会论文集,2006.

[3] 神勇的大侠,gddlc,sqdzt,等.带拖车的移动机器人包络路径分析与描述[J].机器人,2001(4):334-337.

[4] QUIGLEY M,BERGER E,NG A Y.Stair:hardware and software architecture[C].AAAI Robotics Workshop,2007.

[5] QUIGLEY M,GERKEY B P,CONLEY K,et al.ROS:an open-source robot operating system[C].Proceeding of IEEE ICRA Workshop on Open Source Robotics,2009.

[6] zgdlc,kydst,xqdsb,等.智能空间下基于WiFi指纹定位与粒子滤波的服务机器人复合全局定位系统设计[J].机器人,2016(2):178-184.

[7] yydcc,疯狂的蜜粉,zxdgs.开源机器人操作系统-ROS[M].北京:科学出版社,2012.

[8] 喜悦的冬瓜,rxdrs,wjdxy,等.分布式移动机器人控制系统设计与实现[J].机械设计与制造,2015(10):180-183.

[9] 孤独的烤鸡,开放的宝贝,csdjr.人机协作下的机械臂轨迹生成与修正方法[J].机器人,2016,38(4):504-512.

作者信息:

axdhj1,感性的小蘑菇1,聪明的玫瑰2,害怕的大船1,粗犷的蜻蜓2

(1.陕西科技大学 机电工程学院,陕西 西安710021;2.陕西省智能机器人重点实验室,陕西 西安710049)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。