Computer Science and Application
Vol.07 No.09(2017), Article ID:22169,8 pages
10.12677/CSA.2017.79102

Design of Omnidirectional Mobile Platform Control System Based on STM32 CAN Bus Control

Siqi Peng, Linxiao Tian, Yan Wang, Ming Liao, Zhilan Xiao, Kehua Zhang*

College of Engineering, Zhejiang Normal University, Jinhua Zhejiang

Received: Sep. 10th, 2017; accepted: Sep. 23rd, 2017; published: Sep. 27th, 2017

ABSTRACT

Omnidirectional mobile platform is driven by independent multiple Mecanum wheels. Through the combination of rotation speed and steering of the wheel set, it can move in a two-dimensional plane at arbitrary angles. Its movement is very flexible and smooth. It implements precise positioning and high precision trajectory control with fine adjustment of position, and is widely used in autonomous mobile robots. To improve the real-time and accuracy of omnidirectional mobile platform and enhance the stability and accuracy of the whole control system, the CAN bus network used in the platform, DMA data transmission, PID control and other methods were studied. Firstly, the mathematical modeling and motion analysis of the mobile platform based on the Mecanum wheel is carried out. Then, to speed up the transmission of sensor data, the platform uses DMA data transmission, and data exchange between main control and motor through CAN bus network is carried out at the speed of 1 M/S. Through repeated debugging and testing, operation is smooth during omnidirectional movement of the remote-control platform. And the platform without lag phenomenon, can quickly and accurately reach the target position. It basically meets the requirements of stable, reliable, high precision and strong anti-interference ability of the control system.

Keywords:Omnidirectional Mobile Platform, CAN Bus Network, DMA, PID Algorithm

基于STM32和CAN总线的全向移动平台 控制系统设计

彭思淇,田林晓,王妍,廖明,肖志兰,张克华*

浙江师范大学工学院,浙江 金华

收稿日期:2017年9月10日;录用日期:2017年9月23日;发布日期:2017年9月27日

摘 要

全向移动平台采用多个麦克纳姆轮独立驱动,通过轮组的转速和转向的组合,可以以任意姿态在二维平面内移动,运动非常灵活、平稳,通过位置细微调整实现精确定位和高精度轨迹控制,广泛用于自主移动机器人。为了提高全向移动平台控制的实时性和精确性,增强整个控制系统的稳定性与准确性,对该平台所采用的CAN总线网络、DMA数据传输和PID控制算法等方法进行研究。首先对基于麦克纳姆轮的移动平台进行数学建模并进行运动分析,然后为了加快传感器数据的传输,采用DMA数据传输,而且主控和电机之间通过CAN总线网络以1 M/S的速度进行数据交换。经过测试,在遥控平台全向运动的过程中,操作流畅,平台无卡顿现象,并能够快速准确的到达目标位置。满足控制系统的稳定可靠、精度高、抗干扰能力强等要求。

关键词 :全向移动平台,CAN总线,DMA,PID算法

Copyright © 2017 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

1. 引言

机器人技术作为一种高新技术,将计算机技术,人工智能,传感器技术,控制论等多学科综合在一起,是科学技术发展共同的一个综合性的科学成果。而且移动机器人平台是机器人学的一个重要分支,是一种由运动控制器系统、信息采集系统、机械装置所组成的具有人工智能的控制系统 [1] 。相比于传统的移动平台,全向移动平台在空间有限、狭窄、对机动性要求较高的场合有着明显的优势,因此已经得到了广泛的应用,比如装配生产行业,仓储物流行业,交通工具等等。

自从1973年瑞士人Bengt Lion发明了Mecanum轮后,因其承载能力强,通过各轮之间转速转向的配合即可实现全方位移动而广泛的应用在移动平台上,更加的贴近于实际应用。譬如德国KUKA公司研发的基于Mecanum轮平台的五轴机械臂youBot机器人;美国AirTrax公司将Mecanum轮的全向移动平台进行了商业化,产品有Sidewinder系列万向行走叉车、COBRA系列升降平台、MP2系列平板拖车等;德国MIAG公司生产的Mecanum轮式弹体搬运转载车等等。如图1所示。

目前国内Mecanum轮式全向移动平台的应用广泛,但主要为运动的实现或者以全向移动为基础的多种功能的混合实现,而对于平台的移动精度,实时性以及平稳性的研究还不够完善 [2] 。为了提高全向移动平台的实时性和精确性,增强整个控制系统的稳定性与准确性,更好的协调各个传感器之间的通信,引入分布式实时控制的CAN总线技术,并利用DMA进行遥控数据的传输测试。

本文首先对移动平台的硬件构成做了简要介绍,并对平台进行运动分析。再利用软件流程图的方式简单说明了整个控制系统的工作流程。然后重点阐述了CAN总线通信的实现和遥控数据的DMA传输。

Figure 1. Application of omnidirectional mobile platform

图1. 全向移动平台应用实例

最终对平台进行实地测试,达到预期目的。

2. 移动平台系统的构成及运动分析

2.1. 全向移动平台系统的硬件构成

全向移动平台的整个系统是基于CAN总线搭建的,主控STM32和各个电机驱动做为通信节点接入CAN总线,遥控系统由遥控器和接收机组成。整个平台框架结构原理图如图2所示。

平台使用STM32F407芯片作为控制系统的主控。该芯片采用了先进的Cortex_M4内核,拥有强大的浮点计算以及处理DSP指令的能力;并且拥有高达1 M字节的片上闪存和196 K字节的内嵌SRAM;同时可以以168 Mhz高速运行时可达到210DMIPS的处理能力,以及丰富的外设都为系统的可靠性提供了更好的保障。

2.2. 移动平台运动分析

图3所示,左边的图是以整车作为一个坐标系,右边的图是以轮1作为一个坐标系。4个电机分别驱动4个麦克纳姆轮,实现独立旋转。摩擦力的方向由辊子的安装角度以及转动的方向决定。假设4个麦轮的转动速度为w1,w2,w3,w4;整车的速度为vx,vy,v0;辊子的速度vg1,vg2,vg3,vg4。以轮1为例,O为底盘的中心,O1为轮1的中心。XOY为与车体运动中心固联的直角坐标系,X1O1Y1为与轮毂中心固联的直角坐标系。

在XOY坐标系下,轮1中心点O1的移动速度为:

v O 1 x = v x w 0 L 1 (1)

v O 1 y = v y w 0 L 2 (2)

在X1O1Y1坐标系下,轮1中心O1点的移动速度为:

v O 1 x = v g 1 cos α + w 1 R (3)

v O 1 y = v g 1 sin α (4)

其中 v O 1 x 为轮1沿x方向移动速度,其中 v O 1 y 为轮1沿y方向移动速度, v g 1 为棍子1的转速。综合式(1),式(2),式(3),式(4)可得:

{ v x w 0 L 1 = v g 1 cos α + w 1 R v y w 0 L 2 = v g 1 sin α (5)

Figure 2. Frame structure schematic

图2. 框架结构原理图

Figure 3. Body coordinate system and 1st wheel coordinate system

图3. 车体坐标系以及轮1坐标系

将式(5)联立求得轮1的转速为:

w 1 = 1 R [ 1 1 tan α ( L 1 + L 2 tan α ) ] [ v x v y w 0 ] (6)

又因为棍子的安装角度为45度,化简得:

w 1 = 1 R [ 1 1 ( L 1 + L 2 ) ] [ v x v y w 0 ] (7)

同理分析其余3个轮子,可得:

[ w 1 w 2 w 3 w 4 ] = 1 R [ 1 1 ( L 1 + L 2 ) 1 1 ( L 1 + L 2 ) 1 1 ( L 1 + L 2 ) 1 1 ( L 1 + L 2 ) ] [ v x v y w 0 ] (8)

由式(8)知,分配给四个轮子的转速和旋转方向不同,平台就可以实现全方位移动 [3] [4] 。

3. 全向移动平台的控制系统

为了整个系统的稳定性和实时性,通过搭建CAN总线网络,将主控和各个电机作为总线上的各个节点,进行数据的交换;对于远程遥控数据的传输采用DMA数据传输。

3.1. 软件设计思想与整体构架

本文研究的全方位移动平台采用半自动运行的方式。系统上电后,人通过肉眼视觉上的反馈,通过遥控器控制移动平台的运动状态。软件设计流程图如图4所示。

首先对系统的中断优先级以及系统变量进行初始化,遥控器通过DMA进行数据传输,主控对接收到完整的一帧数据进行解析。之后开启CAN通信中断,接收到电机反馈报文后触发中断服务函数CAN1_RX0_IRQHandler (void),再利用PID控制算法计算出要赋予电机的电流值,再通过函数CAN_Send_Msg()将数据帧发送给相对应的电机,再关闭中断,完成一次循环。

3.2. CAN总线实现

CAN总线的全称是Control Area Network,属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。最早是由德国BOSCH公司设计用来解决汽车通信问题。解决了简单的点对点式通信使得电控系统电气连接线长度和接头数增加的问题,同时还提升了电控系统的稳定性和可维护性 [5] 。

主控STM32F407和电机电调都是CAN总线上的节点,之间通过数据帧进行通讯,通讯波特率设置为1 Mbps。为了对电机转速进行控制,我们将控制输出量填充到CAN数据帧相应的位,然后作为转矩命令发送给驱动板使其工作;同时驱动板以1 Khz的频率通过CAN总线反馈电机的运行状态。驱动板接收和反馈的数据帧格式如图5图6所示。

图5图6看出驱动板反馈带有不同标识符的数据帧,主控接收到数据帧时产生中断。在中断服务函数中,利用反馈的机械角度,根据PID控制算法,将计算出的电流值填充到数据帧中,再通过CAN总线发送数据帧到电机驱动上,使之达到转速要求。硬件接线如图7所示。

Figure 4. Software flow chart

图4. 软件流程图

Figure 5. The message format received by driver board

图5. 驱动板接收报文格式图

Figure 6. The feedback message format from driver board

图6. 驱动板反馈报文格式图

Figure 7. CAN network hardware connection diagram

图7. CAN网络硬件连接图

3.3. 遥控数据的DMA传输

遥控器的主要作用是控制全向移动平台的运动姿态,包含运动方向、速度以及运动轨迹的规划等。DR16接收机把遥控器发送的数据传输到STM32F407主控通过DMA传输。

DMA传输:全称是Direct Memory Access,直接通过存储器进行数据访问。该方法最大特点是无需CPU干预,也没有中断处理方式那样保留现场和恢复现场的过程,在硬件上搭建了一条RAM与I/O传输数据的快捷通道,很大程度减轻CPU的工作负载。CPU仅参与DMA初始化工作,而在整个数据传输过程中完全由DMA自身实现 [6] 。STM32芯片DMA资源丰富,我们选择DMA1的数据流5,4号通道。外设基地址为串口寄存器“USART2- > DR”,内存地址为自定义的数组Buffer[]。首先串口通过DMA控制器向主控发出DMA数据请求,主控响应DMA请求,把总线控制权交给DMA控制器,之后执行DMA数据传输,操作结束后DMA控制器把总线控制权交还给主控。数据从外设传输到内存中,每当遥控接收机向主控发送了一帧数据后,系统便触发中断,对遥控数据进行解析。

3.4. PID控制算法

PID控制器即P (比例),I (积分),D (微分)控制。它是对给定值 r ( t ) 与实际输出值 y ( t ) 的偏差 e r r ( t ) 进行比例、积分、微分运算。它的数学表达式:

U ( t ) = K p ( e r r ( t ) + 1 T I 0 t e r r ( τ ) d τ + T D d e r r ( t ) d t ) (9)

其离散形式为:

U ( k ) = K p e r r ( k ) + K p T T I 1 k e r r ( j ) + K p T d ( e r r ( k ) e r r ( k 1 ) T )

式中Kp为比例系数;Ti为积分时间常数;Td为微分时间常数; K i = K p T / T i K d = K p T d ;T是采样周期, e r r ( k ) e r r ( k 1 ) 分别是第k和第( k 1 )时刻的偏差信号 [7] 。位置式PID需要记录前面偏差的累计,还需计算最近两次偏差的差值。比例项,微分项,积分项采用试凑法确定具体数值。

4. 移动平台测试

根据上述计算,设计制作实验平台,在平台搭建的过程中,考虑到平台重量,对材料的选择进行了多次测试。最终选择铝合金和标准型材作为平台的主体材料,对于一些应力较小但是形状复杂的零部件采用3D打印。同时为了能够让电机转速快速达到设定转速,对PID控制算法的参数进行测试,当Kp = 2.0,Ki = 0.0,Kd = 0.35时能够满足要求。为了能够更好的达到远程操控的目的,选择了DT7 & DR16遥控接收系统,经测试在40 m距离内操控平台,在复杂路况下对平台进行实地测试,操作过程流畅,平台的稳定性以及实时性均达到目标要求。实验平台如图8所示。

5. 结束语

本文提出了一种基于CAN总线网络的全向移动平台的硬件和软件方案,通过远程遥控,在复杂环境下实现全方位的移动。主控采用STM32F407芯片,利用DMA进行数据的传输,保证了整个系统的稳定性和实时性。主控对遥控器发送的命令进行数据解析后,分配给四个电机不同的转速,从而控制平台的移动方向和速度。采用位置式PID控制算法,精确控制电机转速。实际应用中,对平台进行适当改造,便可以应用于仓储物流,探险救援,科研教学等领域。

Figure 8. Omnidirectional mobile test platform

图8. 全向移动测试平台

致谢

本文获得2016国家级大学生创新创业训练计划资助(NO. 201610345026)。

文章引用

彭思淇,田林晓,王 妍,廖 明,肖志兰,张克华. 基于STM32和CAN总线的全向移动平台控制系统设计
Design of Omnidirectional Mobile Platform Control System Based on STM32 CAN Bus Control[J]. 计算机科学与应用, 2017, 07(09): 894-901. http://dx.doi.org/10.12677/CSA.2017.79102

参考文献 (References)

  1. 1. 肖建. 移动机器人分布式控制系统的研究与实现[D]: [硕士学位论文]. 广州: 暨南大学出版社, 2015.

  2. 2. 田青. Mecanum轮式全向机器人位置精准控制的应用[D]: [硕士学位论文]. 南京: 东南大学出版社, 2015.

  3. 3. 王兴松. Mecanum轮全方位移动机器人技术及其应用[J]. 机械制造与自动化, 2014, 43(3): 1-6.

  4. 4. 陈博翁, 范传康, 贺骥. 基于麦克纳姆轮的全方位移动平台关键技术研究[J]. 东方电气评论, 2013, 27(108): 7-11.

  5. 5. 柴文峰, 丁学明. 基于STM32单片机CAN通信控制网络设计[J]. 电子科技, 2017, 30(3): 142-145.

  6. 6. 魏琳, 田波. 基于STM32F4系列的串口DMA数据处理传输研究[J]. 自动化应用, 2016(8): 92-93.

  7. 7. 王虎, 彭如恕, 尹泉. 基于STM32嵌入式模糊PID步进电机控制系统的设计[J]. 机械工程师, 2014(11): 139-140.

  8. NOTES

    *通讯作者。

期刊菜单