基于QT人机交互界面与电机伺服系统的移动机器人运动控制系统的制作方法

文档序号:15848425发布日期:2018-11-07 09:27阅读:902来源:国知局
基于QT人机交互界面与电机伺服系统的移动机器人运动控制系统的制作方法

本发明属于移动机器人平台,具体涉及移动机器人的运动控制系统技术与系统调试的人机交互技术。

背景技术

随着机器人技术的进步及其应用领域的不断扩展,移动机器人作为智能机器人的一个分支正在逐步进入我们的生活,并给机器人自主化与智能化的相关理论带来了新的动力。目前,移动机器人技术正在日益成为机器人领域的研究热点。在诸如餐厅服务、仓储管理、快递投送以及工厂物料输送等领域有着十分巨大的运用前景。但是,目前的应用的机器人普遍体积过大,因而不利于集成,通用性较差,控制性能较差;同时,由于整体结构过于封闭,在发生故障或试用期间不利于调试。



技术实现要素:

本发明是为了解决目前的应用的机器人普遍体积过大,因而不利于集成,通用性较差,控制性能较差,且由于整体结构过于封闭,在发生故障或试用期间不利于调试的问题,现提供基于qt人机交互界面与电机伺服系统的移动机器人运动控制系统。

基于qt人机交互界面与电机伺服系统的移动机器人运动控制系统,包括:陀螺仪3、控制器4、上位机7、n路电机反馈电路和n路电机驱动模块6,n为机器人驱动轮的数量,

n路电机反馈电路和n路电机驱动模块6分别与机器人的n个驱动轮一一对应,电机反馈电路用于采集机器人驱动轮的脉冲信号、测量脉冲信号的脉冲频率,将脉冲频率发送至控制器4中,电机驱动模块6用于根据控制器4下达的电机控制信号驱动机器人驱动轮的驱动电机旋转,

陀螺仪3用于采集移动机器人的角加速度数据并发送至控制器4中,

控制器4与上位机7实现数据交互,上位机7内嵌有qt人机交互界面,qt人机交互界面用于显示控制器发送的数据和电机速度曲线,qt人机交互界面还用于人工输入电机的预设信号,

控制器4内嵌有以下功能单元:

n个电机控制单元:n个电机控制单元分别与n个驱动轮一一对应,每个电机控制单元均用于采集对应驱动轮的电机反馈电路发送的当前脉冲频率,根据当前脉冲频率和电机的预设信号通过pid运算获得电机控制信号,将电机控制信号发送至相应电机驱动模块6中,

陀螺仪信息采集单元:采集陀螺仪3获得的角加速度数据,

通讯单元:将当前脉冲频率和角加速度数据发送至上位机7中,采集上位机7中输入的电机的预设信号。

每路电机反馈电路包括脉冲倍频电路1和脉冲测量电路2,

所述机器人驱动轮的驱动电机为无刷直流电机,该无刷直流电机内置霍尔传感器,该霍尔传感器用于采集无刷直流电机的电机转速信号,该电机转速信号为机器人驱动轮的脉冲信号,电机转速信号通过光耦隔离电路5发送至脉冲倍频电路1中,脉冲倍频电路1用于将获得的电机转速信号进行倍频并发送至脉冲测量电路2,脉冲测量电路2用于测量脉冲倍频信号的脉冲频率并将脉冲频率发送至控制器4。

本发明提出了一种基于qt人机交互界面与电机伺服系统的移动机器人运动控制系统,给使用者提供一个用于运动控制调试的用户界面,方便使用者根据机器人的不同型号和使用方式来为运动控制系统设置合适的参数,提高整套运动控制系统的通用化与智能化水平。具体有益效果如下:

(1)在电机驱动控制系统中舍去了码盘,采用无刷直流电机内部自带的霍尔传感器作为电机转速的信号反馈,在保证系统运行效果的同时,大大降低了整套系统的成本;

(2)采用qt人机交互界面,可实时显示电机的运动状态,方便用户对运动控制系统进行调试;

(3)选用imx-283作为主控制器,通过修改控制器内部程序及控制参数来修改运动控制系统的运行效果;

(4)基于米勒效应的硬件死区:利用二极管的单向导电性来控制mosfet管的米勒电容的充放电速度,从而避免三相桥电路的死区问题,相比通过软件来实现的死区更加可靠。

(5)整个系统采用差分驱动,电机布置在机器人中间位置,可实现原地转向,大大减小了机器人的转弯半径。

附图说明

图1为两轮驱动移动机器人的底部轮组分布示意图,其中,11、前万向轮,12、后万向轮,13、右驱动轮,14左驱动轮;

图2为基于qt人机交互界面与电机伺服系统的移动机器人运动控制系统的控制原理框图;

图3为控制器内部功能单元的示意图;

图4为基于qt人机交互界面与电机伺服系统的移动机器人运动控制系统的通讯格式示意图,(a)表示底层控制系统反馈信息格式,(b)表示上位机发送命令格式,(c)表示单片机反馈信息格式。

具体实施方式

具体实施方式一:参照图1至4具体说明本实施方式,本实施方式所述的基于qt人机交互界面与电机伺服系统的移动机器人运动控制系统,

如图1所示,移动机器人总共有四个轮子,分别为左右两个驱动轮,和前后两个万向轮。其中,两个驱动轮分别由一台无刷直流电机驱动。借助差分驱动的方式,机器人可实现原地转向,运动灵活。

针对于上述两个驱动轮的机器人,本实施方式采用如图2所示的控制系统,陀螺仪3、控制器4、光耦隔离电路5、上位机7、2路电机反馈电路和2路电机驱动模块6,每路电机反馈电路包括脉冲倍频电路1和脉冲测量电路2,

2路电机反馈电路和2路电机驱动模块6分别与机器人的左右两个驱动轮一一对应,分别对两个驱动轮进行数据采集和控制,机器人左右两个驱动轮的驱动电机均为无刷直流电机,每个无刷直流电机内各设置霍尔传感器,霍尔传感器用于采集所在无刷直流电机的电机转速信号。以一个驱动轮为例,该驱动轮的电机转速信号为机器人驱动轮的脉冲信号,电机转速信号通过光耦隔离电路5发送至脉冲倍频电路1中,脉冲倍频电路1用于将获得的电机转速信号进行倍频并发送至脉冲测量电路2,脉冲测量电路2用于测量脉冲倍频信号的脉冲频率并将脉冲频率发送至控制器4,

陀螺仪3用于采集移动机器人的角加速度数据并发送至控制器4中,所述陀螺仪3采用广州君悦智控有限公司的jy-901高精度六轴陀螺仪。

在电机功率电路设计过程中,采用6个mosfet管来搭建三相桥电路控制电机内部三相绕组电流的流向。mosfet管的开关死区是一个必须考虑的问题。当无刷直流电机的三相绕组进行相序切换时,如果mosfet管的打开速度快于关闭速度会造成三相桥电路的上下桥臂直通短路,烧坏mosfet管。通常的驱动电路都是通过控制器对mosfet管进行开启延时控制来保证上下桥臂不会直通短路,但如果延时时间设置不当或者控制器出现运行错误极易造成死区失效,造成电路损坏。本实施方式中,电机驱动模块6包括:si9979ds电机驱动芯片、ir2101驱动芯片、硬件死区电路和三相桥电路,si9979ds电机驱动芯片根据控制器4下达的电机控制信号和霍尔传感器反馈的电机转子当前位置信息进行电子换相,ir2101驱动芯片对电子换相结果进行放大,进而加强si9979芯片的驱动能力,并将放大结果作为硬件死区电路的信号源,硬件死区电路基于米勒效应来调整三相桥电路中mosfet管的开关速度,防止三相桥电路瞬间短路。所述米勒效应就是指:由于制造工艺的问题,mosfet管的栅源极和栅漏极之间存在着寄生电容,这些寄生电容的充放电影响了mosfet管的开关速度。通过控制这些寄生电容的充放电速度就可以控制mosfet管的开关速度。为了保证驱动电路的稳定可靠以及mosfet打开关闭的正确性,采用专用的驱动控制芯片进行驱动逻辑的控制。驱动电路的驱动控制芯片选择上海居逸电子公司的无刷直流机控制芯片si9979,该芯片内部集成了过流、欠压以及逻辑错误保护电路,采用pwm波进行控制,还集成有电机电子刹车与换向电路,功能比较齐全。其根据电机内部三个霍尔传感器反馈的电机转子当前位置信息来进行电子换相,代替了有刷直流电机中电刷的作用。si9979驱动芯片的驱动电压是5v的,而为了保证mosfet管的开启速度要求驱动电压为12v,采用ir2101驱动芯片来加强si9979芯片的驱动能力,实现了对mosfet管的开关控制。

控制器4内嵌有2个电机控制单元分别为左右两个驱动轮进行控制运算,针对上述驱动轮,所在电机控制单元采集获得其脉冲频率之后与上位机7中发送的信号进行pid运算获得电机控制信号,将获得的电机控制信号发送至相应电机驱动模块6中,以便对相应电机进行驱动,进而对驱动轮进行驱动。另一个驱动轮同理操作。

控制器4内还嵌有通讯单元和陀螺仪信息采集单元。通讯单元:将当前脉冲频率和角加速度数据发送至上位机7中,并采集上位机7中输入的电机的预设信号;陀螺仪信息采集单元:采集陀螺仪3获得的角加速度数据。

控制器4与上位机7之间通过rs232通讯电路实现数据交互,rs232通讯电路是采用美信公司的max3232芯片设计制作的,并且使用了带屏蔽网的九针串口线,增加了通讯的可靠性。上位机7内嵌有qt人机交互界面,qt人机交互界面用于显示控制器发送的数据和电机速度曲线,qt人机交互界面还用于人工输入电机的预设信号。

应用过程中,人工向qt人机交互界面输入电机的预设信号时,能够实现以下两种模式的调试:

静态调试模式:在机器人驱动轮悬空的情况下,采用qt图形界面输入电机的预设信号,获得此时的电机速度曲线,根据速度曲线来调试电机驱动模块6内部的控制参数,

动态调试模式:在机器人驱动轮落地的情况下,采用qt图形界面输入电机的预设信号,进而控制移动机器人的运动并获得此时的电机速度曲线。

上位机7中还嵌有自主运行程序,上位机将自主运行程序中的控制数据发送至控制器4中,实现移动机器人的自主运动控制。

用户可通过qt人机交互界面查看反馈信息,并根据反馈信息来对机器人进行调试。qt是一种跨平台c++图形用户界面应用程序开发框架,是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器)以及一些宏,qt易扩展,并且允许真正地组件编程。能够建立艺术级的图形用户界面所需的所有功能。

本实施方式中,整个系统通过24v锂电池及dc-dc开关电源模块供电。

控制器4为imx-283控制器,在imx-283控制器中采用多线程的方式来运行各个程序模块,并可由用户来修改内部控制参数进行调试,以适应不同的使用场合。同时,利用imx-283的多个串口,与各个传感器模块进行通讯,将imx-283芯片作为整个控制系统的核心,通过rs232通讯模块与外部上位机进行通讯,用户可通过使用外部上位机对整个控制系统进行调试。

为对机器人驱动电机的转速进行控制,需反馈用于计算电机转速的脉冲,通常通过码盘来实现。为了节约成本,增加整个系统的可靠性,本实施方式设计了脉冲倍频电路1,采用无刷直流电机自带的霍尔传感器发出的脉冲信号作为电机转速反馈信号,并且通过倍频电路增加了反馈脉冲的频率,提高了电机低速情况下的控制精度。无刷直流电机通常内部自带三个霍尔传感器,且间隔为120°为了进一步提高精度,通常利用三个霍尔传感器脉冲之间的相序关系将原本的脉冲进行三倍频。传统的倍频细分电路通常利用触发器与cpld配合来实现,但电路过于复杂,而且成本也较高。本实施方式则对三个霍尔传感器输出的三个脉冲信号进行编码,对于霍尔传感器间隔为120°的无刷直流电机,当电机正转时,对abc三个霍尔传感器输出的脉冲进行编码则可发现编码是按照101-001-011-010-110-100的规律不断循环的,并且编码之间跳变的频率是霍尔传感器输出的原始信号的三倍。利用电机的这一特性,使用三八译码器和三输入与门搭建倍频细分电路。将译码器的001、010、100输出管脚连接到74hc11三输入与门的三个输入端,与门的输出端得到的即为三倍频以后的脉冲。脉冲倍频电路1为74系列逻辑门电路,用于采集、放大、倍频无刷直流电机内部霍尔传感器反馈的脉冲信号,此信号即为电机转速信号。具体的,脉冲倍频电路1通过对无刷直流电机内部三个间隔为120°的霍尔传感器所采集的脉冲信号使用上拉电阻进行放大,并使用74系列逻辑门电路为其搭建专用的倍频电路,使输出脉冲信号频率为输入脉冲信号频率的三倍,增加了整个运动控制系统的分辨率,并将处理后的信号发送给脉冲测量模块。

脉冲测量电路2采用stc公司的52单片机及其最小系统电路搭建,将脉冲倍频电路1反馈回来的脉冲信号经过光耦隔离和放大后,通过52单片机的外部中断功能,捕捉脉冲信号的下降沿,测量两个脉冲之间的时间间隔,并由52单片机计算得到脉冲的频率,通过串口发送给控制器4。

本实施方式采用无刷直流电机专用的vishaysiliconix公司的si9979ds驱动芯片来驱动电机,并由imx-283控制器通过pwm波和几个io信号来对si9979ds驱动芯片进行控制。si9979ds驱动芯片内部集成了过流、欠压以及逻辑错误保护电路,采用pwm波进行控制,还集成有电机电子刹车与换向电路,功能齐全。imx-283控制器发出的pwm、使能、转向以及刹车信号经过光耦隔离电路后发送给si9979ds芯片,驱动控制芯片再根据控制信号以及电机中霍尔传感器反馈的转子位置信号来控制六个mosfet管组成的三相桥电路。驱动控制芯片通过控制三相桥电路中六个mosfet管的开闭来控制电机定子三相绕组中电流的流进与流出,为了防止上下桥臂的两个功率管同时导通而造成短路,必须设置死区时间来保护电路。si9979ds自带200ns的死区时间,因此三相桥电路中的mosfet管的最大导通与关闭时间必须小于200ns。本实施方式所选用mosfet管为vishaysiliconix公司的si9936dy,其最大导通与关闭时间分别为30ns与25ns,内部自带有起保护作用续流二极管,可以承受电机运行过程中的最大电压与电流,功率较小在使用过程中不会有明显的发热现象,因此不需要进行散热设计。

如图3所示为控制器4内部的功能单元,在imx-283控制器中,通过使用多线程编程技术,使各个控制程序独立运行。左右电机控制模块对机器人的无刷直流电机进行pid转速控制,陀螺仪控制模块定时接收陀螺仪反馈的线加速度与角加速度信息,rs232通讯模块不断接收上位机发送的控制指令,并返回机器人的运动状态。

控制器4与上位机之间采用rs232通讯电路进行信息传输,通讯信息出错的概率极低,但为保证传输信息的可靠性,本实施方式设计了一套基于16进制数的通讯方案,具体通讯格式如图4所示。通讯过程中每次收到的信息的长度固定为17个8位的16进制数,首位都是固定的,本实施方式采用16进制数0xff作为首位,中间为从各传感器和模块中反馈的信息,最后一位为校验位,本实施方式采用求和校验法,将前16位数相加,将结果除以256,取余数作为校验位。其余的串口通讯都采用相同的首位加校验位的方式进行通讯。

在通讯测试过程中,采用上位机中的串口调试助手接收信息,并进行校验。当机器人处于正常的电磁环境中时,并未发现有通讯错误,上位机接收的信息全都校验通过。当将去除屏蔽层且带有较强电磁干扰的开关电源放在通讯电路旁时,上位机收到的信息有较低的概率出错,且上位机能通过首位与校验位发现错误信息,并将其丢弃。

将控制器4中的rs232通讯电路端口与上位机的usb端口相连,可在上位机中通过串口调试助手打开对应的usb端口,得到控制器4反馈回来的当前两个电机的实际转速及转向,并可通过串口调试助手对底层运动控制系统进行控制。但通过串口调试助手来进行调试仅能得到电机在各个时刻的运动速度,并不能直观地得到电机的速度曲线,不利于调试。且通过串口调试助手来对底层运动控制系统下达指令的步骤太多,容易出错,且不够及时。

为了方便对电机驱动控制程序中的控制参数进行调试,本发明整个qt用户界面设有3个坐标图,分别是左侧电机的给定转速与实际转速图、右侧电机的给定转速与实际转速图以及左右电机的实际转速图,用来观测和对比左右电机的运行状况。还包括整个qt用户界面的控制区域,”leftinput”与”rightinput”框中分别填入左侧电机与右侧电机的期望转速,点击”ok”按钮便将电机的转速指令发送给底层运动控制系统,驱动器控制电机按照期望的速度旋转。同时,控制器4实时将电机当前的转速反馈给上位机,qt将接收到的电机转速不断地打印成速度曲线,显示在用户界面中。此外,还可通过使用鼠标点击“u”、“d”、“l”、“r”四个按钮,分别控制机器人前进、后退、原地左转以及原地右转,运动的速度范围为0~70cm/s,具体大小通过拖动四个按钮右侧的滑块来调节。“clear”按钮用于清除3个坐标图中的曲线,以便用户更新坐标图中的曲线。

为实现上述用户界面的功能,在qt的集成开发环境中,采用多线程的方式来编写控制程序。分别由各个线程完成对下位机运动控制系统反馈的信息实时监听,每隔100ms更新一次3个坐标图,实时监控用户界面控制区域的各个按钮并完成相应操作。根据通过qt得到的电机速度曲线,对pi控制器的kp和ki参数表进行修改,改善电机的运行效果。多次重复上述过程后,得到了一组比较理想的参数。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1