MML命令控制
主视区下方区域为命令输入区和命令可视化输入区。可通过选择MML(Man Machine Language)命令+操作对象+参数的方式输入命令,达到实现对关节/机械手的控制。
1.MML命令控制关节
关节电机支持的MML命令包括如下:
命令 |
功能 |
|---|---|
SET RUNMODE |
设置运行模式 |
SET DEVICEPARA |
设置设备参数 |
SET CURRENTPARA |
设置电流参数 |
SET SPEEDPARA |
设置速度参数 |
SET POSITIONPARA |
设置位置参数 |
SET SYSCMD |
设置系统命令参数 |
SET COMMUPARA |
设置通信参数 |
SET MOTIONPARA |
设置运动控制参数 |
1.1.操作前准备
使用MML命令控制,需要确保关节电机/机械手处于连接状态。请参考对应章节操作。
1.2.操作步骤
以下以设置电机的速度参数为例,列出MML命令控制的操作步骤。
step 1. COMMAND选择MML命令SET SPEEDPARA
step 2. OBJECT根据关节名称选择操作对象Joint0
step 3. PRARTYPE选择最大速度参数类型MAX_SPEED
step 4. MaxSpeed输入速度参数1000
setp 5. MML命令文本框自动生成MML命令脚本
setp 6. 点击运行按钮实现最大速度参数的设置
1.3.设置运行模式 SET RUNMODE
使用运行模式命令,可实现对关节电机的运动控制。以下列出支持的运行模式命令:
RUNMODE |
功能 |
参数名称 |
参数含义 |
|---|---|---|---|
SPEED |
设置关节电机运行模式为速度模式 |
SPEED |
速度模式的速度值,转化为度每秒公式:(速度值/100/减速比)*360 |
CURRENT |
设置关节电机运行模式为电流模式 |
CURRENT |
电流模式的电流值,单位为mA |
POSITION |
设置关节电机运行模式为位置模式 |
POSITION |
目标位置的cnt值,转化为减速机角度公式:(位置值(cnt)/65536/减速比)*360 |
STOP |
设置关节电机运行模式为停止模式 |
NA |
1.4.设置设备参数 SET DEVICEPARA
使用设备参数命令,可实现对关节电机的设备参数设置。以下列出支持的设备参数命令:
PARATYPE |
功能 |
参数名称 |
参数含义 |
|---|---|---|---|
MAX_MOTORTEMP |
设置关节电机温度保护值 |
MaxMotorTemp |
电机温度保护值,单位为℃ |
MAX_PCBTEMP |
设置关节电机主板温度保护值 |
MaxPCBTemp |
电机主板温度保护值,单位为℃ |
MAX_VOL |
设置最大电压 |
MaxVoltage |
最大电压,单位为V |
MIN_VOL |
设置最小电压 |
MinVoltage |
最小电压,单位为V |
1.5.设置电流参数 SET CURRENTPARA
使用电流参数命令,可实现对关节电机的电流参数设置。以下列出支持的电流参数命令:
PARATYPE |
功能 |
参数名称 |
参数含义 |
|---|---|---|---|
MAX_CURRENT |
设置最大正电流 |
MaxCurrent |
最大正电流,单位为mA |
MIN_CURRENT |
设置最小负电流 |
MinCurrent |
最小负电流,单位为mA |
PROPORTIONAL |
设置电流环比例 |
Proportional |
电流环比例 |
INTEGRAL |
设置电流环积分 |
Integral |
电流环积分 |
1.6.设置速度参数 SET SPEEDPARA
使用速度参数命令,可实现对关节电机的速度参数设置。以下列出支持的速度参数命令:
PARATYPE |
功能 |
参数名称 |
参数含义 |
|---|---|---|---|
MAX_ACC |
设置最大正向加速度 |
MaxAcceleration |
最大正向加速度,为每毫秒允许速度增加的值 |
MIN_ACC |
设置最小负向加速度 |
MinAcceleration |
最大负向加速度,为每毫秒允许速度增加的值 |
MAX_SPEED |
设置最大正向允许速度 |
MaxSpeed |
最大正向速度,转化为度每秒公式:(速度值/100/减速比)*360 |
MIN_SPEED |
设置最小负向允许速度 |
MinSpeed |
最小负向速度,转化为度每秒公式:(速度值/100/减速比)*360 |
PROPORTIONAL |
设置速度环比例 |
Proportional |
速度环PID控制的P参数 |
INTEGRAL |
设置速度环积分 |
Integral |
速度环PID控制的I参数 |
1.7.设置位置参数 SET POSITIONPARA
使用位置参数命令,可实现对关节电机的位置参数设置。以下列出支持的位置参数命令:
PARATYPE |
功能 |
参数名称 |
参数含义 |
|---|---|---|---|
MAX_POS |
设置最大正向位置 |
MaxPosition |
最大正向位置cnt值,位置值为(减速机目标角度/360)减速比65536 |
MIN_POS |
设置最小负向位置 |
MinPosition |
最小负向位置cnt值,位置值为(减速机目标角度/360)减速比65536 |
PROPORTIONAL |
设置位置环比例 |
Proportional |
位置环常用PD控制 |
DIFFERENTIAL |
设置位置环微分 |
DIFFERENTIAL |
位置环常用PD控制 |
Offset |
设置位置偏移 |
Offset |
设置偏移值和目标位置(目标位置=编码器位置 - 偏移值) |
1.8.设置系统命令参数 SET SYSCMD
使用系统命令参数命令,可实现对关节电机的系统命令参数设置。以下列出支持的系统命令:
PARATYPE |
功能 |
|---|---|
RESET_FAULT |
清除告警 |
STORE_FLASH |
储存参数到Flash |
1.9.设置通信参数 SET COMMUPARA
使用通信参数命令,可实现对关节电机的CAN通信参数设置。以下列出支持的通信参数命令:
PARATYPE |
功能 |
参数名称 |
参数含义 |
|---|---|---|---|
CAN_ID |
设置CAN ID |
CanId |
关节电机用于CAN通信的Can Id值,范围为:1到127 |
BAUD_RATE |
设置CAN通信波特率 |
BaudRate |
CAN通信波特率,有效值为:1000、500、250、125、100、50,单位Kbps |
1.10.设置运动控制参数 SET MOTIONPARA
使用运动控制参数命令,可实现对关节电机的运动控制。以下列出支持的运动控制参数命令:
PARATYPE |
功能 |
参数名称 |
参数含义 |
|---|---|---|---|
ANGLE |
设置关节角度 |
Angle |
使用位置模式控制电机,其中位置值=(设置的角度参数/360)减速比65536 |
REDUCE_RATIO |
设置关节电机减速比 |
ReduceRatio |
关节电机减速比 |
2.MML命令控制机械手
机械手支持的MML命令包括如下,操作步骤和关节电机控制类似。操作前请先确认机械手处于连接状态。以下列出支持的MML命令:
命令 |
功能 |
|---|---|
SET HANDACTION |
设置手势动作 |
SET HANDPOS |
设置手指位姿 |
SET FINGERPOS |
设置单手指位姿 |
2.1.设置手势动作 SET HANDACTION
使用手势动作命令,可控制机械手做成设定动作手势。以下列出支持的手势参数:
ACTION |
功能 |
|---|---|
OPEN |
动作:伸展手势 |
CLOSE |
动作:握拳手势 |
MOVE_INDEX |
动作:伸出食指 |
MOVE_MID |
动作:伸出中指 |
MOVE_RING |
动作:伸出无名指 |
MOVE_LITTLE |
动作:伸出小拇指 |
OK_GESTURE |
动作:OK姿势 |
2.2.设置手指位姿 SET HANDPOS
使用手指位姿命令,可控制机械手各个手指按指定的角度做出对应的位姿。以下列出支持的位姿参数:
TYPE |
功能 |
参数1名称 |
参数1含义 |
参数2名称 |
参数2含义 |
参数3名称 |
参数3含义 |
|---|---|---|---|---|---|---|---|
ALLPOS |
设置手指位姿 |
LittleFinger |
小拇指位姿角度 |
RingFinger |
无名指位姿角度 |
MiddleFinger |
中指位姿角度 |
参数4名称 |
参数4含义 |
参数5名称 |
参数5含义 |
参数6名称 |
参数6含义 |
|---|---|---|---|---|---|
IndexFinger |
食指位姿角度 |
ThumbUpFinger |
大拇指上段位姿角度 |
ThumbDownFinger |
大拇指下段位姿角度 |
2.3.设置单手指位姿 SET FINGERPOS
使用单手指位姿命令,可控制机械手单个手指按指定的角度做出对应的位姿。以下列出支持的位姿参数:
FINGER |
功能 |
参数名称 |
参数含义 |
|---|---|---|---|
LITTLE_FINGER |
设置小拇指位姿 |
Position |
小拇指位姿角度 |
RING_FINGER |
设置无名指位姿 |
Position |
无名指位姿角度 |
MIDDLE_FINGER |
设置中指位姿 |
Position |
中指位姿角度 |
INDEX_FINGER |
设置食指位姿 |
Position |
食指位姿角度 |
THUMB_UP |
设置大拇指上段位姿 |
Position |
大拇指上段位姿角度 |
THUMB_DOWN |
设置大拇指下段位姿 |
Position |
大拇指下段位姿角度 |
3.批处理对象模式
关节电机/机械手均支持通过OBJECT对象类型为"ALL"的方式,对所有关节电机/机械手进行操作控制。
例如选择COMMAND命令为"SET SPEEDPARA",选择OBJECT对象为"ALL",选择PARATYPE参数为"MAX_SPEED",MaxSpeed参数为1000,即可实现对所有关节电机的最大速度设置。
4.批处理MML命令模式
MML命令编辑区可通过输入多条MML命令,实现批处理控制功能。
例如,可以在MML命令文本框中输入以下命令,实现对所有关节电机的最大速度/最小速度设置。
SET SPEEDPARA: OBJECT="ALL", PARATYPE="MAX_SPEED", MaxSpeed=1000;
SET SPEEDPARA: OBJECT="ALL", PARATYPE="MIN_SPEED", MinSpeed=-1000;
5.延时模式
延时模式可以控制MML命令的执行等待时长。有两种方式可以达到延时的目的:
1. 通过MML命令后面的StayTime参数设置该MML命令执行后的延时等待时长,单位为ms.
SET MOTIONPARA: OBJECT="Joint0", PARATYPE="ANGLE", Angle=100, StayTime=1000;
2. 通过独立的MML命令"SET SUSPENDTIME",针对特定的关节电机/机械手并指定StayTime参数的延时等待时长。命令为:
SET SUSPENDTIME: OBJECT="Joint0", PARATYPE="BY_TIME", StayTime=1000;
6.重复模式
重复模式可以控制MML批处理命令的重复执行次数。可以通过指定"Repeat"参数的次数为非0值,达到重复执行对应次数的批处理命令。
7.示例
7.1.机器人招手
找到下方指令区域,先选择要控制的对象,再填写角度,点击运行,可以看到招手机器人成功"招手"了。可以看到上方命令输入区同时生成了一条等效命令,我们同样可以使用命令去进行控制。
掌握命令控制方式,可以实现更复杂的动作。输入以下命令,设置重复次数,点击运行,便可以看到我们的招手机器人开始左右招手。
SET MOTIONPARA: OBJECT="Joint16", PARATYPE="ANGLE", Angle=30, StayTime=2000;
SET MOTIONPARA: OBJECT="Joint16", PARATYPE="ANGLE", Angle=-30, StayTime=2000;
//参考命令,更多命令见"2.3命令控制"
7.2.机器人摆头招手
接下来尝试一个更复杂的逻辑–左右摆头招手,让机械手先转向左,再招手,然后再转向右,再招手,命令如下。
SET MOTIONPARA: OBJECT="Joint14", PARATYPE="ANGLE", Angle=90, StayTime=4000;
SET SUSPENDTIME: OBJECT="ALL", PARATYPE="BY_TIME", StayTime=1500;
SET MOTIONPARA: OBJECT="Joint16", PARATYPE="ANGLE", Angle=30, StayTime=2000;
SET MOTIONPARA: OBJECT="Joint16", PARATYPE="ANGLE", Angle=-30, StayTime=2000;
SET MOTIONPARA: OBJECT="Joint16", PARATYPE="ANGLE", Angle=0, StayTime=2000;
SET SUSPENDTIME: OBJECT="ALL", PARATYPE="BY_TIME", StayTime=2000;
SET MOTIONPARA: OBJECT="Joint14", PARATYPE="ANGLE", Angle=-90, StayTime=4000;
SET MOTIONPARA: OBJECT="Joint16", PARATYPE="ANGLE", Angle=30, StayTime=2000;
SET MOTIONPARA: OBJECT="Joint16", PARATYPE="ANGLE", Angle=-30, StayTime=2000;
SET MOTIONPARA: OBJECT="Joint16", PARATYPE="ANGLE", Angle=0, StayTime=2000;
SET SUSPENDTIME: OBJECT="ALL", PARATYPE="BY_TIME", StayTime=2000;
SET MOTIONPARA: OBJECT="Joint14", PARATYPE="ANGLE", Angle=0, StayTime=2000;
//参考命令,更多命令见"2.3命令控制"
7.3.机器人170A控制案例
这一节将展示如何通过搭建的模型对大型机器人进行控制,如果你手边有一台"170A"的机器人,则可以直接使用官方提供的模型而不需要自己搭建。
如下图,直接加载我们在model文件夹里提供的"TH-T70A.json"文件,可以看到连接后,模型自动同步了机器人的电机角度(左腿向内弯曲)。
通过命令组合对大型的机器人进行控制,效果如下图。
//左手作揖
SET MOTIONPARA: OBJECT="L_SHOULDER_P", PARATYPE="ANGLE", Angle=-75;
SET MOTIONPARA: OBJECT="L_SHOULDER_R", PARATYPE="ANGLE", Angle=45;
SET MOTIONPARA: OBJECT="L_SHOULDER_Y", PARATYPE="ANGLE", Angle=-20;
SET MOTIONPARA: OBJECT="L_ELBOW_R", PARATYPE="ANGLE", Angle=-80;
SET MOTIONPARA: OBJECT="L_WRIST_P", PARATYPE="ANGLE", Angle=0;
SET MOTIONPARA: OBJECT="L_WRIST_Y", PARATYPE="ANGLE", Angle=0;
SET MOTIONPARA: OBJECT="L_WRIST_R", PARATYPE="ANGLE", Angle=40;
SET HANDACTION: OBJECT="L_HAND", ACTION="OPEN";
//右手作揖
SET MOTIONPARA: OBJECT="R_SHOULDER_P", PARATYPE="ANGLE", Angle=65;
SET MOTIONPARA: OBJECT="R_SHOULDER_R", PARATYPE="ANGLE", Angle=-45;
SET MOTIONPARA: OBJECT="R_SHOULDER_Y", PARATYPE="ANGLE", Angle=20;
SET MOTIONPARA: OBJECT="R_ELBOW_R", PARATYPE="ANGLE", Angle=80;
SET MOTIONPARA: OBJECT="R_WRIST_P", PARATYPE="ANGLE", Angle=0;
SET MOTIONPARA: OBJECT="R_WRIST_Y", PARATYPE="ANGLE", Angle=0;
SET MOTIONPARA: OBJECT="R_WRIST_R", PARATYPE="ANGLE", Angle=-40;
//参考命令,更多命令见"2.3命令控制"