机器人学导论阅读笔记 12 -- 机器人编程语言及编程系统

黄杰, 2013-06-16
root[a]linuxsand.info

tags: robotics

原书目录:

机器人编程的三个级别

1 示教

移动机器人到一个期望目标点,并在存贮器中将这个位置记录下来,使得顺序控制器可以在再现时读取这个位置。在示教阶段,用户通过手或者通过示教盒交互方式来操纵机器人。示教盒是手持的按钮盒,它可以控制每一个操作臂关节或者每一个笛卡尔自由度。这种控制器可以进行调试和分步执行,因此,能够输入包含逻辑功能的简单程序。

2 动作级机器人编程语言

大多数机器人系统配备了机器人编程语言,但同时也保留了示教盒接口。区分为 3 种类型:

  1. 专用操作语言。如 Unimation's VAL,Stanford's AL(过时)
  2. 应用已有计算机语言的机器人程序库。如 NASA's JARS(Pascal + 机器人程序库),Cimflex's AR-BASIC
  3. 应用新型通用语言的机器人程序库。如 ABB's RAPID,IBM's AML,GMF's KAREL

机器人语言的发展趋势是逐渐远离专用机器人编程语言的开发,而向通用语言开发的方向发展。

3 任务级编程语言

这种语言允许用户直接给定期望任务的子目标指令,而不是详细制定机器人的每个动作细节。至今还没有真正的操作臂任务级语言,但这已经是一个活跃的研究课题。

应用实例

(懒病犯了。)

机器人编程语言的必要条件

1 世界模型

机器人编程语言最基本的要素就是一些专门的几何模型。在许多机器人编程语言中,定义各种几何模型的名义变量,并在程序中访问它们,这种能力构成了世界模型的基础。

2 运动指令

基本语法以下为实例。

  1. 操作臂运动到「目标 1」
  2. 然后沿直线运动到「目标 2」位置
  3. 连续运动通过「路径点 1」到「目标 3」的位置停止

假定对已对这些路径点示教过。

VAL II 语言:

move goal1
move goal2
move via1
move goal3

AL 语言(garm 为操作臂):

move garm to goal1;
move garm to goal2 linearly;
move garm to goal3 via via1;

语言间的区别:

  1. 采用数学方法建立坐标系、矢量和旋转矩阵的能力
  2. 类似于坐标系,以几种不同的简单符号描述几何实体的能力 —— 同时具有符号变换的功能
  3. 约束给定运动的持续时间和速度的能力
  4. 相对于不同坐标系确定目标的能力,包括用户定义的坐标系和运动中的坐标系

3 操作流程

和通用编程语言一样,有流程控制 —— 测试、分支、循环、访问子程序甚至中断

在机器人编程语言中经常有「信号」单元和「等待」单元,有时还会推出更复杂的并行操作结构。有些语言提供「事件监测」的能力:用传感器去监测操作,然后通过中断或查询,根据传感器的探测信号对某事件产生响应。

4 编程环境

大多数机器人编程语言采用解释型语言。

5 传感器融合

解决与传感器交互是很重要的问题。略。

机器人编程语言的特殊问题

1 内部世界模型与外部实际环境的关系

2 程序前后的关联性

在单独测试时工作可靠的程序代码,当将其置于较大的程序文本中时,常常会失效。原因是机器人编程受到操作臂运动的位形和速度的影响较大。

影响因素不限于:初始位置、操作臂精度、操作臂位形等。

3 误差校正

误差检测,误差校正。略。