基于CAN总线服务机器人控制系统设计

时间:2022-06-01 09:51:52

基于CAN总线服务机器人控制系统设计

【摘 要】本文介绍了一个基于CAN总线的服务机器人控制系统。上位机采用通用PC机,机器人的关节用单片机进行伺服控制。上下位机通讯是通过CAN总线,系统的开放性和实时性能得到显著提高。

【关键词】CAN总线;服务机器人;单片机

The Design of Service Robot Control System Based on CAN Bus

YANG Xu-Dong

(Tangshan College, Tangshan Hebei 063000, China)

【Abstract】A Service control system based on CAN bus is introduced.The system takes universal PC as the supervisory-controlled computer,and the microcontroller as the controller’s core to servo-control the joint of the robot.The two-level controllers uses CAN bus to communicate,and the characteristics of open system and real-time have been developed.

【Key words】CAN bus; Service robot; Microcontroller

0 引言

随着计算机技术和网络技术的飞速发展,服务机器人技术得到广泛应用。服务机器人主要应用于家庭、医疗、娱乐等服务业,可以很大程度上提高人们的生活质量。它不仅可以使人们从繁琐的家庭事务中解脱出来,而且随着老龄化社会逐渐来临,在家庭服务业,医疗护理行业等各方面取得很好的应用前景。机器人在一定空间范围内,能够以某一个任意姿态达到空间中任意一点,服务机器人应至少具有5个自由度。因此我们设计了具有五自由度关节式服务机器人,其中五个关节都采用交流伺服电机来驱动。五个关节分别是控制机身旋转、大臂的摆动、以及小臂摆动、手腕摆动、和手腕俯仰等。他们联接的方式是串联,因此具有较高的运转精度和灵活性。在控制系统中主要采用基于CAN总线的两级控制系统。

1 控制系统总体结构

服务机器人控制系统采用了上、下位机控制、两层结构形式,从而达到了开放性好、实时性强,对机器手的位置精确控制的目的。如图1所示。

图1 控制系统总体结构

服务机器人控制系统具有多变量、非线性、强耦合的特点,需要建立和计算复杂的动力学方程。因此我们设计上位机使用高性能通用计算机,主要计算服务机器人的路径规划、以及任务分配和系统监视等。下位机设计为5个单片机系统,下位机是并行工作的,每个下位机中的单片机系统控制本关节的运动和采集位置传感器的信号。CAN总线是用来支持包括分布式控制和实时控制的串行通讯网络。上下位机之间通讯是通过CAN总线,控制命令或数据是由上位机向下位机发送,各个关节的位置信号是由下位机可以向上位机传送。

2 控制系统上位机设计

上位机采用目前较先进的通用的高性能计算机, 其主要任务包括系统的初始化、以及人机交互和完成服务机器人的路径规划,针对给定的目标位置,计算出相应的各关节运动量,发出控制命令和数据给各关节控制器,同时由各关节控制器接受返回的反馈数据。这样由于上位机计算速度较快,它承担了控制系统大部分的计算,主要包括轨迹规划以及运动学逆解、动力学方程求解等。其程序流程图如图2所示。

图2 上位机程序流程图

上位机采用CAN PC卡和CAN总线网络连接。CAN PC卡选用的是基于ISA总线的非智能CAN卡,其中已经带有板卡驱动以及相应的动态连接库。通过VC++开发工具直接调用动态连接库,从而实现与CAN网络的相互通信,发出控制命令向作为下位机的各个关节控制器。

3 控制系统下位机设计

图3 单关节控制系统原理图

我们选用AT89C52单片机作为各关节的伺服控制,主要任务是接收由主机发给下位机的位置运动控制指令,经过控制电路作用,产生在相应方向上的脉冲信号,分别去驱动交流伺服电机,通过传动装置带动各关节转动,还要采集相应位置传感器信号,实现系统的闭环控制。控制系统的硬件结构原理图如图3所示。控制策略主要采用PID控制,主要任务是计算PID参数,通过系统仿真试验表明,通过PID控制后,系统的动态指标显著提高,能够满足控制要求。

CAN总线与各关节控制器的接口部分包括CAN控制器芯片SJA1000以及CAN总线收发器89C250两部分组成。SJA1000是一种输入输出设备,也是微控制器,它基于内存编址,主要完成CAN总线通信协议中物理层以及数据链路层的功能。收发器89C250是CAN总线中通信控制器和物理总线之间的接口部分,提供符合CAN总线电气协议的差动发送以及接收功能。SJA1000的初始化通过AT89C52软件实现, 在正常工作模式下通过AT89C52控制SJA1000的收发过程来完成和总线的通信。CAN总线中通信程序主要通过SJA1000初始化、数据接收、数据发送组成。

4 结论

以五自由度关节式服务机器人控制系统为研究对象,采用的控制系统是基于CAN总线的并行控制系统。系统实现了上下位机的运行是分速率运行的、具有实时性以及开放性强的特点。系统软件主要采用模块化结构设计方法,功能模块直观,易于编写程序。系统仿真的结果显示本控制方案的性能价格比较高,各电机轴运行平稳可靠、动作较协调、运动轨迹较平滑,轨迹跟踪的实时性能较好,实现了设计的要求。

【参考文献】

[1]肖雄军,蔡自兴.服务机器人的发展[J].自动化博览,2004(6).

[2]阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1999.

[3]马骏骑.服务机器人[J].昆明理工大学学报,1997,22(3).

上一篇:清水混凝土工艺在变电站工程中的应用 下一篇:建筑智能化弱电施工管理要点分析