6.1 Python API
[toc]
6.1.2 API使用说明
API(ApplicationProgrammingInterface),也称为应用程序编程接口函数,是预定义的函数。 使用以下功能接口时,请在开始时输入以下代码导入我们的API库,否则无法成功运行:
# 示例
from pymycobot import Mercury
mc = Mercury('/dev/ttyAMA1')
print(mc.get_angles())
1. 系统状态
get_system_version()
- 功能: 获取主控固件版本号
- 返回值: 主控固件版本号
get_robot_type()
功能: 获取机器人类型
返回值: 定义规则:实际机器型号。 例如水星A1型号为4500
get_atom_version()
- 功能: 获取末端固件版本号
- 返回值: 末端固件版本号(
float
)
get_robot_status()
- 功能: 上位机错误安全状态
- 返回值: 0 - 正常。 其他 - 机器人触发碰撞检测
2. 整体状况
power_on()
- 功能: 机器人上电
- 返回值:
1
- 上电完成.0
- 上电失败
power_off()
功能: 机器人下电
返回值:
1
- 下电完成.0
- 下电失败
is_power_on()
功能: 获取机器人是否上电
返回值:
1
: 已上电0
: 未上电-1
: 错误
release_all_servos()
- 功能: 放松机器人所有关节
- 返回值:
1
- 释放完成.0
- 释放失败
focus_all_servos()
功能: 锁定机器人所有关节
返回值:
1
: 锁定完成0
: 锁定失败-1
: 错误
3. MDI模式及操作
get_angles()
- 功能: 获取所有关节的度数
- 返回值:
list
所有关节的角度浮点列表
get_angle(joint_id)
- 功能: 获取单关节角度
- 参数:
joint_id
: 关节ID (int): 1 ~ 7
- 返回值: 关节对应的角度值
send_angle(id, degree, speed)
- 功能: 单关节角度控制
- 参数:
id
: 关节ID, 范围 1-7degree
: 角度值(float
) | 关节 Id | 角度范围 | | ---- | ---- | | 1 | -178 ~ 178 | | 2 | -74 ~ 130 | | 3 | -178 ~ 178 | | 4 | -180 ~ 10 | | 5 | -178 ~ 178 | | 6 | -20 ~ 273 | | 7 | -180 ~ 180 |speed
:机械臂运动速度,范围 1~100
send_angles(angles, speed)
- 功能: 将所有角度发送到机械臂的所有关节
- 参数:
angles
: 长度为7的列表(List[float]
)speed
: (int
) 1 ~ 100
get_coords()
- 功能: 获取笛卡尔坐标
- 返回值: 浮点型的列表:[x, y, z, rx, ry, rz]
send_coord(id, coord, speed)
- 功能: 笛卡尔单坐标控制
- 参数:
id
: 范围 1 - 6对应笛卡尔坐标 [x, y, z, rx, ry, rz]coord
: 坐标值范围(float
) | 坐标 Id | 范围 | | ---- | ---- | | 1 | -466 ~ 466 | | 2 | -466 ~ 466 | | 3 | -240 ~ 531 | | 4 | -180 ~ 180 | | 5 | -180 ~ 180 | | 6 | -180 ~ 180 |speed
: (int
) 1-100
send_coords(coords, speed, mode)
- 功能:: 发送整体坐标和姿态,将机械臂末端从当前位置移动到您指定的坐标位置
- 参数:
- coords: : 长度为6的浮点数坐标值
[x,y,z,rx,ry,rz]
- speed
(int)
: 1 ~ 100
- coords: : 长度为6的浮点数坐标值
pause()
- 功能: 暂停机器人运动
is_paused()
- 功能: 机器人是否处于暂停运动状态
- 返回值:
1
- 暂停0
- 不是暂停-1
- 错误
resume()
- 功能: 恢复机器人运动,解除暂停
stop()
- 功能: 机器人停止运动
- 返回值:
1
- 停止完成0
- 停止失败-1
- 错误
is_in_position(data, flag)
- 功能: : 机器人是否到达指定位置
- 参数:
data
: 提供一组列表数据,可以是角度或坐标值。 如果输入角度长度范围为7,如果输入坐标值长度范围为6flag
输入数据的类型0
: 输入的是角度1
: 输入的是坐标
- 返回值:
1
- 到达指定位置0
- 未到达指定位置-1
- 错误
is_moving()
- 功能: 判断机器人是否正在移动
- 返回值:
1
正在移动0
没有移动-1
错误
4. JOG 模式及操作
jog_angle(joint_id, direction, speed)
- 功能: 控制机器人指定关节顺时针或者逆时针持续运动
- 参数:
joint_id
: 机器人关节ID,范围 1 - 7direction(int)
: 控制运动方向,输入“0”为负值运动,输入“1”为正值运动speed
: 运动速度,范围 1 ~ 100
jog_coord(coord_id, direction, speed)
- 功能: 控制机器人单坐标持续运动.
- 参数:
coord_id
: (int
) 坐标ID: 1~6 对应[x,y,z,rx,ry,rz]
direction
: (int
) 控制机械臂运动方向,‘0’-负值运动,‘1’-正值运动speed
: 运动速度,范围 1 ~ 100
jog_increment_angle(joint_id, increment, speed)
- 功能: 单关节角度增量控制
- 参数:
joint_id
: 机器人关节ID 1-7increment
: 根据当前指定关节的角度位置增量移动speed
: 运动速度,范围 1 ~ 100
jog_increment_coord(coord_id, increment, speed)
- 功能: 单坐标角度增量控制
- 参数:
joint_id
: 坐标id 1 - 6. 对应[x,y,z,rx,ry,rz]
increment
: 根据当前指定坐标的坐标位置增量移动speed
: 运动速度,范围 1 ~ 100
5. 坐标控制姿态偏差角
get_solution_angles()
- 功能: 获取零空间偏转角值
- 返回值:零空间偏转角度值
set_solution_angles(angle, speed)
功能: 设置零空间偏转角值
参数:
angle
: 输入关节1的角度范围,角度范围-90到90speed
: 运动速度,范围 1 ~ 100
6. 关节角度限位操作
get_joint_min_angle(joint_id)
- 功能: 获取指定关节的最小角度值
- 参数:
joint_id
: 关节ID ,范围 1-7
- 返回值:
float
最小的角度值
get_joint_max_angle(joint_id)
- 功能: 获取指定关节的最大角度值
- 参数:
joint_id
: 关节ID ,范围 1-7
- 返回值:
float
最大的角度值
set_joint_min(id, angle)
- 功能: 设置指定关节的最小角度值
- 参数:
id
: 关节ID ,范围 1-7angle
: 参考send_angle()接口中对应关节的限制信息,不得小于最小值
set_joint_max(id, angle)
- 功能: 设置指定关节的最大角度值
- 参数:
id
: 关节ID ,范围 1-7angle
: 参考send_angle()接口中对应关节的限制信息,不得大于最大值
7. 关节电机控制
is_servo_enable(servo_id)
- 功能: 检测关节连接状态
- 参数:
servo id
关节ID ,范围 1-7 - 返回值:
1
: 连接正常0
: 连接失败-1
: 错误
is_all_servo_enable()
- 功能: 检测所有关节连接状态
- 返回值:
1
: 连接正常0
: 连接失败-1
: 错误
set_servo_calibration(servo_id)
- 功能: 设置关节电机当前位置为零位位置
- 参数:
servo_id
: 关节 ID 范围 1 - 7
release_servo(servo_id)
- 功能: 设置指定关节电机掉使能,使电机处于放松状态
- 参数:
servo_id
: 关节 ID 范围 1 - 7
- 返回值:
1
: 放松成功0
: 放松失败-1
: 错误
focus_servo(servo_id)
- 功能:: 设置指定关节电机使能,使电机处于锁定状态
- 参数:
servo_id
: 关节 ID 范围 1 - 7 - 返回值:
1
: 锁定成功0
: 锁定失败-1
: 错误
set_break(joint_id, value)
- 功能: 设置指定关节电机的刹车状态
- 参数:
joint_id
: 关节 ID 范围 1 - 7value
: int. 0 - 关闭刹车, 1 - 打开刹车
- 返回值: 0 : 失败; 1 : 成功
get_servo_speeds()
- 功能::获取所有关节电机的运动速度
- 返回值: 单位为 step/s
get_servo_currents()
- 功能::获取所有关节电机的电流
- 返回值: 0 ~ 5000 mA
get_servo_status()
- 功能::获取所有关节电机的状态
- 返回值: 0 - 正常. 1 - 异常
servo_restore(joint_id)
- 功能::清除指定关节电机的异常状态
- 参数:
joint_id
: int. 关节 ID 范围 1 - 7
8. 机械臂末端IO控制
set_digital_output(pin_no, pin_signal)
- 功能: 设置IO状态
- 参数
pin_no
(int): IO引脚。 范围 1 - 2pin_signal
(int): 0 / 1
get_digital_input(pin_no)
- 功能: 获取IO状态
- 参数:
pin_no
(int) IO引脚。 范围 1 - 2 - 返回值: 0 / 1
9. 机械臂末端夹爪控制
set_gripper_state(flag, speed, _type_1=None)
功能:: 设置夹爪状态
参数:
flag (int)
: 0 - 打开 1 - 关闭, 254 - 放松speed (int)
: 运动速度 1 ~ 100_type_1 (int)
: 夹爪类型1
: 自适应夹爪 (默认)
set_gripper_value(gripper_value, speed, gripper_type=None)
功能:: 设置夹爪的值
参数:
gripper_value (int)
: 0 ~ 100speed (int)
: 1 ~ 100gripper_type (int)
:1
: 自适应夹爪 (默认)
set_gripper_calibration()
- 功能:: 设置夹爪当前位置为零位位置
set_gripper_enabled(value)
- 功能:: 设置自适应夹爪状态
- 参数:
value
1: 使能 0: 放松
set_gripper_mode(mode)
- 功能:: 设置夹爪模式
- 参数:
value
:- 0: 透传模式
- 1: 正常模式
get_gripper_mode()
- 功能:: 获取夹爪模式
- 返回值:
- 0: 透传模式
- 1: 正常模式
init_electric_gripper()
- 功能:: 初始化电动夹爪,初次通电使用电动夹爪之前需要调用此接口进行初始化
set_electric_gripper(mode)
- 功能:: 设置电动夹爪模式
- 参数:
mode
:- 0: 闭合夹爪
- 1: 张开夹爪
10. 机械臂末端按钮以及LED功能
is_btn_clicked()
- 功能:: 获取末端按钮状态
- 返回值:
- 0: 未按下
- 1: 处于按下状态
set_color(r, g, b)
功能:: 设置末端LED灯颜色
参数:
r (int)
: 0 ~ 255g (int)
: 0 ~ 255b (int)
: 0 ~ 255
11. 拖动示教
drag_teach_save()
- 功能: 放松所有关节并且开始录制所有关节的运动轨迹。注意:为了显示最佳运动效果,录制时间不应超过90秒
drag_teach_pause()
- 功能: 录制暂停
drag_teach_execute()
- 功能: 开始执行录制的轨迹,只执行一次
drag_teach_clean()
- 功能: 清除保持的录制信息
12. 笛卡尔空间坐标参数设置
set_tool_reference(coords)
- 功能: 设置工具坐标系。
- 参数:
coords
: (list
) [x, y, z, rx, ry, rz]. - 返回值: NULL
get_tool_reference()
- 功能: 获取工具坐标系
- 返回值:
oords
: (list
) [x, y, z, rx, ry, rz]
set_world_reference(coords)
- 功能: 设置世界坐标系.
- 参数:
coords
: (list
) [x, y, z, rx, ry, rz]. - 返回值: NULL
get_world_reference()
- 功能: 获取世界坐标系.
- 返回值:
list
[x, y, z, rx, ry, rz].
set_reference_frame(rftype)
- 功能: 设置基坐标系.
- 参数:
rftype
: 0 - 基坐标 1 - 工具坐标.
get_reference_frame()
- 功能: 获取基坐标系.
- 返回值:
0
- 基坐标1
- 工具坐标.
set_movement_type(move_type)
- 功能: 设置移动类型.
- 参数:
move_type
: 1 - 直线运动, 0 - 关节运动.
get_movement_type()
- 功能: 获取移动类型.
- 返回值:
1
- 直线运动0
- 关节运动
set_end_type(end)
- 功能: 设置末端坐标系
- 参数:
end (int)
:0
- 法兰,1
- 工具
get_end_type()
- 功能: 获取末端坐标系
- 返回值:
0
- 法兰1
- 工具
13. 圆弧运动
write_move_c(transpoint, endpoint, speed)
- 功能: 圆弧轨迹运动
- 参数:
transpoint(list)
:圆弧经过点坐标endpoint (list)
:圆弧结束点坐标speed(int)
: 1 ~ 100
14. 底座IO控制
set_basic_output(pin_no, pin_signal)
- 功能::设置底座IO输出状态
- 参数:
pin_no
(int
) 引脚端口号, 范围 1 ~ 6pin_signal
(int
): 0 - 低电平. 1 - 高电平
get_basic_input(pin_no)
- 功能: 读取底座IO输入状态
- 参数:
pin_no
(int
) 引脚端口号, 范围 1 ~ 6
- 返回值: 0 - 低电平. 1 - 高电平