一 概述
近几年,随着各类总线控制技术的成熟,机器人上用的伺服驱动器已经逐步过渡到总线类型,尤其是EtherCAT和CANopen。针对以上两种总线,都有相应的控制器解决方案。为了进一步方便用户定制自己的控制器,下面介绍一种半开源的平台,方便用户结合自己的应用逻辑来开发独具特色的机器人控制器,主要特性有:
- 适配多种常见构型,Delta,SCARA,直角坐标,码垛机器人,6轴机械臂等;
- 全功能仿真模式,只需要一块板卡就能完成所有指令的测试与仿真计算;
- 支持客户特殊构型,需要定制相关正逆解;
- 支持多种总线伺服,EtherCAT,CANopen等;
- 包含1个用户设置流程和5个周期性用户任务,开放给用户使用;
- 支持空间直线,圆弧,样条曲线插补轨迹;
- 多运动曲线之间轨迹平滑与前瞻;
- 支持定制其它客户需求;
二 机器人控制架构
一个完整的机器人控制器,软件上包含了诸多模块,从简化的角度看,主要有以下模块,如图1所示。
图1 机器人控制器组成
图1中的模块,是组成一个机器人控制系统的最少模块,其余一些辅助模块,就不一一列举了。在开放型控制器中,通信模块的介质,是可以根据用户需求来更改的。例如使用以太网,485,232都可以。其余模块,例如伺服驱动模块,对应了不同品牌的伺服电机。正逆解模块中,已经标配了几种常见的构型,例如Delta,SCARA,UR,ARM6关节机械臂,三坐标加工,码垛机器人等。同时支持用户来定制。剩余模块,功能基本固定。例如插补模块,具备三维直线,圆弧,样条曲线功能。
三 使用方法
开放型控制卡采用工业款EtherCAT主站卡为载体,提供基础功能库,方便客户进行二次开发,具体方法如下:
对于用户开放的模块是user.c和main.c
其中main.c中,定义了整个程序的主体框架,如图2所示。
图2 开放控制卡主函数
在初始化设置部分,提供控制卡本身的初始化函数Bant_setup,以及开放给用户使用的设置函数Task_user_setup,这个