关节角度控制(非通用)

  • 由于微控制器的特性,以下用arduino烧录控制的例程仅适用于微控制器产品,微处理器不适用

单关节控制

arduino

writeAngle(int joint, float value, int speed);

  • 功能:发送单关节角度

  • 参数说明: 关节序号 = joint,取值范围 1-6; 指定角度值 = value,取值范围约-170°~ + 170° 指定速度 = speed, 取值范围 0~100;

  • 返回值:无

#include <MycobotBasic.h>
#include <ParameterList.h>

MycobotBasic myCobot;

//定义一个Angles类型的变量angles,内容如下
Angles angles = { -0.0, -0.0, -0.0, -0.0, -0.0, -0.0 };           


void setup() {

  //打开通讯串口
  myCobot.setup();

  //链接atom
  myCobot.powerOn();

  //赋值angles为{ 0, 0, 0, 0, 0, 0 };
  for(auto &val : angles)       
    val = 0.0;

  //关节回到原点
  myCobot.writeAngles(angles, 50);
  delay(5000);
}

void loop() {
  for(int i = 1; i < 7; i++)        //依次设定关节正反转90°
    {
      //myCobot.writeAngle(i,angle,0-100);
      myCobot.writeAngle(i, -90, 100);   // set joint angle -90 degree
      delay(4000);
      myCobot.writeAngle(i, 90, 100);    // set joint angle 90 degree
      delay(4000);
      myCobot.writeAngle(i, 0, 100);     // set joint angle 0 degree
      delay(4000);
    }
}

多关节控制

arduino

writeAngles(Angles angles, int speed);

  • 功能:关节角度同步执行,同时发送四个关节的角度给执行器 Angles 为库函数声明的定义类型,指定 angles 是容量大小为 4 个数据的容器,可理解为数组,赋值时可使用 for 循环赋值,也可单独赋值。

  • 参数说明: Angles[0] = 具体角度,Angles[2] = 具体角度,以此类推取值范围 0 – 90(范围为定义,取值范围应和 writeAngle 相同) 单位 ° 运动速度 = speed,取值范围 0~100 单位 %

  • 返回值:无

#include <MycobotBasic.h>
#include <ParameterList.h>

MycobotBasic myCobot;

//定义一个Angles类型的变量angles,内容如下
Angles angles = { -0.0, -0.0, -0.0, -0.0, -0.0, -0.0 };           


void setup() {

  //打开通讯串口
  myCobot.setup();

  //链接atom
  myCobot.powerOn();

  //赋值angles为{ 0, 0, 0, 0, 0, 0 };
  for(auto &val : angles)       
    val = 0.0;

  //关节回到原点
  myCobot.writeAngles(angles, 50);
  delay(5000);
}

void loop() {
  for(int i = 1; i < 7; i++)        //依次设定关节正反转90°
    {
      //myCobot.writeAngle(i,angle,0-100);
      myCobot.writeAngle(i, -90, 100);   // set joint angle -90 degree
      delay(4000);
      myCobot.writeAngle(i, 90, 100);    // set joint angle 90 degree
      delay(4000);
      myCobot.writeAngle(i, 0, 100);     // set joint angle 0 degree
      delay(4000);
    }
}

results matching ""

    No results matching ""