机缘巧合之下开始接触机械臂相关知识。出于兴趣,在有限的时间内初步完成Denso机械臂的驱动控制及简单的运动规划。
主要解决和实现内容分为3部分。
1是驱动器的通信,可以使用CAN的方式,也可以使用Ethercat的方式。CAN最大速率可达1Mb/s、线长可达40米,一个CAN网络最多可支持127个节点。EtherCAT是全双工通讯,最多支持65535个节点,线长可达100米。本博客使用线长10米。
2是D-H参数测量和计算,以及坐标系的建立,因为D-H本身并没有对坐标系的建立进行严格限制,所以相同的D-H参数表也会得到不同的坐标系,从而决定了机械臂末端对于基底的位置的不同。这里的基底其实指的是底座的坐标系。
3是机械臂或者说是机械臂运动学正解和逆解的学习和计算。正解是已知各个驱动电机转动的角度进而求解末端位置相对于基底的坐标,电机顺序一定的情况下得到的末端位置是已知且唯一的。逆解是已知机械臂末端对于基底的位置和姿态,求出各个驱动器电机需要转动的角度。由于多种原因解析解可能不是唯一的,而且难解,大家会采用数值解。
驱动器的通信作为最基础的部分,现在由于对于同步速率的要求,广泛使用的是Ethercat的通信。EtherCAT开发的目的就是让以太网可以运用在自动化应用中。如果要了解Ethercat那么也就必须了解一下其发明者Beckhoff公司,使用一下其公司的软件TwinCAT。这个软件是Ethercat的主站软件,能够识别并且操作几乎所有的Ethercat驱动器。
除了Beckhoff公司的TwinCAT这个强大软件之外,目前常见开源的主站代码为2种。
1是RT-LAB开发的SOEM,也就是Simple OpenSource EtherCAT Master。
2是EtherLab的the IgH EtherCAT Master。
使用起来SOEM