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);