6. 机器人安全设置
6.1. 设置碰撞等级
1/**
2* @brief 设置碰撞等级
3* @param [in] mode 0-等级,1-百分比
4* @param [in] level 碰撞阈值,等级对应范围[],百分比对应范围[0~1]
5* @param [in] config 0-不更新配置文件,1-更新配置文件
6* @return 错误码
7*/
8errno_t SetAnticollision(int mode, float level[6], int config);
6.2. 设置碰撞后策略
1/**
2* @brief 设置碰撞后策略
3* @param [in] strategy 0-报错停止,1-继续运行
4* @return 错误码
5*/
6errno_t SetCollisionStrategy(int strategy);
6.3. 设置正限位
1/**
2* @brief 设置正限位
3* @param [in] limit 六个关节位置,单位deg
4* @return 错误码
5*/
6errno_t SetLimitPositive(float limit[6]);
6.4. 设置负限位
1/**
2* @brief 设置负限位
3* @param [in] limit 六个关节位置,单位deg
4* @return 错误码
5*/
6errno_t SetLimitNegative(float limit[6]);
6.5. 错误状态清除
1/**
2* @brief 错误状态清除
3* @return 错误码
4*/
5errno_t ResetAllError();
6.6. 关节摩擦力补偿开关
1/**
2* @brief 关节摩擦力补偿开关
3* @param [in] state 0-关,1-开
4* @return 错误码
5*/
6errno_t FrictionCompensationOnOff(uint8_t state);
6.7. 设置关节摩擦力补偿系数-正装
1/**
2* @brief 设置关节摩擦力补偿系数-正装
3* @param [in] coeff 六个关节补偿系数,范围[0~1]
4* @return 错误码
5*/
6errno_t SetFrictionValue_level(float coeff[6]);
6.8. 设置关节摩擦力补偿系数-侧装
1/**
2* @brief 设置关节摩擦力补偿系数-侧装
3* @param [in] coeff 六个关节补偿系数,范围[0~1]
4* @return 错误码
5*/
6errno_t SetFrictionValue_wall(float coeff[6]);
6.9. 设置关节摩擦力补偿系数-倒装
1/**
2* @brief 设置关节摩擦力补偿系数-倒装
3* @param [in] coeff 六个关节补偿系数,范围[0~1]
4* @return 错误码
5*/
6errno_t SetFrictionValue_ceiling(float coeff[6]);
6.10. 设置关节摩擦力补偿系数-自由安装
1/**
2* @brief 设置关节摩擦力补偿系数-自由安装
3* @param [in] coeff 六个关节补偿系数,范围[0~1]
4* @return 错误码
5*/
6errno_t SetFrictionValue_freedom(float coeff[6]);
6.11. 代码示例
1#include <cstdlib>
2#include <iostream>
3#include <stdio.h>
4#include <cstring>
5#include <unistd.h>
6#include "FRRobot.h"
7#include "RobotTypes.h"
8
9using namespace std;
10
11int main(void)
12{
13 FRRobot robot; //实例化机器人对象
14 robot.RPC("192.168.58.2"); //与机器人控制器建立通信连接
15
16 int mode = 0;
17 int config = 1;
18 float level1[6] = {1.0,2.0,3.0,4.0,5.0,6.0};
19 float level2[6] = {50.0,20.0,30.0,40.0,50.0,60.0};
20
21 robot.SetAnticollision(mode, level1, config);
22 mode = 1;
23 robot.SetAnticollision(mode, level2, config);
24 robot.SetCollisionStrategy(1);
25
26 float plimit[6] = {170.0,80.0,150.0,80.0,170.0,160.0};
27 robot.SetLimitPositive(plimit);
28 float nlimit[6] = {-170.0,-260.0,-150.0,-260.0,-170.0,-160.0};
29 robot.SetLimitNegative(nlimit);
30
31 robot.ResetAllError();
32
33 float lcoeff[6] = {0.9,0.9,0.9,0.9,0.9,0.9};
34 float wcoeff[6] = {0.4,0.4,0.4,0.4,0.4,0.4};
35 float ccoeff[6] = {0.6,0.6,0.6,0.6,0.6,0.6};
36 float fcoeff[6] = {0.5,0.5,0.5,0.5,0.5,0.5};
37 robot.FrictionCompensationOnOff(1);
38 robot.SetFrictionValue_level(lcoeff);
39 robot.SetFrictionValue_wall(wcoeff);
40 robot.SetFrictionValue_ceiling(ccoeff);
41 robot.SetFrictionValue_freedom(fcoeff);
42
43 return 0;
44}