运动测试


#include "HYYRobotInterface.h"
int MainModule()
{
    move_start();//上电,使用move指令进行运动时必须使用该语句上电

    //获取数据

    //获取笛卡尔位置
    robpose rpose1;
    getrobpose("p1", &rpose1);

    robpose rpose2;
    getrobpose("p2", &rpose2);

    robpose rpose3;
    getrobpose("p3", &rpose3);

    robpose rpose4;
    getrobpose("p4", &rpose4);
    //获取关节位置
    robjoint joint1;
    getrobjoint("j1",&joint1);
    //获取速度
    speed sp;
    getspeed("v1",&sp);
    //转弯区
    zone ze;
        getzone("z0",&ze);
    //获取工具
    tool to;
    gettool("tool0",&to);
    //获取工件
    wobj wo;
    getwobj("wobj0",&wo);

    //循环执行运动指令

    /*
    1、moveA等运动指令默认以阻塞方式运行,如以线程方式运行,使用setMoveThread(1)设置所以指令为线程方式运行。可利用get_robot_move_state(int robot_index)获取机器人运动状态。
    2、多机器人操作使用multi_moveA代替moveA,其他指令类似。
    3、双臂运动使用dual_moveA等指令。

    */

    while(robot_ok())//当发送停止命令时或系统状态错误时退出循环
    {
        Rdebug("设置指令为线程运行方式\n");
        //设置指令为线程运行方式
        setMoveThread(1);
        Rdebug("关节空间运动(关节目标)\n");
        //关节空间运动(关节目标)
        moveA(&joint1,&sp,&ze,&to,&wo);

        Rdebug("等待moveA运动完成\n");
        //等待moveA运动完成
        wait_move_finish(0);

        Rdebug("设置指令为阻塞运行方式\n");
        //设置指令为阻塞运行方式
        setMoveThread(0);

        Rdebug("关节空间运动(笛卡尔目标)\n");
        //关节空间运动(笛卡尔目标)
        moveJ(&rpose2,&sp,&ze,&to,&wo);

        Rdebug("笛卡尔空间直线运动\n");
        //笛卡尔空间直线运动
        moveL(&rpose1,&sp,&ze,&to,&wo);

        Rdebug("笛卡尔空间圆弧运动\n");
        //笛卡尔空间圆弧运动
        moveC(&rpose2,&rpose3,&sp,&ze,&to,&wo);

        Rdebug("笛卡尔空间螺旋线运动\n");
        //笛卡尔空间螺旋线运动
        moveH(&rpose2,&rpose3,&rpose4,20.0,&sp,&ze,&to,&wo);

        Rdebug("笛卡尔空间B样条运动\n");
        //笛卡尔空间B样条运动
        moveS("test_data.txt",&sp,&to,&wo);

        Rdebug("关节空间运动(关节目标)\n");
        //关节空间运动(关节目标)
        moveA(&joint1,&sp,&ze,&to,&wo);

        Rdebug("笛卡尔空间相对rpose1沿着工件坐标系的z轴移动100mm\n");
        //笛卡尔空间相对rpose1沿着工件坐标系的z轴移动100mm
        robpose op=Offs(&rpose1,0,0,100,0,0,0);
        moveL(&op,&sp,&ze,&to,&wo);

        Rdebug("关节空间运动(关节目标)\n");
        //关节空间运动(关节目标)
        moveA(&joint1,&sp,&ze,&to,&wo);

        Rdebug("笛卡尔空间相对rpose1沿着工具坐标系的z轴移动100mm并绕z轴选择1rad\n");
        //笛卡尔空间相对rpose1沿着工具坐标系的z轴移动100mm并绕z轴选择1rad
        robpose orp=OffsRel(&rpose1,0,0,0,0,1,0);
        moveL(&orp,&sp,&ze,&to,&wo);

    }

    move_stop();
    return 0;
}

时间 作者
20201010 于剑楠