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}