版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7.1机器人编程语言机器人是一种自动化的机器,该类机器应该具备与人或生物相类似的智能行为,如动作能力、决策能力、规划能力、感知能力和人机交互等能力。机器人要想实现自动化需要人为事先输入它能够处理的代码程序,即要想控制机器人,需要在控制软件中输入程序。控制机器人的语言可以分为以下几种:机器人语言,指计算机中能够直接处理的二进制表示的数据或指令;自然语言,类似于人类交流使用的语言,常用其来表示程序流程;高级语言,是介于机器人语言和自然语言之间的编程语言,常用其来表示算法。伴随着机器人的发展,机器人语言也相应得到了发展和完善。机器人语言已成为机器人技术的一个重要部分。下一页返回7.1机器人编程语言机器人的功能除了依靠机器人硬件的支持外,相当一部分依赖机器人语言来完成。早期的机器人由于功能单一,动作简单,可采用固定程序或示教方式来控制机器人的运动。随着机器人作业动作的多样化和作业环境的复杂化,依靠固定的程序或示教方式已满足不了要求,必须依靠能适应作业和环境随时变化的机器人语言编程来完成机器人的工作。自机器人出现以来,美国、日本等机器人的原创国也同时开始进行机器人语言的研究。美国斯坦福大学于1973年研制出世界上第一种机器人语言—WAVE语言。WAVE是一种机器人动作语言,即语言功能以描述机器人的动作为主,兼以对力和接触的控制,还能配合视觉传感器进行机器人的手、眼协调控制。上一页下一页返回7.1机器人编程语言在WAVE语言的基础上,1974年,斯坦福大学人工智能实验室又开发出一种新的语言,称为AL语言。美国IBM公也一直致力于机器人语言的研究,取得了不少成果。1975年,IBM公司研制出ML语言,主要用于机器人的装配作业。随后该公司又研制出另一种语言—AUTO-PASS语言,这是一种用于装配的更高级语言,它可以对几何模型类任务进行半自动编程。20世纪80年代初,美国Automatix公司开发了RAIL语言,该语言可以利用传感器的信息进行零件作业的检测。同时,麦道公司研制了MCL语言,这是一种在数控自动编程语言—APT语言的基础上发展起来的一种机器人语言。上一页下一页返回7.1机器人编程语言MCL特别适用于由数控机床、机器人等组成的柔性加工单元的编程。机器人语言可以按照其作业描述水平的程度分为动作级编程语言、对象级编程语言和任务级编程语言三类。1.动作级编程语言动作级编程语言是最低一级的机器人语言。它以机器人的运动描述为主,通常一条指令对应机器人的一个动作,表示从机器人的一个位姿运动到另一个位姿。动作级编程语言的优点是比较简单,编程容易。其缺点是功能有限,无法进行繁复的数学运算,不接受浮点数和字符串,子程序不含有自变量;不能接受复杂的传感器信息,只能接受传感器开关信息;与计算机的通信能力很差。上一页下一页返回7.1机器人编程语言典型的动作级编程语言为VAL语言,如VAL语言语句“MOVETO(destination)”的含义为机器人从当前位姿运动到目的位姿。动作级编程语言编程时分为关节级编程和末端执行器级编程两种。关节级编程是以机器人的关节为对象,编程时给出机器人一系列各关节位置的时间序列,在关节坐标系中进行的一种编程方法。对于直角坐标型机器人和圆柱坐标型机器人,由于直角关节和圆柱关节的表示比较简单,这种方法编程较为适用;而对具有回转关节的关节型机器人,由于关节位置的时间序列表示困难,即使一个简单的动作也要经过许多复杂的运算,故这一方法并不适用。关节级编程可以通过简单的编程指令来实现,也可以通过示教盒示教和键入示教实现。上一页下一页返回7.1机器人编程语言末端执行器级编程在机器人作业空间的直角坐标系中进行。在此直角坐标系中给出机器人末端执行器一系列位姿组成位姿的时间序列,连同其他一些辅助功能如力觉、触觉、视觉等的时间序列,同时确定作业量、作业工具等,协调地进行机器人动作的控制。这种编程方法允许有简单的条件分支,有感知功能,可以选择和设定工具,有时还有并行功能,并且数据实时处理能力强。2.对象级编程语言所谓对象即作业及作业物体本身。对象级编程语言是比动作级编程语言高一级的编程语言,它不需要描述机器人乎爪的运动,只要由编程人员用程序的形式给出作业本身顺序过程的描述和环境模型的描述,即描述操作物与操作物之间的关系。上一页下一页返回7.1机器人编程语言通过编译程序机器人即能知道如何动作。这类语言典型的例子有AML及AUTOPASS等语言,其特点为:(1)具有动作级编程语言的全部动作功能。(2)有较强的感知能力,能处理复杂的传感器信息,可以利用传感器信息来修改、更新环境的描述和模型,也可以利用传感器信息进行控制、测试和监督。(3)具有良好的开放性,语言系统提供了开发平台,用户可以根据需要增加指令,扩展语言功能。(4)数字计算和数据处理能力强,可以处理浮点数,能与计算机进行即时通信。上一页下一页返回7.1机器人编程语言对象级编程语言用接近自然语言的方法描述对象的变化。对象级编程语言的运算功能、作业对象的位姿时序、作业量、作业对象承受的力和力矩等都可以以表达式的形式得以体现。系统中机器人尺寸、作业对象及工具等参数一般以知识库和数据库的形式存在,系统编译程序时获取这些信息后对机器人动作过程进行仿真,再进行实现作业对象合适的位姿,获取传感器信息并处理,回避障碍以及与其他设备通信等工作。3.任务级编程语言任务级编程语言是比前两类更高级的一种语言,也是最理想的机器人高级语言。上一页下一页返回7.1机器人编程语言这类语言不需要用机器人的动作来描述作业任务,也不需要描述机器人对象物的中间状态过程,只需要按照某种规则描述机器人对象物的初始状态和最终目标状态,机器人语言系统即可利用已有的环境信息和知识库、数据库自动进行推理、计算,从而自动生成机器人详细的动作、顺序和数据。任务级编程语言的结构十分复杂,需要人工智能的理论基础和大型知识库、数据库的支持,目前还不是十分完善,是一种理想状态下的语言,有待于进一步的研究。根据机器人控制方法的不同,所用的程序设计语言也有所不同,目前比较常用的程序设计语言是C语言。上一页返回7.2C语言编程基础7.2.1C语言简介C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发等。下一页返回7.2C语言编程基础C语言是世界上最流行、使用最广泛的高级程序设计语言之一,具有以下特点:(1)C是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。(2)C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。上一页下一页返回7.2C语言编程基础(3)C语言功能齐全。它具有各种各样的数据类型,并引人了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的编游戏等。(4)C语言适用范围大。它适合于多种操作系统,如Windows,DOS,UNIX,等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,优于其他高级语言,有一些大型应用软件也是用C语言编写的。(5)C语言应用指针。指针可以直接进行靠近硬件的操作,但是C对指针操作不做保护,给它带来了很多不安全的因素。上一页下一页返回7.2C语言编程基础(6)C语言文件由数据序列组成)可以构成二进制文件或文本文件常用的C语言IDE(集成开发环境)有MicrosoftVisualC++,Dev-C++,Code::Blocks,BorlandC++,WatcomC++,BorlandC++Builder,GNUDJGPPC++,Lccwin32CCompiler3.1,HighC,TurboC,C-Free,win-tc,xcode(macosx)等。7.2.2C语言基本语法1.数据类型算法处理的对象是数据,而数据是以某种特定的形式存在,c语言的数据类型包括:整型、字符型、实型和浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型等。上一页下一页返回7.2C语言编程基础1)常量与变量常量的值不可改变,符号常量名通常用大写。变量是以某标识符为名字,其值可以改变的量。标识符是以字母或下划线开头的一串由字母、数字或下划线构成的序列,且第一个字符必须为字母或下划线,否则为不合法的变量名。变量在编译时为其分配相应存储单元。2)数组如果一个变量名后面跟着一个有数字的中括号,这个声明就是数组声明。字符串也是一种数组,它是以ASCII的NULL作为数组的结束。上一页下一页返回7.2C语言编程基础
3)指针如果一个变量声明时在前面使用*号,表明这是个指针型变量。换句话说,该变量存储一个地址,而*(此处特指单目运算符*,下同,C语言中另有双目运算符*)则代表是取内容操作符,意思是取这个内存地址里存储的内容。指针是C语言区别于其他同时代高级语言的主要特征之一。指针不仅可以是变量的地址,还可以是数组、数组元素、函数的地址。通过指针作为形式参数可以在函数的调用过程得到多个返回值。指针是一把双刃剑,许多操作可以通过指针自然地表达,但是不正确地或者过分地使用指针又会给程序带来大量潜在的错误。上一页下一页返回7.2C语言编程基础
4)字符串C语言的字符串其实就是char型数组,所以使用字符串并不需要引用库。但是C标准库确实包含了一些用于对字符串进行操作的函数,使它们看起来就像是字符串而不是数组。使用这些函数需要引用头文件<string.h>。2.数据类型关键字1)基本数据类型关键字void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。char:字符型类型数据,属于整型数据的一种。上一页下一页返回7.2C语言编程基础int.整型数据,表示范围通常为编译器指定的内存字节长。float:单精度浮点型数据,属于浮点数据的一种。double:双精度浮点型数据,属于浮点数据的一种。2)类型修饰关键字short:修饰int,短整型数据,可省略被修饰的int。long:修饰int,长整形数据,可省略被修饰的int。signed:修饰整型数据,有符号数据类型。unsigned:修饰整型数据,无符号数据类型。3)复杂类型关键字struct:结构体声明。上一页下一页返回7.2C语言编程基础union:共用体声明。enum:枚举声明。typedef:声明类型别名。sizeof:得到特定类型或特定类型变量的大小。4)存储级别关键字auto指定为自动变量,由编译器自动分配和释放,通常在栈上分配。static指定为静态变量,分配在静态变量区,修饰函数时,指定函数作用域为文件内部。register:指定为寄存器变量,建议编译器将变量存储到寄存器中使用,也可以修饰函数形参,建议编译器通过寄存器而不是堆栈传递参数。上一页下一页返回7.2C语言编程基础extern:指定对应变量为外部变量,即标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。const:与volatile合称“cv特性”,指定变量不可被当前线程/进程改变(但有可能被系统或其他线程/进程改变)。
volatile:与const合称“cv特性”,指定变量的值有可能会被系统或其他进程/线程改变,强制编译器每次从内存中取得该变量的值。3.流程控制关键字1)跳转结构return:用在函数体中,返回特定值(如果是void类型,则不返回函数值)。上一页下一页返回7.2C语言编程基础continue:结束当前循环,开始下一轮循环。break:跳出当前循环或switch结构。goto:无条件跳转语句。2)分支结构if:条件语句,后面不需要放分号。else:条件语句否定分支(与if连用)。switch:开关语句(多重分支语句)。case:开关语句中的分支标记,与switch连用。default:开关语句中的“其他”分支,可选。3)for循环上一页下一页返回7.2C语言编程基础
for循环结构是C语言中最具有特色的循环语句,使用最为灵活方便,它的一般形式为:for(表达式1;表达式2;表达式3)循环体语句。表达式1为初值表达式,用于在循环开始前为循环变量赋初值。表达式2是循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。表达式3为循环控制变量修改表达式,它使fn:循环趋向结束。循环控制语句是在循环控制条件成立的情况下被反复执行的语句。但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。上一页下一页返回7.2C语言编程基础循环体可能多次执行,也可能一次都不执行。for循环语句是C语言种功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。4)do循环结构do1while(2);执行顺序是1一>2一>1)…循环,2为循环条件。while循环结构,while(1)2;执行顺序是1一>2一>1)…循环,1为循环条件。以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。4.语法结构1)顺序结构上一页下一页返回7.2C语言编程基础顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。2)选择结构顺序结构的程序虽然能解决计算、输出等问题,但不能先做判断再选择。对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。上一页下一页返回7.2C语言编程基础程序流程图是根据解题分析所绘制的程序执行流程图。3)循环结构循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。C语言中提供四种循环,即goto循环、while循环、dowhile循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。顺序结构、分支结构和循环结构并不是彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构。上一页下一页返回7.2C语言编程基础5.模块化程序结构C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,即:C程序=主函数+子函数。6.C语言中的运算符号C语言中的运算符号及说明见表7-1。比较特别的是,比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补0)位移。上一页下一页返回7.2C语言编程基础运算符的优先级从高到低依次是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。7.程序结构一个C语言源程序可以由一个或多个源文件组成,每个源文件可由一个或多个函数组成,一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。源程序中可以有预处理命令(包括include命令,ifdef,ifndef命令,define命令),预处理命令通常应放在源文件或源程序的最前面。每一个说明,每一个语句都必须以分号结尾,但预处理命令、函数头和花括号“}”之后不能加分号。上一页下一页返回7.2C语言编程基础标识符、关键字之间必须至少加一个空格以示间隔,若已有明显的间隔符,也可不再加空格来间隔。8.书写规则C语言的书写规则一般包括:一个说明或一个语句占一行;用{}括起来的部分,通常表示了程序的某一层次结构,{}一般与该结构语句的第一个字母对齐,并单独占一行;低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写,以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。上一页返回7.3基础编程实例7.3.1第一个机器人C语言程序:HelloRobot。新建一个程序窗口,把下面的程序输入窗口。将上述程序通过串口通信线下载到机器人后,开机运行在机器人显示屏上可以看到“HelloRobot!”字样。下一页返回7.3基础编程实例7.3.2控制机器人运动AS机器人有左右两个电机,是它的主要动力来源。它还有喇叭、液晶屏等辅助输出手段,能够了解它的运行状态。充分利用好电机,能够让机器人在比赛中占据优势。1.校正机器人的电机直流电机和减速器由于生产装配过程中的因素,不可能做到转速完全一样。两台电机之间总是有或多或少的差异,即使在程序中给左右电机设置一样的功率级别,机器人走出的也不是一条直线,会向一边偏,这在长距离运动时很明显。因此,在对运动精度要求高的场合,首先要校正机器人的电机偏差。上一页下一页返回7.3基础编程实例常用的校正方法是在软件中设置偏置量。下面的函数使用一个全局变量drivebias,只要调用该函数,就会自动利用该偏置量修正左右电机的功率值,使电机转动达到预期效果。driveb是drive库函数的扩展版本。该函数在C库文件目录下的common.c文件中有定义,调用drived函数前要加载该文件。上一页下一页返回7.3基础编程实例偏置量的大小是通过试验得到的。在一个平坦开阔的地方,先把,drivebias设为0,电机功率设为80,把机器人的中轴线对准前方,机器人前进一段较长距离后,量出它偏离初始前进方向的距离。修改,drivebias的值和正负,重复前面的试验,直到偏离值得到纠正或无法再变小为止,这时的,drivebias值就是最终的偏置量。这种软件方法对大多数电机偏差都有校正作用。此外,如果有条件通过硬件调整,将会有更好的效果。2.走出规则轨迹下面的程序是让机器人在地上走出一个规则的轨迹。上一页下一页返回7.3基础编程实例上面的程序是让机器人逆时针走直径约1m的圆形路径。上一页下一页返回7.3基础编程实例上面的程序使机器人逆时针走边长约1m的正方形路径。上一页下一页返回7.3基础编程实例其中Sleep(0.8)是机器人转90度所需要的时间。该值和转弯速度以及机器人的电机有关,需要实际调整,此外地面的摩擦力对该值也有影响。利用sleep()函数是控制电机工作的常用方法。熟练掌握sleep()函数的应用将使你的程序简洁高效。7.3.3让机器人获得感知周围环境的能力本文的机器人的传感器主要有碰撞传感器、光敏传感器、主动式红外测障传感器、旋转角度编码器和麦克风。其中麦克风是没有方向性的,能感知声音的强弱;光敏传感器能感知所在环境的光强;主动式红外测障传感器能感知前方80cm以内的障碍物;碰撞传感器能感受到四个方向上的碰撞;旋转角度编码器不是用于探测外部环境,而是测量轮子旋转的角度数。上一页下一页返回7.3基础编程实例1.碰撞传感器的使用下面结合“台球”程序来学习碰撞传感器的使用。上一页下一页返回7.3基础编程实例上一页下一页返回7.3基础编程实例上一页下一页返回7.3基础编程实例在该函数中有一个检测传感器的常用结构“while(1){检测传感器;作出响应;}”。该结构实现了对传感器的循环检测,使机器人能够对周围环境的变化及时作出响应。机器人作出的响应可以是改变运动方式,也可以是改变一个内部变量。2.红外和光敏的使用
AS机器人的红外传感器可以探测到前方和左右两侧10~80cm以内的障碍,就像它的一对“眼睛”。下面是一个利用红外传感器检测障碍物的一个程序。上一页下一页返回7.3基础编程实例上一页下一页返回7.3基础编程实例上一页下一页返回7.3基础编程实例这个例子实现了跟随前方物体的功能。机器人可以跟随前方移动的人或物,如果撞上前方的物体,就停一停,如果前方红外系统探测范围内没有物体,它就停下来。可以修改上面的程序,让机器人避开障碍物。给一个机器人下载避让程序,其他的机器人下载跟踪程序,在适当的条件下能看到,机器人一个跟着一个排成长龙,鱼贯前进。光敏的使用和红外系统类似,所不同的是光敏只能感知左右两侧的明暗,和距离没有直接关系。调用“analog(photoleft);analog(photoright);”就能返回两侧光敏的测量值。它在周围环境比较暗的情况下作用最为明显。要用好机器人传感器,需要对测量和采样原理有所了解。上一页下一页返回7.3基础编程实例通常在使用传感器测量之前都有个标定过程,设置测量值的参考点。机器人在出厂前,已经对所有的传感器进行了检测,但是器件偏差和环境干扰是不可避免的。比如,可能会出现左右光敏对同样光强的测量值不一样,或采样出现异常值。所以在编程中,使用一些偏移量校正、去除测量噪声和避免误触发的方法还是很有用的。3.编码器的使用编码器测量的是轮子码盘转过的格数。通过编码器,可以知道轮子转过的圈数,从而大致知道走过的距离,除以时间还可以知道实际转速。由于编码器是对自身采样,所以不可能依靠它判断机器人的精确位置。它可以用于短距离的定位和速度测量。上一页返回7.4高级编程实例7.4.1第一个多进程程序下面是将之前的“台球”程序改成多进程的一个程序。下一页返回7.4高级编程实例上一页下一页返回7.4高级编程实例上一页下一页返回7.4高级编程实例上一页下一页返回7.4高级编程实例“台球”改成多进程程序后,运行的效果没变,但结构已经完全不一样了。电机驱动进程billiarde_drive()专门设置电机速度,碰撞处理进程billiards)判断碰撞并改变电机速度。两个进程之间通过全局变量billtras和billrot进行通讯。机器人的操作系统自动调度两个进程,给它们分配时间片。从执行效果来讲,就相当于这两个进程并列运行。这样的结构非常方便增加新的进程,同时处理更多的外部信息。7.4.2添加一个新进程给前面的程序增加一个红外避障进程,改变它的行为,而其他部分不需要做大的变动。改动后的程序如下。上一页下一页返回7.4高级编程实例上一页下一页返回7.4高级编程实例上一页下一页返回7.4高级编程实例上一页下一页返回7.4高级编程实例上一页下一页返回7.4高级编程实例上一页下一页返回7.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖南2026教师资格证笔试-综合素质-教育知识与能力试卷(含答案)
- 技术方案编写与技术评估指南
- 下肢静脉曲张诊断和治疗2026
- 济宁市泗水县2025-2026学年第二学期三年级语文第七单元测试卷(部编版含答案)
- 郴州市宜章县2025-2026学年第二学期四年级语文第八单元测试卷(部编版含答案)
- 黔南布依族苗族自治州贵定县2025-2026学年第二学期五年级语文期末考试卷(部编版含答案)
- 生物初高衔接课程教学设计《保护生物的多样性》
- 第2课 词语输入方法多教学设计-2025-2026学年小学信息技术(信息科技)第二册(2016)电子工业版(安徽)
- 盒马鲜生异业合作模式
- 马鞍山市当涂县2025-2026学年第二学期二年级语文期末考试卷部编版含答案
- 保密要害部门部位管理制度范文(四篇)
- 全国气象台站经纬度海拔信息
- 液压与气动技术fluidsim36中文版
- CosaGPS说明书完整版
- 环境水中湿法氧化法测量水中的C
- 第一章气体放电的基本物理过程
- 社区工作者经典备考题库(必背300题)
- 胸科手术期间低氧血症课件
- 心理护理基本技能
- 金属熔焊原理及材料焊接绪论
- QCT302023年机动车用电喇叭技术条件
评论
0/150
提交评论