5. 机器人常用设置
5.1. 设置全局速度
1/**
2* @brief 设置全局速度
3* @param [in] vel 速度百分比,范围[0~100]
4* @return 错误码
5*/
6int SetSpeed(int vel);
5.2. 设置系统变量值
1/**
2* @brief 设置系统变量值
3* @param [in] id 变量编号,范围[1~20]
4* @param [in] value 变量值
5* @return 错误码
6*/
7int SetSysVarValue(int id, double value);
5.3. 设置工具参考点-六点法
1/**
2* @brief 设置工具参考点-六点法
3* @param [in] point_num 点编号,范围[1~6]
4* @return 错误码
5*/
6int SetToolPoint(int point_num);
5.4. 计算工具坐标系–六点法
1/**
2* @brief 计算工具坐标系
3* @param [out] tcp_pose 工具坐标系
4* @return 错误码
5*/
6int ComputeTool(ref DescPose tcp_pose);
5.5. 设置工具参考点-四点法
1/**
2* @brief 设置工具参考点-四点法
3* @param [in] point_num 点编号,范围[1~4]
4* @return 错误码
5*/
5.6. 计算工具坐标系-四点法
1/**
2* @brief 计算工具坐标系
3* @param [out] tcp_pose 工具坐标系
4* @return 错误码
5*/
6int ComputeTcp4(ref DescPose tcp_pose);
5.7. 设置工具坐标系
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*/
9int SetToolCoord(int id, DescPose coord, int type, int install);
5.8. 设置工具坐标系列表
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*/
9int SetToolList(int id, DescPose coord, int type, int install);
5.9. 设置外部工具坐标参考点-三点法
1/**
2* @brief 设置外部工具参考点-三点法
3* @param [in] point_num 点编号,范围[1~3]
4* @return 错误码
5*/
6int SetExTCPPoint(int point_num);
5.10. 计算外部工具坐标系-三点法
1/**
2* @brief 计算外部工具坐标系-三点法
3* @param [out] tcp_pose 外部工具坐标系
4* @return 错误码
5*/
6int ComputeExTCF(ref DescPose tcp_pose);
5.11. 设置外部工具坐标系
1/**
2* @brief 设置外部工具坐标系
3* @param [in] id 坐标系编号,范围[0~14]
4* @param [in] etcp 工具中心点相对末端法兰中心位姿
5* @param [in] etool 待定
6* @return 错误码
7*/
8int SetExToolCoord(int id, DescPose etcp, DescPose etool);
5.12. 设置外部工具坐标系列表
1/**
2* @brief 设置外部工具坐标系列表
3* @param [in] id 坐标系编号,范围[0~14]
4* @param [in] etcp 工具中心点相对末端法兰中心位姿
5* @param [in] etool 待定
6* @return 错误码
7*/
8int SetExToolList(int id, DescPose etcp, DescPose etool);
5.13. 设置工件坐标系参考点-三点法
1/**
2* @brief 设置工件参考点-三点法
3* @param [in] point_num 点编号,范围[1~3]
4* @return 错误码
5*/
6int SetWObjCoordPoint(int point_num);
5.14. 计算工件坐标系
1/**
2* @brief 计算工件坐标系
3* @param [in] method 计算方式 0:原点-x轴-z轴 1:原点-x轴-xy平面
4* @param [out] wobj_pose 工件坐标系
5* @return 错误码
6*/
7int ComputeWObjCoord(int method, ref DescPose wobj_pose);
5.15. 设置工件坐标系
1/**
2* @brief 设置工件坐标系
3* @param [in] id 坐标系编号,范围[0~14]
4* @param [in] coord 工件坐标系相对于末端法兰中心位姿
5* @return 错误码
6*/
7int SetWObjCoord(int id, DescPose coord);
5.16. 设置工件坐标系列表
1/**
2* @brief 设置工件坐标系列表
3* @param [in] id 坐标系编号,范围[0~14]
4* @param [in] coord 工件坐标系相对于末端法兰中心位姿
5* @return 错误码
6*/
7int SetWObjList(int id, DescPose coord);
5.17. 设置末端负载重量
1/**
2* @brief 设置末端负载重量
3* @param [in] weight 负载重量,单位kg
4* @return 错误码
5*/
6int SetLoadWeight(float weight);
5.18. 设置末端负载质心坐标
1/**
2* @brief 设置末端负载质心坐标
3* @param [in] coord 质心坐标,单位mm
4* @return 错误码
5*/
6int SetLoadCoord(DescTran coord);
5.19. 设置机器人安装方式
1/**
2* @brief 设置机器人安装方式
3* @param [in] install 安装方式,0-正装,1-侧装,2-倒装
4* @return 错误码
5*/
6int SetRobotInstallPos(byte install);
5.20. 设置机器人安装角度
1/**
2* @brief 设置机器人安装角度,自由安装
3* @param [in] yangle 倾斜角
4* @param [in] zangle 旋转角
5* @return 错误码
6*/
7int SetRobotInstallAngle(double yangle, double zangle);
5.21. 代码示例
1private void btnCommonSets_Click(object sender, EventArgs e)
2{
3 Robot robot = new Robot();
4 robot.RPC("192.168.58.2");
5
6 int i;
7 double value = 0;
8 int id;
9 int type;
10 int install;
11
12 DescTran coord = new DescTran();
13 DescPose t_coord, etcp, etool, w_coord;
14 t_coord = new DescPose();
15 etcp = new DescPose();
16 w_coord = new DescPose();
17
18 robot.SetSpeed(20);
19
20 for (i = 1; i < 21; i++)
21 {
22 robot.SetSysVarValue(i, (float)(i + 0.5));
23 robot.WaitMs(100);
24 }
25
26 for (i = 1; i < 21; i++)
27 {
28 robot.GetSysVarValue(i, ref value);
29 Console.WriteLine($"sys value : {value}");
30 }
31
32 robot.SetLoadWeight((float)2.5);
33 coord.x = 3.0;
34 coord.y = 4.0;
35 coord.z = 5.0;
36 robot.SetLoadCoord(coord);
37
38 id = 3;
39 t_coord.tran.x = 1.0;
40 t_coord.tran.y = 2.0;
41 t_coord.tran.z = 300.0;
42 t_coord.rpy.rx = 4.0;
43 t_coord.rpy.ry = 5.0;
44 t_coord.rpy.rz = 6.0;
45 type = 0;
46 install = 0;
47
48 int rtn1 = -1;
49 int rtn2 = -1;
50 rtn1 = robot.SetToolCoord(id, t_coord, type, install);
51 rtn2 = robot.SetToolList(id, t_coord, type, install);
52 Console.WriteLine($"set tool coord result {rtn1}, set tool list rtn{rtn2}");
53
54 etcp.tran.x = 1.0;
55 etcp.tran.y = 2.0;
56 etcp.tran.z = 3.0;
57 etcp.rpy.rx = 4.0;
58 etcp.rpy.ry = 5.0;
59 etcp.rpy.rz = 6.0;
60 etool.tran.x = 11.0;
61 etool.tran.y = 22.0;
62 etool.tran.z = 330.0;
63 etool.rpy.rx = 44.0;
64 etool.rpy.ry = 55.0;
65 etool.rpy.rz = 66.0;
66 id = 5;
67 robot.SetExToolCoord(id, etcp, etool);
68 robot.SetExToolList(id, etcp, etool);
69
70 w_coord.tran.x = 110.0;
71 w_coord.tran.y = 12.0;
72 w_coord.tran.z = 13.0;
73 w_coord.rpy.rx = 14.0;
74 w_coord.rpy.ry = 15.0;
75 w_coord.rpy.rz = 16.0;
76 id = 12;
77 robot.SetWObjCoord(id, w_coord);
78 //robot.SetWObjList(id, w_coord);
79
80 double yangle = 0, zangle = 0;
81 robot.SetRobotInstallPos(1);//侧装
82 robot.SetRobotInstallAngle(15.0, 25.0);
83 Thread.Sleep(1000);
84 robot.GetRobotInstallAngle(ref yangle, ref zangle);
85 Console.WriteLine($"yangle {yangle} zangle {zangle}");
86 robot.SetRobotInstallAngle(10.0, 10.0);
87 Thread.Sleep(1000);
88 robot.GetRobotInstallAngle(ref yangle, ref zangle);
89 Console.WriteLine($"yangle {yangle} zangle {zangle}");
90}
5.22. 等待指定时间
1/**
2* @brief 等待指定时间
3* @param [in] t_ms 单位ms
4* @return 错误码
5*/
6int WaitMs(int t_ms);