5. 机器人常用设置

5.1. 设置全局速度

1/**
2* @brief  设置全局速度
3* @param  [in]  vel  速度百分比,范围[0~100]
4* @return  错误码
5*/
6errno_t  SetSpeed(int vel);

5.2. 设置系统变量值

1/**
2* @brief  设置系统变量值
3* @param  [in]  id  变量编号,范围[1~20]
4* @param  [in]  value 变量值
5* @return  错误码
6*/
7errno_t  SetSysVarValue(int id, float value);

5.3. 设置工具参考点-六点法

1/**
2 * @brief 设置工具参考点-六点法
3 * @param [in] point_num 点编号,范围[1~6]
4 * @return 错误码
5 */
6errno_t SetToolPoint(int point_num);

5.4. 计算工具坐标系

1/**
2 * @brief  计算工具坐标系
3 * @param [out] tcp_pose 工具坐标系
4 * @return 错误码
5 */
6errno_t ComputeTool(DescPose *tcp_pose);

5.5. 设置工具参考点-四点法

1/**
2 * @brief 设置工具参考点-四点法
3 * @param [in] point_num 点编号,范围[1~4]
4 * @return 错误码
5 */
6errno_t SetTcp4RefPoint(int point_num);

5.6. 计算工具坐标系

1/**
2 * @brief  计算工具坐标系
3 * @param [out] tcp_pose 工具坐标系
4 * @return 错误码
5 */
6errno_t ComputeTcp4(DescPose *tcp_pose);

5.7. 设置工具坐标系

在 C++SDK-v2.1.2.0 版本发生变更.

1/**
2* @brief  设置工具坐标系
3* @param  [in] id 坐标系编号,范围[0~14]
4* @param  [in] coord  工具中心点相对于末端法兰中心位姿
5* @param  [in] type  0-工具坐标系,1-传感器坐标系
6* @param  [in] install 安装位置,0-机器人末端,1-机器人外部
7* @return  错误码
8*/
9errno_t  SetToolCoord(int id, DescPose *coord, int type, int install);

5.8. 设置工具坐标系列表

在 C++SDK-v2.1.2.0 版本发生变更.

1/**
2* @brief  设置工具坐标系列表
3* @param  [in] id 坐标系编号,范围[0~14]
4* @param  [in] coord  工具中心点相对于末端法兰中心位姿
5* @param  [in] type  0-工具坐标系,1-传感器坐标系
6* @param  [in] install 安装位置,0-机器人末端,1-机器人外部
7* @return  错误码
8*/
9errno_t  SetToolList(int id, DescPose *coord, int type, int install);

5.9. 设置外部工具参考点-六点法

1/**
2 * @brief 设置外部工具参考点-六点法
3 * @param [in] point_num 点编号,范围[1~4]
4 * @return 错误码
5 */
6errno_t SetExTCPPoint(int point_num);

5.10. 计算外部工具坐标系

1/**
2 * @brief  计算外部工具坐标系
3 * @param [out] tcp_pose 外部工具坐标系
4 * @return 错误码
5 */
6errno_t ComputeExTCF(DescPose *tcp_pose);

5.11. 设置外部工具坐标系

在 C++SDK-v2.1.2.0 版本发生变更.

1/**
2* @brief  设置外部工具坐标系
3* @param  [in] id 坐标系编号,范围[0~14]
4* @param  [in] etcp  工具中心点相对末端法兰中心位姿
5* @param  [in] etool  待定
6* @return  错误码
7*/
8errno_t  SetExToolCoord(int id, DescPose *etcp, DescPose *etool);

5.12. 设置外部工具坐标系列表

在 C++SDK-v2.1.2.0 版本发生变更.

1/**
2* @brief  设置外部工具坐标系列表
3* @param  [in] id 坐标系编号,范围[0~14]
4* @param  [in] etcp  工具中心点相对末端法兰中心位姿
5* @param  [in] etool  待定
6* @return  错误码
7*/
8errno_t  SetExToolList(int id, DescPose *etcp, DescPose *etool);

5.13. 设置工件参考点-三点法

1/**
2 * @brief 设置工件参考点-三点法
3 * @param [in] point_num 点编号,范围[1~3]
4 * @return 错误码
5 */
6errno_t SetWObjCoordPoint(int point_num);

5.14. 计算工件坐标系

1/**
2 * @brief  计算工件坐标系
3 * @param [out] wobj_pose 工件坐标系
4 * @return 错误码
5 */
6errno_t ComputeWObjCoord(DescPose *wobj_pose);

5.15. 设置工件坐标系

在 C++SDK-v2.1.2.0 版本发生变更.

1/**
2* @brief  设置工件坐标系
3* @param  [in] id 坐标系编号,范围[0~14]
4* @param  [in] coord  工件坐标系相对于末端法兰中心位姿
5* @return  错误码
6*/
7errno_t  SetWObjCoord(int id, DescPose *coord);

5.16. 设置工件坐标系列表

在 C++SDK-v2.1.2.0 版本发生变更.

1/**
2* @brief  设置工件坐标系列表
3* @param  [in] id 坐标系编号,范围[0~14]
4* @param  [in] coord  工件坐标系相对于末端法兰中心位姿
5* @return  错误码
6*/
7errno_t  SetWObjList(int id, DescPose *coord);

5.17. 设置末端负载重量

1/**
2* @brief  设置末端负载重量
3* @param  [in] weight  负载重量,单位kg
4* @return  错误码
5*/
6errno_t  SetLoadWeight(float weight);

5.18. 设置末端负载质心坐标

1/**
2* @brief  设置末端负载质心坐标
3* @param  [in] coord 质心坐标,单位mm
4* @return  错误码
5*/
6errno_t  SetLoadCoord(DescTran *coord);

5.19. 设置机器人安装方式

1/**
2* @brief  设置机器人安装方式
3* @param  [in] install  安装方式,0-正装,1-侧装,2-倒装
4* @return  错误码
5*/
6errno_t  SetRobotInstallPos(uint8_t install);

5.20. 设置机器人安装角度

1/**
2* @brief  设置机器人安装角度,自由安装
3* @param  [in] yangle  倾斜角
4* @param  [in] zangle  旋转角
5* @return  错误码
6*/
7errno_t  SetRobotInstallAngle(double yangle, double zangle);

5.21. 等待指定时间

1/**
2* @brief  等待指定时间
3* @param  [in]  t_ms  单位ms
4* @return  错误码
5*/
6errno_t  WaitMs(int t_ms);

5.22. 代码示例

 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 i;
17    float value;
18    int id;
19    int type;
20    int install;
21
22    DescTran coord;
23    DescPose t_coord, etcp, etool, w_coord;
24    memset(&coord, 0, sizeof(DescTran));
25    memset(&t_coord, 0, sizeof(DescPose));
26    memset(&etcp, 0, sizeof(DescPose));
27    memset(&etool, 0, sizeof(DescPose));
28    memset(&w_coord, 0, sizeof(DescPose));
29
30    robot.SetSpeed(20);
31
32    for(i = 1; i < 21; i++)
33    {
34        robot.SetSysVarValue(i, i+0.5);
35        robot.WaitMs(1000);
36    }
37
38    for(i = 1; i < 21; i++)
39    {
40        robot.GetSysVarValue(i, &value);
41        printf("sys value:%f\n", value);
42    }
43
44    robot.SetLoadWeight(2.5);
45
46    coord.x = 3.0;
47    coord.y = 4.0;
48    coord.z = 5.0;
49
50    robot.SetLoadCoord(&coord);
51
52    id = 10;
53    t_coord.tran.x = 1.0;
54    t_coord.tran.y = 2.0;
55    t_coord.tran.z = 3.0;
56    t_coord.rpy.rx = 4.0;
57    t_coord.rpy.ry = 5.0;
58    t_coord.rpy.rz = 6.0;
59    type = 0;
60    install = 0;
61    robot.SetToolCoord(id, &t_coord, type, install);
62    robot.SetToolList(id, &t_coord, type, install);
63
64    etcp.tran.x = 1.0;
65    etcp.tran.y = 2.0;
66    etcp.tran.z = 3.0;
67    etcp.rpy.rx = 4.0;
68    etcp.rpy.ry = 5.0;
69    etcp.rpy.rz = 6.0;
70    etool.tran.x = 11.0;
71    etool.tran.y = 22.0;
72    etool.tran.z = 33.0;
73    etool.rpy.rx = 44.0;
74    etool.rpy.ry = 55.0;
75    etool.rpy.rz = 66.0;
76    id = 11;
77    robot.SetExToolCoord(id, &etcp, &etool);
78    robot.SetExToolList(id, &etcp, &etool);
79
80    w_coord.tran.x = 11.0;
81    w_coord.tran.y = 12.0;
82    w_coord.tran.z = 13.0;
83    w_coord.rpy.rx = 14.0;
84    w_coord.rpy.ry = 15.0;
85    w_coord.rpy.rz = 16.0;
86    id = 12;
87    robot.SetWObjCoord(id, &w_coord);
88    robot.SetWObjList(id, &w_coord);
89
90    robot.SetRobotInstallPos(0);
91    robot.SetRobotInstallAngle(15.0,25.0);
92
93    return 0;
94}

5.23. 代码示例

在 C++SDK-v2.1.2.0 版本加入.

 1#include "libfairino/robot.h"
 2
 3//如果使用Windows,包含下面的头文件
 4#include <string.h>
 5#include <windows.h>
 6//如果使用linux,包含下面的头文件
 7/*
 8#include <cstdlib>
 9#include <iostream>
10#include <stdio.h>
11#include <cstring>
12#include <unistd.h>
13*/
14#include <chrono>
15#include <thread>
16#include <string>
17using namespace std;
18
19int main(void)
20{
21    FRRobot robot;
22    robot.RPC("192.168.58.2");
23
24    int i;
25    float value;
26    int tool_id, etool_id, user_id;
27    int type;
28    int install;
29    int retval = 0;
30
31    DescTran coord;
32    DescPose t_coord, etcp, etool, w_coord;
33    memset(&coord, 0, sizeof(DescTran));
34    memset(&t_coord, 0, sizeof(DescPose));
35    memset(&etcp, 0, sizeof(DescPose));
36    memset(&etool, 0, sizeof(DescPose));
37    memset(&w_coord, 0, sizeof(DescPose));
38
39    DescPose tool0_pose;
40    memset(&tool0_pose, 0, sizeof(DescPose));
41    printf("SetToolPoint start\n");
42    std::this_thread::sleep_for(std::chrono::seconds(3));
43    for (int i = 1; i < 7; i++)
44    {
45        retval = robot.SetToolPoint(i);
46        printf("SetToolPoint retval is: %d\n", retval);
47    }
48    printf("SetToolPoint end\n");
49
50    retval = robot.ComputeTool(&tool0_pose);
51    printf("ComputeTool retval is: %d\n", retval);
52    printf("xyz is: %f, %f, %f; rpy is: %f, %f, %f\n", tool0_pose.tran.x, tool0_pose.tran.y, tool0_pose.tran.z, tool0_pose.rpy.rx, tool0_pose.rpy.ry, tool0_pose.rpy.rz);
53
54    DescPose tcp4_0_pose;
55    memset(&tcp4_0_pose, 0, sizeof(DescPose));
56    for (int i = 1; i < 5; i++)
57    {
58        retval = robot.SetTcp4RefPoint(i);
59        printf("SetTcp4RefPoint retval is: %d\n", retval);
60    }
61    retval = robot.ComputeTcp4(&tcp4_0_pose);
62    printf("ComputeTcp4 retval is: %d\n", retval);
63    printf("xyz is: %f, %f, %f; rpy is: %f, %f, %f\n", tcp4_0_pose.tran.x, tcp4_0_pose.tran.y, tcp4_0_pose.tran.z, tcp4_0_pose.rpy.rx, tcp4_0_pose.rpy.ry, tcp4_0_pose.rpy.rz);
64
65    DescPose extcp_0_pose;
66    memset(&extcp_0_pose, 0, sizeof(DescPose));
67    printf("SetExTCPPoint start\n");
68    for (int i = 1; i < 7; i++)
69    {
70        retval = robot.SetExTCPPoint(i);
71        printf("SetExTCPPoint retval is: %d\n", retval);
72    }
73    printf("SetExTCPPoint end\n");
74
75    retval = robot.ComputeExTCF(&extcp_0_pose);
76    printf("ComputeExTCF retval is: %d\n", retval);
77    printf("xyz is: %f, %f, %f; rpy is: %f, %f, %f\n", extcp_0_pose.tran.x, extcp_0_pose.tran.y, extcp_0_pose.tran.z, extcp_0_pose.rpy.rx, extcp_0_pose.rpy.ry, extcp_0_pose.rpy.rz);
78
79    DescPose wobj_0_pose;
80    memset(&wobj_0_pose, 0, sizeof(DescPose));
81    for (int i = 1; i < 4; i++)
82    {
83        retval = robot.SetWObjCoordPoint(i);
84        printf("SetWObjCoordPoint retval is: %d\n", retval);
85    }
86    retval = robot.ComputeWObjCoord(0, &wobj_0_pose);
87    printf("ComputeWObjCoord retval is: %d\n", retval);
88    printf("xyz is: %f, %f, %f; rpy is: %f, %f, %f\n", wobj_0_pose.tran.x, wobj_0_pose.tran.y, wobj_0_pose.tran.z, wobj_0_pose.rpy.rx, wobj_0_pose.rpy.ry, wobj_0_pose.rpy.rz);
89}