关节控制
对于串联式多关节机器人,关节控制是针对机械臂各个关节的变量进行的控制,目标是让机械臂各个关节按照一定速度达到目标位置。
单关节控制
发送单关节角度
SendOneAngle(int jointNo, int angle, int speed)
返回值:无
参数说明:参数1:关节号(1 - 6), 参数2:角度(范围:-170°- 170°)),参数3:速度(0-100)
示例:
mc.SendOneAngle(1, 100,70);
多关节控制
获取所有关节角度
GetAngles()
返回值:返回int类型数组,int[], length: 6
参数说明:无
示例:
var recv = mc.GetAngles();
发送所有关节角度
SendAngles(int[] angles, int speed)
返回值:无
参数说明:参数1:所有关节角度(范围:-170°- 170°), 参数2:速度(0-100)
示例:
int[] angles = new[] {100, 100, 100, 100, 100, 100};
mc.SendAngles(angles ,30);
完整使用案例
项目中的program.cs是完整的使用案例程序,可以在此基础上根据需要修改。
using System; // 引入System命名空间,提供基本的类和方法,如Console和Thread
namespace Mycobot.csharp // 定义一个命名空间,用于组织代码
{
class Test // 定义一个名为Test的类
{
static void Main(string[] args) // 程序的主入口点
{
MyCobot mc = new MyCobot("/dev/ttyUSB0"); // 创建一个MyCobot实例,假设"/dev/ttyUSB0"是机器人与计算机通信的串口
mc.Open(); // 打开与机器人的连接
// 下面的几行代码被注释掉了,它们演示了如何发送角度数组、等待一段时间、接收并打印返回的角度
// int[] angles = new[] {100, 100, 100, 100, 100, 100}; // 创建一个包含6个角度的数组
// mc.SendAngles(angles, 50); // 发送角度数组和速度给机器人
// Thread.Sleep(5000); // 等待5000毫秒(5秒)
// 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); // 等待5000毫秒(5秒)
// var recv = mc.GetCoords(); // 接收当前坐标
// foreach (var v in recv) // 遍历并打印接收到的坐标
// {
// Console.WriteLine(v);
// }
mc.SendOneAngle(1, 100, 70); // 发送单个关节的角度(假设是第一个关节),设置角度为100,速度为70
// byte[] setColor = {0xfe, 0xfe, 0x05, 0x6a, 0xff, 0x00, 0x00, 0xfa}; // 这行代码也被注释掉了,可能用于设置LED颜色等
mc.Close(); // 关闭与机器人的连接
}
}
}