关节控制

对于串行多关节机器人来说,关节控制就是控制机器人手臂各关节的变量,使各关节以一定的速度到达目标位置。

1 单关节控制

1.1 发送单个关节的角度

WriteAngle(Joint joint, double value, int speed = DefaultSpeed)example
功能:发送单关节角度
返回值:无
参数说明:参数 1:关节号(1-6) 参数 2:角度(-170°- 170°) 参数 3:速度(0-100),默认为30
example:
mycobot::MyCobot::I().WriteAngle(mycobot::Joint::J1, 10, 30);

1.2 获得单关节的最小角度

GetJointMin(Joint joint) example
功能:读取关节最小角度
返回值:double 类型,最小角度(关节最小能运行到的角度)
参数说明:关节号(1-6)
example:
mycobot::MyCobot::I().GetJointMin(mycobot::Joint::J1);

1.3 获取单个关节的最大角度

GetJointMax(Joint joint)example
功能:读取关节最大角度
返回值:double 类型,最大角度(关节最大能运行到的角度)
参数说明:关节号(1-6)
example:
mycobot::MyCobot::I().GetJointMax(mycobot::Joint::J1);

1.4 在指定关节上执行 Jog

JogAngle(Joint joint, int direction, int speed = DefaultSpeed)example
功能:使某个关节运动直至 Jogstop 或是到达限位
返回值:无
参数说明:参数 1:关节号(1-6),参数 2:方向(1--正方向,0--反方向),参数 3:速度(默认 30,范围:0-100
注意:此 API 会让机械臂关节一直朝正反方向运动,到达限位后或者中途调用 JogStop 才会停止运动
example:
mycobot::MyCobot::I().JogAngle(mycobot::Joint::J1, 1, 30);

1.5 在指定关节上进行位置递增的点动运动

JogAngleIncrement(Joint joint, double increment, int speed = DefaultSpeed)example
功能:使某个关节运动设定的角度增量
返回值:无
参数说明:参数 1:关节号(1-6),参数 2:关节增量值,速度(默认 30,范围:0-100
注意:机械臂进行步进运动:比如当前关节 1 坐标为-100,增量值为 50,运动完后,关节 1 将为 50
example:
mycobot::MyCobot::I().JogAngleIncrement(mycobot::Joint::J1, 10, 30);

2 多关节控制

2.1 获取所有关节的角度

GetAngles()example
功能:获取全部关节角度
返回值:Angles 类型
参数说明:无
example:
mycobot::Angles angles= mycobot::MyCobot::I().GetAngles();

2.2 发送所有关节的角度

WriteAngles(const Angles& angles, int speed = DefaultSpeed)example
功能:发送全部关节角度
返回值:无
参数说明:参数 1:全部角度(std::array,角度取值范围-170°- 170°) 参数 2:速度(0-100),默认为 30

mycobot::Angles goal_angles = { 5, 5, 5, 5, 5, 5 };
mycobot::MyCobot::I().WriteAngles(goal_angles, 30);
mycobot::Angles goal_angles = { 5, 5, 5, 5, 5, 5 };
mycobot::MyCobot::I().WriteAngles(goal_angles, 30);

协调控制

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

1 单参数控制

1.1 发送单一参数坐标

WriteCoord(Axis axis, double value, int speed = DefaultSpeed) example
功能:发送单参数坐标
返回值:无
参数说明:参数 1:坐标号(Axis 枚举类型,int:1-6(X-RZ)),参数 2:坐标(X、Y、Z取值范围 -300-300.00 单位 mm RX、RY、RZ,取值范围-180-180),参数 3:速度(0-100),默认为30
example:
mycobot::MyCobot::I().WriteCoord(mycobot::Axis::X, 10, 30);

1.2 在指定轴上点动

JogCoord(Axis axis, int direction, int speed = DefaultSpeed) example
功能:使机械臂朝坐标轴方向运动
返回值:无
参数说明:参数 1:坐标号(1-6,x y z rx ry rz),参数 2:方向(1--正方向,0--反方向),参数 3:速度(默认为 30,范围:0-100
注意:此 API 会让机械臂一直朝坐标轴正反方向运动,到达限位后或者中途调用 JogStop 才会停止运动
example:
mycobot::MyCobot::I().JogCoord(mycobot::Axis::X, 1, 30);

1.3 在指定轴上以增量位置点动

JogCoordIncrement(Axis axis, double increment, int speed = DefaultSpeed)example
功能:使某个坐标运动设定的坐标增量
返回值:无
参数说明:参数 1:坐标号(1-6, x y z rx ry rz),参数 2:坐标增量值,参数 3:速度(默认 30,范围:0-100
注意:机械臂进行步进运动:比如当前 x 轴坐标为 100,增量值为 50,运动完后,x 轴坐标将为 150
example:
mycobot::MyCobot::I().JogCoordIncrement(mycobot::Axis::X, 1, 30);

2 多参数控制

2.1 获取所有坐标

GetCoords() example
功能:获取全部坐标
返回值:Coords 类型
参数说明:无

2.2 发送所有坐标

WriteCoords(const Coords& coords, int speed = DefaultSpeed)example
功能:发送全部坐标
返回值:无
参数说明:参数 1:坐标(X、Y、Z取值范围 -300-300.00单位 mm RX、RY、RZ,取值范围-180-180),参数 2:速度(0-100),默认为 30
example:

mycobot::Coords goal_coords = {5, 5, 5, 5, 5, 5 };
mycobot::MyCobot::I().WriteCoords(goal_coords, 30);
mycobot::Coords goal_coords = {5, 5, 5, 5, 5, 5 };
mycobot::MyCobot::I().WriteCoords(goal_coords, 30);

IO 控制

M5Stack-basic 机器人手臂底部和 Atom 机器人手臂末端都有插针。吸附泵和其他工具可通过 io 控制设置引脚的高电平和低电平来控制。有关每种机械臂的输入和输出引脚数量,请参阅下表。
M5Stack-basic 输入和输出引脚说明表

Robot arm model Input pin number Output pin number
myCobot 280-M5 35、36 2、5、26
myCobot 320-M5 35、36 5、15

Atom 输入和输出引脚说明表

Robot arm model Input pin number Output pin number
myCobot 280-M5 19、22 23、33
myCobot 320-M5

1 M5Stack--基本 io 控制 (m5)

1.1 设置输出 io 的高电平和低电平

SetBasicOut(int pin_number, int pin_signal)example
功能:设置输出 io 高低电平
返回值:无
参数说明:参数 1:引脚号(basic 输出引脚号),参数 2:状态(0--低电平,1--高电平)
example:

mycobot::MyCobot::I().SetBasicOut(2, 1);

1.2 获取输入 io 的状态

GetBasicIn(int pin_number)example
功能:获取输入 io 状态
返回值:引脚状态(0--低电平,1--高电平)
参数说明:引脚号(basic 输入引脚号)
Case:
example:
mycobot::MyCobot::I().GetBasicIn(35);

2 Atom IO 控制

注:320m5 没有 atom io,因此不使用模块 API。

2.1 设置输出 io 的高电平和低电平

SetDigitalOut(int pin_number, int pin_signal) example
功能:设置输出 io 高低电平
返回值:无
参数说明:参数 1:引脚号(atom 输出引脚号),参数 2:状态(0--低电平,1--高电平)
Case:
example:
mycobot::MyCobot::I().SetDigitalOut(23, 1);

2.2 获取输入 io 的状态

GetDigitalIn(int pin_number)example
功能:获取输入 io 状态
返回值:引脚状态(0--低电平,1--高电平)
参数说明:引脚号(atom 输入引脚号)
Case:
mycobot::MyCobot::I().GetDigitalIn(19);

其他应用程序接口介绍

1 实例化 MyCobot

I()
功能:实例化 MyCobot
返回值:MyCobot 类型,myCobot 对象的单例实例
参数说明:无
注意:在调用下面的 API 时,不需要在单独实例化,调用此 API 即可

2 机器人整体运行状态 Overall Status

2.1 PowerOn()

功能:机械臂上电
返回值:无
参数说明:无
注意:机械臂上电后,无法手动移动机械臂

2.2 PowerOff()

功能:机械臂掉电
返回值:无
参数说明:无
注意:机械臂上电后,如果想要手动移动机械臂,可以调用此 API

2.3 SetFreeMoveMode(bool free_move = true)

功能:设置自由移动模式
返回值:无
参数说明:开启还是关闭自由移动,true--开启自由移动,false--关闭自由自动
注意:自由自动开启后,可以手动移动机械臂,同时 atom 上面的灯会变成黄色,关闭会变成绿色

2.4 IsFreeMoveMode()

功能:检测当前是否为自由移动模式
返回值:bool 类型,true-开启了自由移动,false-自由移动未开启
参数说明:无

2.5 IsControllerConnected()

功能:检测系统是否正常
返回值:无
参数说明:bool 类型,返回false 将无法控制机械臂

3 输入程序控制模式

3.1 IsInPosition(const Coords& coords, bool is_linear = true)

功能:检查机械臂是否到达指定的点位(角度或者坐标)
返回值:bool 类型,返回 false--未到达指定点位,返回 true--到达指定点位
参数说明:参数 1:所有角度或者坐标 参数 2:0 或者 1(坐标为 1(true),角度为 0(false))

3.2 IsMoving()

功能:检测机械臂是否正在运动
返回值:bool 类型,true--正在运动,false--未运动
参数说明:无

3.3 StopRobot()

功能:机械臂停止运动 当机械臂运动时,可以调用此 API,让机械臂停止运动
返回值:无
参数说明:无

4 运行辅助信息

4.1 GetSpeed()

功能:获取机械臂运动的速度
返回值:int 类型,机械臂运动速度(0-100
参数说明:无

4.2 SetSpeed(int percentage)

功能:设置机械臂运动的速度
返回值:无
参数说明:机械臂移动速度(0-100

4.3 GetJointMin(Joint joint)

功能:读取关节最小角度
返回值:double 类型,最小角度(关节最小能运行到的角度)
参数说明:关节号(1-6)

4.4 GetJointMax(Joint joint)

功能:读取关节最大角度
返回值:double 类型,最大角度(关节最大能运行到的角度)
参数说明:关节号(1-6)

4.5 SleepSecond(unsigned time)

功能:等待 返回值:无
参数说明:时间单位为


← 上一页 | 下一页 →

results matching ""

    No results matching ""