linuxCNC的分支,MachineKit的使用文档翻译 代码提示 阅读对象: 这个文档一个关于MachineKit内部的知识集合。主要针对的是开发者,但是系统集成者或者其他想知道MachineKit是怎么工作的人也可以从这里获得很多知识。本文档中的许多信息可能已经过时,没有被准确的评估过。
组织 本文将在每个章节介绍MachineKit的主要组件,以及各个组件是如何联合工作的。
术语和定义 “AXIS” —— 一个轴是九个自由度的之一。 这九个自由度定义了在三维笛卡尔坐标系中定义的工件坐标(焊枪,割枪,机械手顶部)。这九个轴分别是X,Y,Z,A,B,C.U.V和W。其中,线性直角坐标X,Y,Z决定了工件的尖尖一点的位置。球坐标系A,B,C决定了工件的方向。第二组指教坐标系U,V, W,用于工件的预置的摆动和旋转轴的运功 (个人理解,以人的右手食指为代表, X,Y, Z 代表的是 指尖的位置,A B C代表的是手指的方向。 U V W 可能是指尖上又安装了一个可以动的针 ,(猜测))
不幸的是,“轴“有时候也用来定义一个机械本身的一个自由度,例如具有马鞍、平板和滚轴型的布里奇波特的铣床。在布里奇波特里这样描述没有问题,因为操作台运动的方向与X轴一致。但是,类似人的手臂的机器人手臂和六足机器人不能以笛卡尔坐标系进行移动,事实上区分笛卡尔坐标系和机器自由度是十分重要的。在这篇文章中,我们称自由度为“关节”,而不是“轴”。(在图形界面上和其他一部分代码不是按照这个区别,只是控制器内部这么定义的)
“JOINT” 表示机器的一个可移动部件,即关节。关节区别于轴,虽然有时代表的同一个东西。在MahineKit里,一个关节就是一个可以移动的物理装置,不是在坐标系上。例如:滚轴,升降台,纵向,横向操作台都是关节轴。机器人手臂的肩膀,肘部,手腕都是关节以及六足爬行器的角。每一个关节都有一个电机。虽然在运动学上机械的关节和轴有可能对应,但是关节没有必要和X,Y,Z轴对应。在有的机器上,关节位置和轴的位置也许不是同一个东西。在本文中,术语“joint”和“axis”代表不同东西,要加以区分。但是不幸的是,有的地方没有加以区分。事实上,机器的GUI的部分可能隐藏了关节和轴的区分。此外,ini文件的术语“axis”的数据实际上有可能是关节轴的数据,例如输入输出计算脉冲。 “POSE” 一个三维的笛卡尔坐标系的完全位置。在MachineKit中,指的是X,Y,Z和A,B,C。 架构概述 MachineKit架构包含了四个组件:运动控制器(EMCMOT)、离散型IO控制器(EMCIO)、任务执行器(EMCTASK,是运动控制器和IO控制器的纽带和协调者,相当于进程管理器负责进程调度,这里是负责调度运动和IO输入输出的顺序)、文本呢模式和图形模式的用户接口。 这些将会从设计者和二次开发者的角度会介绍这些组件。
补充: 1. 位置运动学仅考虑运动中的几何学问题,即不考虑运动与时间的关系。已知关节空间的关节变量,计算操作机在操作空间的手部姿势,称之为运动学正问题。反之,已知操作机在操作空间的手部位姿,求各关节变量的反变换,称之为运动学逆问题,也叫作求手臂解。
MachineKit软件架构。
未完待续—–
新闻热点
疑难解答