6.1 Python API
6.1.2 API使用说明
API(ApplicationProgrammingInterface),也称为应用程序编程接口函数,是预定义的函数。 使用以下功能接口时,请在开始时输入以下代码导入我们的API库,否则无法成功运行:
# 例子
from pymycobot import Mercury
ml = Mercury('/dev/left_arm')
mr = Mercury('/dev/right_arm')
ml.power_on()
mr.power_on()
print(ml.get_angles())
print(mr.get_angles())
1.系统状态
get_system_version()
- 功能: 获取系统版本
- 返回值: 系统版本
get_robot_type()
功能: 获取机器人id
返回值: 定义规则:实际机器型号。 例如水星A1型号为4500
get_atom_version()
- 功能: 获取最终版本号
- 返回值: 结束参数(
float
)
get_robot_status()
- 功能: 上位机错误安全状态
- 返回值: 0 - 正常。 其他 - 机器人触发碰撞检测
2.总体状况
power_on()
功能: atom开放通讯(默认开放)
- 注意: 执行关机或按紧急停止后,需要 7 秒才能上电并恢复供电
返回值:
1
- 开机完成。0
- 开机失败
power_off()
功能: 机械臂断电
返回值:
1
- 开机完成。0
- 开机失败
is_power_on()
功能: 判断机械臂是否通电
返回值:
1
: 开机0
:关闭电源-1
: 错误
release_all_servos()
- 功能: 释放所有机械臂
- 注意:关节禁用后,需在1秒内启用才能控制
- 参数:
data
(可选):放松关节的方式。 默认为阻尼模式,如果提供了'data'参数,则可以指定为非阻尼模式(1-Undamping)。 - 返回值:
1
- 发布完成。0
- 释放失败
focus_all_servos()
功能: 打开机器人扭矩输出
- 返回值:
1
: 完成0
:失败-1
: 错误
- 返回值:
3.MDI模式及操作
get_angles()
- 功能: 获取所有关节的度数
- 返回值:
list
所有级别的浮点列表
get_angle()
- 功能: 获取单关节角度
- 参数: joint_id (int): 1 ~ 7
- 返回值: 关节对应的角度数组
send_angle(id, degree, speed)
- 功能: 向机器人手臂发送一度关节
参数:
id
:关节id(genre.Angle
),范围 int 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 |
身体关节的活动范围。 第 11 关节是下巴摄像头。 第 12 关节是颈部。 第13关节是腰椎关节 | 关节id | 角度 | | ---- | ---- | | 11 | -60 ~ 0 | | 12 | -138 ~ 188 | | 13 | -118 ~ 118 |
speed
:机械臂运动速度和幅度 1~100
send_angles(angles, speed)
- 功能: 将所有角度发送到机械臂的所有关节
- 参数:
angles
:角度值列表(List[float]
),长度 7速度
: (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: : 坐标值列表
[x,y,z,rx,ry,rz]
,length6 - 速度
(int)
: 1 ~ 100
- coords: : 坐标值列表
pause()
- 功能: 控制指令暂停核心并停止所有运动指令
is_paused()
- 功能: 检查程序是否暂停了移动命令
- 返回值:
1
- 暂停0
- 未暂停-1
- 错误
resume()
- 功能: 恢复机器人运动并完成之前的命令
stop()
- 功能: 停止机器人的所有动作
- 返回值:
1
- 停止0
- 不停止-1
- 错误
is_in_position(data, flag)
- 功能 :判断是否在位。
- 参数:
- data:提供一组数据,可以是角度或坐标值。 如果输入角度长度范围为7,如果输入坐标值长度范围为6
- 标志数据类型(值范围0或1)
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
为正值运动速度
:1 ~ 100
jog_coord(coord_id, direction, speed)
- 功能: 点动控制坐标。
- 参数:
coord_id
: (int
) 机械臂坐标范围:1~6direction
:(int
) 控制机械臂运动方向,0
- 负值运动,1
- 正值运动速度
:1 ~ 100
jog_increment_angle(joint_id, increment, speed)
- 功能: 单关节角度增量控制
- 参数:
joint_id
:1-7increment
:根据当前位置角度增量移动速度
:1 ~ 100
jog_increment_coord(coord_id, increment, speed)
- 功能: 单关节角度增量控制
- 参数:
joint_id
:轴ID 1 - 6。increment
:基于当前位置坐标的增量运动速度
:1 ~ 100
5.坐标控制姿态偏差角
get_solution_angles()
- 功能: 获取零空间偏转角度值
- 返回值:零空间偏转角度值
set_solution_angles(angle, speed)
功能: 获取零空间偏转角度值
参数:
angle
: 输入关节1的角度范围,角度范围-90到90速度
: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-7)angle
:参考send_angle()接口中对应关节的限制信息,不得小于最小值
set_joint_max(id, angle)
- 功能: 设置最小关节角度限制
- 参数:
id
:输入关节 ID(范围 1-7)angle
:参考send_angle()接口中对应关节的限制信息,不得大于最大值
7.关节电机控制
is_servo_enable(servo_id)
- 功能: 检测关节连接状态
- 参数:
舵机id
1-7 - 返回值:
1
: 连接成功0
:未连接-1
: 错误
is_all_servo_enable()
- 功能: 检测所有关节连接的状态
- 返回值:
1
: 连接成功0
:未连接-1
: 错误
set_servo_calibration(servo_id)
- 功能: 校准关节执行器当前位置为角度零点
- 参数:
servo_id
:1 - 7
release_servo(servo_id)
- 功能: 设置指定关节扭矩输出关闭
- 参数:
servo_id
: 1 ~ 7
- 返回值:
1
: 释放成功0
: 释放失败-1
: 错误
focus_servo(servo_id)
- 功能:设置指定关节扭矩输出开启
- 参数:
servo_id
:1 ~ 7 - 返回值:
1
:聚焦成功0
:焦点失败-1
: 错误
set_break(joint_id, value)
- 功能: 设置断点
- 参数:
joint_id
:int。 关节 ID 1 - 7值
:整数。 0 - 禁用,1 - 启用
- 返回值: 0:失败; 1:成功
get_servo_speeds()
- 功能:获取所有关节的运动速度
- 返回值: 单位step/s
get_servo_currents()
- 功能:获取所有关节的运动电流
- 返回值: 0 ~ 5000 mA
get_servo_status()
- 功能:获取所有关节的运动状态
- 返回值:值为0表示没有错误
servo_restore(joint_id)
- 功能:清除关节异常
- 参数:
joint_id
:int。 关节 ID 1 - 7
8.机械臂端IO控制
set_digital_output(pin_no, pin_signal)
- 功能: 设置IO状态
- 参数
pin_no
(int): PIN 码pin_signal
(int): 0 / 1
get_digital_input(pin_no)
- 功能: 读取IO状态
- 参数:
pin_no
(int) - 返回值:信号
9. 机械臂末端夹具控制
set_gripper_state(flag, speed, _type_1=None)
功能:自适应夹具启用
参数:
flag (int)
: 0 - 打开 1 - 关闭,254 - 释放速度(整数)
:1 ~ 100_type_1 (int)
:1
:自适应夹具(默认状态为 1)2
: 一只灵活的手,有 5 个手指3
:平行夹具4
:柔性夹具
set_gripper_value(gripper_value, speed, gripper_type=None)
功能:设置夹具值
参数:
gripper_value (int)
: 0 ~ 100speed(int)
:1 ~ 100gripper_type (int)
:1
:自适应夹具(默认状态为 1)2
: 一只灵活的手,有 5 个手指3
:平行夹具4
:柔性夹具
set_gripper_calibration()
- 功能:将夹具的当前位置设置为零
set_gripper_enabled(value)
- 功能:自适应夹具启用设置
- 参数:
value
1:启用 0:释放
set_gripper_mode(mode)
- 功能:设置夹具模式
- 参数:
mode
:- 0:透传模式
- 1:正常模式
get_gripper_mode()
- 功能:获取夹具模式
- 返回值:
- 0:透传模式
- 1:正常模式
init_electric_gripper()
- 功能:: 初始化电动夹爪,初次通电使用电动夹爪之前需要调用此接口进行初始化
set_electric_gripper(mode)
- 功能:: 设置电动夹爪模式
- 参数:
mode
:- 0: 闭合夹爪
- 1: 张开夹爪
10.机械臂末端的按钮功能
is_btn_clicked()
- 功能:获取机械臂末端按钮的状态
- 返回值:
- 0:没有点击
- 1:点击
set_color(r, g, b)
功能:设置机械臂末端灯颜色
参数:
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(coords)
- 功能: 获取工具坐标系。
- 返回值:
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 - movel,0 - moveJ。
get_movement_type()
- 功能: 获取运动类型。
- 返回值:
1
- 移动0
- moveJ
set_end_type(end)
- 功能: 获取结束坐标系
- 参数:
end (int)
:0
- 法兰,1
- 工具
get_end_type()
- 功能: 获取结束坐标系
- 返回值:
0
- 法兰1
- 工具
13.圆周运动
write_move_c(transpoint, endpoint, speed)
- 功能:圆弧轨迹运动
- 参数:
transpoint(list)
:经过点坐标的圆弧endpoint(list)
:圆弧端点坐标速度(int)
: 1 ~ 100
14.设置底层IO输入/输出状态
set_basic_output(pin_no, pin_signal)
- 功能:设置基本IO输出
- 参数:
pin_no
(int
) Pin 端口号,范围 1 ~ 6pin_signal
(int
):0 - 低。 1 - 高
get_basic_input(pin_no)
- 功能:设置基本IO输出
- 参数:
pin_no
(int
) Pin 端口号,范围 1 ~ 6pin_signal
(int
):0 - 低。 1 - 高
tool_serial_restore()
- 功能:485恢复出厂设置
tool_serial_ready()
- 功能: 设置485通讯
- 返回值: 0:未设置 1:设置完成
tool_serial_available()
- 功能: 设置485通讯
- 返回值: 0-正常 1-机器人触发碰撞检测
tool_serial_read_data()
- 功能: 读取固定长度数据。 读取之前,先读取缓冲区长度。 读取后数据将被清除
- 参数: data_len (int):要读取的字节数,范围1 ~ 45
- 返回值: 0:未设置 1:设置完成
tool_serial_write_data()
- 功能: 结束485发送数据,数据长度范围为1 ~ 45字节
- 返回值: 0-正常 1-机器人触发碰撞检测
tool_serial_flush()
- 功能: 清除485缓冲区
- 返回值: 0-正常 1-机器人触发碰撞检测
tool_serial_peek()
- 功能: 查看缓冲区中的第一条数据,数据不会被清除
- 返回值: 1字节数据
tool_serial_set_baud(baud)
- 功能: 设置485波特率,默认115200
- 参数:波特率(int):波特率
- 返回值: NULL
tool_serial_set_timeout(max_time)
- 功能: 设置 485 超时时间(以毫秒为单位),默认 30ms
- 参数
max_time
: (int): 超时
- 返回值: NULL