坐标控制

坐标控制是让机械臂以指定姿态移动到指定点,分为x,y,z,rx,ry,rz。X,Y,Z 表示的是机械臂头部在空间中的位置(该坐标系为直角坐标系),rx,ry,rz表示的是机械臂头部在该点的姿态(该坐标系为欧拉坐标)。

1 单参数坐标

1.1 发送单参数坐标

SendOneCoord(int coord, int value, int speed)
返回值:无
参数说明:参数1:坐标号(1-6(x、y、z、rx、ry、rz)), 参数2:坐标(X、Y、Z取值范围 -300-300.00 单位 mm RX、RY、RZ,取值范围-180-180), 参数3:速度(0-100)
示例:
mc.SendOneCoord(1, 160,30);

2 多参数坐标

2.1 获取所有坐标

GetCoords()
返回值:返回int类型数组,int[], length: 6
参数说明:无
示例:
var recv = mc.GetCoords();

2.2 发送多参数坐标

SendCoords(int[] coords, int speed, int mode)
返回值:无
参数说明:参数1:所有坐标(X、Y、Z取值范围 -300-300.00 单位 mm RX、RY、RZ,取值范围-180-180), 参数2:速度(0-100), 参数3:模式(0 - angular,1 - linear)
示例:

int[] coords = new[] {160, 160, 160, 0, 0, 0};<br>
mc.SendCoords(coords ,30);<br>

3 完整使用案例

项目中的program.cs是完整的使用案例程序,可以在此基础上根据需要修改。

using System;

namespace Mycobot.csharp
{
    class Test 
    {
        static void Main(string[] args)
        {
            MyCobot mc = new MyCobot("/dev/ttyUSB0");
            mc.Open();
            // int[] angles = new[] {100, 100, 100, 100, 100, 100};
            // mc.SendAngles(angles, 50);
            // Thread.Sleep(5000);
            // var recv = mc.GetAngles();
            // foreach (var v in recv)
            // {
                // Console.WriteLine(v);
            // }

            // int[] coords = new[] {160, 160, 160, 0, 0, 0};
            // mc.SendCoords(coords, 90, 1);
            // Thread.Sleep(5000);
            // var recv = mc.GetCoords();
            // foreach (var v in recv)
            // {
                // Console.WriteLine(v);
            // }

            mc.SendOneAngle(1, 100,70);

            // byte[] setColor = {0xfe, 0xfe, 0x05, 0x6a, 0xff, 0x00, 0x00, 0xfa};
            mc.Close();
        }
    }

results matching ""

    No results matching ""