1中南大学蔡自兴谢斌zxcai,xiebin@mail.csu.edu.cn2010机器人学基础第八章机器人编程1Ch.8RobotProgrammingFundamentalsofRobotics2ReviewGeneralConsiderationsinTrajectoryPlanningInterpolatedCalculationofJointTrajectoriesPlanningofCartesianPathTrajectoriesRealTimeGenerationofPlanningTrajectories2FundamentalsofRobotics33QuestionsAccordingtoleveloftaskdescription,howmanycategoriescanrobotprogramminglanguagesbesplitinto?Listoutseveralcommonlyusedrobotprogramminglanguages.Comparisonbetweenoff-lineprogrammingandteachbyshowing.Ch.8RobotProgramming4ContentsRequirementsandLanguageTypestoRobotProgrammingStructureandBasicFunctionsofRobotLanguageSystemCommonly-UsedLanguageforRobotProgrammingOff-LineProgrammingofRobotsSummary4Ch.8RobotProgramming5Ch.8RobotProgramming机器人编程语言是一种程序描述语言,它能十分简洁地描述工作环境和机器人的动作,能把复杂的操作内容通过尽可能简单的程序来实现。机器人编程语言也和一般的程序语言一样,应当具有结构简明、概念统一、容易扩展等特点。由于机器人的控制装置和作业要求多种多样,国内外尚未制订统一的机器人控制代码标准,所以编程语言也是多种多样的。Ch.8RobotProgramming68.1RequirementstoRobotProgramming&TypeofLanguages机器人编程要求和语言类型8.1.1RequirementstoRobotProgramming对机器人编程的要求Worldmodeling能够建立世界模型Taskspecification能够描述机器人的作业Motionspecification能够描述机器人的运动Flowofexecution允许用户规定执行流程Programmingenvironment要有良好的编程环境Sensorintegration需要人机接口和综合传感信号8.1RequirementsandTypesofRobotProgrammingLanguages78.1.1RequirementstoRobotProgrammingWorldmodelingxyzxyzyzxxyz{Table}{Fixture}{Pin-grasp}{Feeder}8.1RequirementsandTypesofRobotProgrammingLanguages88.1.1RequirementstoRobotProgrammingTaskspecification{Table}{Block1}{Block2}{Block3}{Table}{Block1}{Block2}{Block3}{face1}{face3}(a)(b)StateAStateB(Block1-face1AGAINSTTable)(Block1-face3AGAINSTBlock2-face1)(Block3-face1AGAINSTTable)(Block1-face1AGAINSTTable)(Block1-face3AGAINSTBlock2-face1)(Block2-face3AGAINSTBlock3-face1)8.1RequirementsandTypesofRobotProgrammingLanguages98.1.1RequirementstoRobotProgrammingMotionspecification例.机械手运动如下:(1)移至位置“goal1”;(2)再以直线移至位置“goal2”;(3)不停顿地移动经过“via1”,到达停止位置“goal3”。用VAL-II语言:movegoal1movesgoal2movevia1movegoal3用AL语言(控制机械手garm):movegarmtogoal1;movegarmtogoal2linearly;movegarmtogoal3viavia1;8.1RequirementsandTypesofRobotProgrammingLanguages108.1.1RequirementstoRobotProgrammingFlowofexecution允许用户执行测试、分支、循环、调用子程序以及中断等流程。Programmingenvironment包含断点调试功能,以及典型的编程支持(如文本编辑、调试程序和文件系统等)。Sensorintegration在编程和作业过程中,应便于人与机器人之间进行信息交换。能与传感器进行信息交互,以此来控制程序的流程。8.1RequirementsandTypesofRobotProgrammingLanguages11118.1.2TypesofRobotProgramming机器人编程的类型根据编程方式,机器人编程可以分为:Teachbyshowing(示教编程)手把手示教Robotprogramminglanguages(机器人语言编程)用专用的或通用的机器人语言来描述机器人的动作轨迹Off-lineprogramming(离线编程)在专门的软件环境支持下用专用或通用程序,在离线情况下进行机器人轨迹规划编程示教盒示教8.1RequirementsandTypesofRobotProgrammingLanguages12Teachbyshowing8.1RequirementsandTypesofRobotProgrammingLanguages13138.1.2TypesofRobotProgramming根据作业描述水平的高低,机器人编程语言可以分为:Motion-levelprogramming(动作级)以机器人关节或末端执行器的动作为中心来描述各种操作;Object-levelprogramming(对象级)以描述操作物体之间的关系为中心的语言;Task-levelprogramming(任务级)只要直接指定操作内容就可以了,为此,机器人必须一边思考一边工作。8.1RequirementsandTypesofRobotProgrammingLanguages14ContentsRequirementsandLanguageTypestoRobotProgrammingStructureandBasicFunctionsofRobotLanguageSystemCommonly-UsedLanguageforRobotProgrammingOff-LineProgrammingofRobotsSummary14Ch.8RobotProgramming15158.2Structure&BasicFunctionsofRobotProgrammingSystem机器人语言系统的结构和基本功能8.2.1StructureofARobotProgrammingSystem机器人语言系统的结构8.2StructureandBasicFunctionsofARobotProgrammingSystem16168.2.2BasicFunctionsofRobotProgrammingLanguages机器人编程语言的基本功能运算(Calculation):是机器人最重要的功能之一。包括机器人的正解、逆解、坐标变换及矢量运算等。机械手运动(MotionofRobotManipulators):是机器人最基本的功能。机器人语言用最简单的方法向各关节伺服装置提供一系列关节位置及姿态信息,由伺服系统实现运动。工具指令(ToolInstruction):包括工具种类及工具号的选择、工具参数的选择及工具的动作(工具的开关、分合)。8.2StructureandBasicFunctionsofARobotProgrammingSystem17178.2.2BasicFunctionsofRobotProgrammingLanguages决策(Decision):是指机器人根据作业空间范围内的传感信息而做出的判断决策。这种决策功能一般由条件转移指令实现。通信(Communication):即机器人系统与操作人员的各式通信,包括机器人向操作人员要求信息和操作人员知道机器人的状态、机器人的操作意图等。传感数据处理(SensorDataProcessing):机器人只有与传感器连接起来才能具有感知能力,具有某种智能。传感器输入和输出信号的形式、性质及强弱不同,往往需要进行大量的复杂运算和处理。8.2StructureandBasicFunctionsofARobotProgrammingSystem18ContentsRequirementsandLanguageTypestoRobotProgrammingStructureandBasicFunctionsofRobotLanguageSystemCommonly-UsedLanguageforRobotProgrammingOff-LineProgrammingofRobotsSummary18Ch.8RobotProgramming19研究室里的实验语言美国斯坦福大学开发的AL语言IBM公司开发的AUTOPASS语言英国爱丁堡大学开发的RAPT语言等;商用的机器人语言由AL语言演变而来的VAL语言日本九州大学开发的IML语言IBM公司开发的AML语言等。8.3CommonlyUsedRobotProgrammingLanguages常用的机器人编程语言8.3CommonlyUsedRobotProgrammingLanguages20序号语言名称国家研究单位简要说明1AL美StanfordAILab.机器人动作及对象物描述2AUTOPASS美IBMWatsonResearchLab.组装机器人用语言3LAMA-S美MIT高级机器人语言4VAL美Unimation公司PUMA机器人(采用MC6800和LSI11两级微型机)语言5ARIL美AUTOMATIC公司用视觉传感器检查零件用的机器人语言6WAVE美StanfordAILab.操作器控制符号语言7DIAL美CharlesStarkDraperLab.具有RCC柔顺性手腕控制的特殊指令8RPL美StanfordRIInt.可与Unimation机器人操作程序结合预先定义程序库9TEACH美BendixCorporation适于两臂协调动作,和VAL同样是使用范围广的语言8.3CommonlyUsedRobotProgrammingLanguages8.3CommonlyUsedRobotProgrammingLanguages21序号语言名称国家研究单位简要说明10MCL美McDonnellDouglasCorporation编程机器人、NC机床传感器、摄像机及其控制的计算机综合制造用语言11INDA美英SIRInternationalandPhilips相当于RTL/2编程语言的子集,处理系统使用方便12RAPT英UniversityofEdinburgh类似NC语言APT(用DEC20.LSI11/2微型机)13LM法AIGroupofIMAG