工业机器人的测试环节非常重要,是衡量机器人稳定性的重要环节。诚然,在工业机器人的软件架构以及算法编写时,存在各种因素而影响系统的性能,如:1)算法的特殊情况考虑,如:重点、绕点旋转、奇异点附件、关节限位点等等。2)程序代码的编写的防御性不够,如:运行速度为0、加速度为0、寸动距离设置为0等等。3)甚至还有各种其他情况,如:手动示教在笛卡尔空间到达限位,此时延反方向是否可以运动?此时对于经验较少的算法工程师来说,可能处理得较为粗糙。
总体来说:有限的测试不足以方方面面测试完毕,但在编写测试用例时,必须要考虑各种异常的情况的测试,往往出现问题的是在这些情况发生。当然,编写测试用例的人,必须是对现场经验非常丰富,同时也要对代码编写和机器人算法深有体会。鉴于此,以此记录一下测试方法:
1、功能函数的单元测试,明确函数的输入和输出,做到遍历测试。如switch的几种情况都要遍历测试。
2、模块之间的测试,如通讯模块、指令解释模块、正逆解建模模块、速度规划模块、轨迹规划模块、动力学模块等等,做到拆分成独立的模块测试。
3、功能性测试,即在实际机器人测试,要区分好两种情况,一种是常规性测试,另外一种是特殊极限情景测试。
随机数自动生成关节点位的方法,该方法可以随机产生点位让机器人关节运动到相应的点位。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44#include <QCoreApplication> #include <stdlib.h> #include <iostream> #include <Windows.h> #define MAX_RAND 32767/2 double jointAngle[4]; void randTest() { for(int axis=0;axis<4;axis++) { jointAngle[axis]=rand()/double(MAX_RAND); jointAngle[axis]=jointAngle[axis]-1; switch (axis) { case 0: jointAngle[axis]=jointAngle[axis]*120; break; case 1: jointAngle[axis]=jointAngle[axis]*130; break; case 2: jointAngle[axis]=rand()/double(MAX_RAND*2); jointAngle[axis]=jointAngle[axis]*200; break; case 3: jointAngle[axis]=jointAngle[axis]*360; break; default: break; } } } int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); while (true) { randTest(); std::cout<<jointAngle[0]<<" "<<jointAngle[1]<<" "<<jointAngle[2]<<" "<<jointAngle[3]<<std::endl; Sleep(1000); } return a.exec(); }
最后
以上就是大意小松鼠最近收集整理的关于工业机器人控制器系统测试方法的全部内容,更多相关工业机器人控制器系统测试方法内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复