PC机上的机器人插补函数库1-初步介绍

机器人跨平台插补函数库

一 概述

之前的文章中介绍了一种开放型的运动控制器,有读者反馈是否可以用于PC机上。鉴于控制卡在实际设备上的运行案例,这次专门给PC机上做了一个模拟器,用于输出插补数据,内置的是一个6自由度的关节机器人,详细介绍如下:

二 插补库的接口说明

为了方便大家使用,提供了一个测试用例,过程都在main.c中了,具体如下:

2.1 初始化控制器

Bant_motion_init();

这个函数只要调用一次

2.2 关节插补

Bant_move2start(-500,1000,2000,50,50,50);

这个函数用于把机器人运行到某个特定的位姿,方便后续插补动作,参数是6个位姿数据,位置单位是mm,角度单位是度。上面的参数含义是到点(-500,1000,2000)的位置,并且姿态是(50,50,50)度。

2.3 直线插补

Bant_move_line

参数是目标位姿,6个自由度

2.4 圆弧插补

Bant_move_circle

参数是目标点位姿和中间点位姿,都是6个自由度

2.5 周期控制函数

Bant_motion_ctrl

这个函数要不停调用,直到运动停止

2.6 运动判定函数

Bant_wait_finish

运动结束返回1

2.7 变量获取函数

Bant_get_TCP

可以获取TCP,也就是机器人末端的位姿和速度,这个就是大家需要的6自由度过程数据了。

三 使用效果

主函数中,我们打开了一个文件,由于保存数据

fp_out = fopen("./dat_rob1.txt","w+");

首先初始化控制,然后运行到一个中间位置,为了后续执行圆弧插补

Bant_motion_init();

Bant_move2start(-500,1000,2000,50,50,50);

执行运行函数后,需要等待控制器内部计算完成

    do

    {

       

        Bant_motion_ctrl();

        Bant_get_TCP(&pos[0],&pos[1],&pos[2],&vel,&angle[0],&angle[1],&angle[2]);

        fprintf(fp_out,"%f,%f,%f,%f,%f,%f,%f\n",vel,pos[0],pos[1],pos[2],angle[0],angle[1],angle[2]);

    }while(!Bant_wait_finish());

完成后,就可以进行下一个动作

依次类推,最后的运行截图如下:

运行结束后,在对应目录下存在数据文件dat_rob1.txt

可以使用熟悉的绘图工具来处理,比如matlab和excel

用例最后运行的效果如图所示,省略了关节插补的轨迹

好了,目前这个工程是运行在x86机器上的,工程是VS2019,整个工程可以在下面网盘下载。目前限制了调用函数的次数,如果大家有兴趣使用完整版本,可以联系作者获取。

链接:https://pan.baidu.com/s/1tQDPFhhyVOPUSLqNP6MsnQ 
提取码:tj2f

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值