工业机器人控制器系统测试方法

工业机器人的测试环节非常重要,是衡量机器人稳定性的重要环节。诚然,在工业机器人的软件架构以及算法编写时,存在各种因素而影响系统的性能,如:1)算法的特殊情况考虑,如:重点、绕点旋转、奇异点附件、关节限位点等等。2)程序代码的编写的防御性不够,如:运行速度为0、加速度为0、寸动距离设置为0等等。3)甚至还有各种其他情况,如:手动示教在笛卡尔空间到达限位,此时延反方向是否可以运动?此时对于经验较少的算法工程师来说,可能处理得较为粗糙。

总体来说:有限的测试不足以方方面面测试完毕,但在编写测试用例时,必须要考虑各种异常的情况的测试,往往出现问题的是在这些情况发生。当然,编写测试用例的人,必须是对现场经验非常丰富,同时也要对代码编写和机器人算法深有体会。鉴于此,以此记录一下测试方法:

1、功能函数的单元测试,明确函数的输入和输出,做到遍历测试。如switch的几种情况都要遍历测试。

2、模块之间的测试,如通讯模块、指令解释模块、正逆解建模模块、速度规划模块、轨迹规划模块、动力学模块等等,做到拆分成独立的模块测试。

3、功能性测试,即在实际机器人测试,要区分好两种情况,一种是常规性测试,另外一种是特殊极限情景测试。


随机数自动生成关节点位的方法,该方法可以随机产生点位让机器人关节运动到相应的点位。

随机点位生成器

 

#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();
}

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值