API 使用说明
API(Application Programming Interface),即应用程序接口函数,是一些预先定义好的函数。在使用下列函数接口的时候请先在开头导入我们的 API 库,即输入下方代码,否则无法运行成功:
#适用于myCobot、mechArm系列
from pymycobot.mycobot import MyCobot
#适用于myPalletizer系列
from pymycobot.mypalletizer import MyPalletizer
#适用于myBuddy系列
from pymycobot.mybuddy import MyBuddy
# 适用于myArm
from pymycobot.myarm import MyArm
1. 系统状态
1.1 get_system_version()
- 功能: 获取固件版本
- 参数: 无
- 返回值: 无
2. 总体状况
2.1 power_on()
功能: Atom 打开通信(默认为打开)
返回值: 无
2.2 power_off()
功能: Atom 关闭通信
返回值: 无
2.3 is_power_on()
功能: 判断机械臂是否通电
返回值:
- 1- 机械臂已通电
- 0 - 机械臂已断电
- -1- 错误
2.4 release_all_servos()
- 功能: 设置机械臂为自由移动模式(能手动自由摆动机械臂)
- 返回值: 无
2.5 is_controller_connected()
功能: 判断是否与 Atom 连接
返回值:
- 1- 已连接
- 0 - 未连接
- -1- 错误
2.6 read_next_error()
Fuction: 机械臂错误检测
返回值:
- 0- 无异常
- 1 - 通讯中断
- 2 - 通讯不稳定
- 3 - 舵机异常
2.7 set_fresh_mode(mode)
- Fuction: 设置插补/刷新运动模式
- 参数:
- mode – int
1:执行第一个指令 0:按序执行指令
- mode – int
- 返回值: 无
2.8 get_fresh_mode()
Fuction: 查询插补/刷新运动模式
返回值:
- 0:按序执行指令
- 1: 执行第一个指令
2.9 set_free_mode(mode)
- Fuction: 设置自由模式
- 参数:
- mode – int
- 0 - 关闭
- 1 - 打开
- mode – int
- 返回值: 无
2.10 is_free_mode()
Fuction: 检查是否为自由模式
返回值:
- 0 - 否
- 1 - 是
3. 输入程序控制模式(MDI 模式
3.1 get_angles()
- 功能: 获取所有关节角度
- 返回值:
list
一个浮点值的列表代,表示所有关节的角度
3.2 send_angle(id, degree, speed)
功能: 发送指定的单个关节运动至指定的角度
参数:
id
: 代表机械臂的关节,六轴有六个关节,四轴有四个关节,有特定的表示方法 关节一的表示法:Angle.J1.value
。(也可以用数字 1-6 来表示)degree
: 表示关节的角度speed
:表示机械臂运动的速度,范围 0~100
3.3 send_angles(degrees, speed)
- 功能: 发送所有角度给机械臂所有关节
- 参数:
degrees
: (List[float])包含所有关节的角度 ,六轴机器人有六个关节所以长度为 6,四轴长度为 4,表示方法为:[20,20,20,20,20,20]speed
: 表示机械臂运动的速度,取值范围是 0-100
3.4 get_coords()
功能: 获取当前坐标和姿态
返回值:
list
包含坐标和姿态的列表:- 六轴:长度为 6,
[x, y, z, rx, ry, rz]
- 四轴:长度为 4,
[x, y, z, rx]
- 六轴:长度为 6,
3.5 send_coord(id, coord, speed)
功能: 发送单个坐标值给机械臂进行移动
参数:
id
:代表机械臂的坐标,六轴有六个坐标,四轴有四个坐标,有特定的表示方法 X 坐标的表示法:Coord.X.value
,也有简易的表示方法:如 X 轴可以填写 1,Y 填写 2,以此类推coord
: 输入您想要到达的坐标值speed
: 表示机械臂运动的速度,范围是 0-100
3.6 send_coords(coords, speed, mode)
- 功能: 发送整体坐标和姿态,让机械臂头部从原来点移动到您指定点
- 参数:
coords
:- 六轴:[x,y,z,rx,ry,rz]的坐标值,长度为 6
- 四轴:[x,y,z,rx]的坐标值,长度为 4
- speed: (
int
) 表示机械臂运动的速度,范围是 0-100 - mode: (
int
): 取值限定 0 和 1- 0 表示机械臂头部移动的路径为非线性,即随机规划路线,只要机械臂头部以保持规定的姿态移动到指定点即可。
- 1 表示机械臂头部移动的路径为线性的,即智能规划路线让机械臂头部以直线的方式移动到指定点.
3.7 is_in_position(data, flag)
- 功能: 判断机器人有没有到达指定的位置
- 参数:
data
: 您给出的一组数据可以是角度也可以是坐标值,如:[10,20,20,10,20,10]flag
: 数据类型(取值范围 0 或 1)- 0: 表示给入的数值是角度值
- 1: 表示给入的数值是坐标值
- 返回值:
- 1 - 已到达
- 0 - 未到达
- -1 - 错误
3.8 is_moving()
- 功能: 判断机械臂有没有移动
- 返回值:
- 1 正在移动
- 0 没有移动
- -1 错误
3.9 pause()
- 功能: 让机械臂暂停当前运动
- 返回值: 无.
3.10 is_paused()
- 功能: 判断机械臂是否为暂停状态
- 返回值:
- 1 - 已经暂停
- 0 - 没有暂停
- -1 - 错误
3.11 resume()
- 功能: 让机械臂恢复之前所设置的运动
- 返回值: 无
3.12 stop()
- 功能: 让机械臂停止所有运动
- 返回值: 无
3.13 get_joint_min_angle(joint_id)
- 功能: 获取指定关节最小能运行到的角度
- Parameter: 范围为 1-6
- 返回值: 度数
3.14 get_joint_max_angle(joint_id)
- 功能: 获取指定关节最大能运行到的角度
- Parameter: 范围为 1-6
- 返回值: 度数
3.15 set_joint_min(id,angle)
功能: 设置指定关节最小能运行到的角度
参数:
id
: (int
) 1-6.angle
: 0 - 180.
- 返回值: 无
3.16 set_joint_max(id,angle)
- 功能: 设置指定关节最大能运行到的角度
- Parameter:
id
: (int
) 1-6.angle
: 0 - 180
- 返回值: 无
4. JOG Mode and Operation
4.1 jog_angle(joint_id, direction, speed)
功能: 控制机器人按照指定的角度持续移动
参数:
joint_id
: (int
) 1 ~ 6direction
: 主要控制机器臂移动的方向,给入 0 为负值移动,给入 1 为正值移动speed
: 0 ~ 100
4.2 jog_coord(coord_id, direction, speed)
功能: 控制机器人按照指定的坐标或姿态值持续移动
参数:
coord_id
: (int
) 1 ~ 6,代表机械臂的关节,按照关节 id 给入 1~6 来表示direction
: 主要控制机器臂移动的方向,给入 0 为负值移动,给入 1 为正值移动speed
: 0 ~ 100
4.3 jog_increment(joint_id,angle,speed)
- 功能: 步进模式,使运动角度以给定的增量运行
- 参数:
joint_id
: (int
) 1-6,代表机械臂的关节,按照关节 id 给入 1~6 来表示angle
: 增量范围speed
: 0 ~ 100
- 返回值: 无
5. 电机控制
5.1 set_encoder(joint_id, encoder)
- 功能: 发送指定的单个关节运动至指定的电位值
- 参数:
joint_id
: (int
) 1 ~ 6,代表机械臂的关节,六轴机器人有六个关节所以长度为 6,四轴长度为 4,有特定的表示方法, 关节一的表示法:Angle.J1.value
(也可以用数字 1-6 来表示)encoder
: 表示机械臂的电位值,取值范围是 0 ~ 4096
5.2 get_encoder(joint_id)
功能: 获取机械臂指定的单个关节的电位值
参数:
joint_id
: (int
) 1 ~ 6,代表机械臂的关节,六轴机器人有六个关节所以长度为 6,四轴长度为 4,有特定的表示方法, 关节一的表示法:Angle.J1.value
(也可以用数字 1-6 来表示)- 返回值:
encoder
: 表示机械臂的电位值,取值范围是 0 ~ 4096
5.3 set_encoders(encoders, speed)
功能: 发送电位值给机械臂所有关节
参数:
encoders
: 表示机械臂的电位值,取值范围是 0 ~ 4096,六轴长度为 6,四轴长度为 4,表示方法为:[2048,2048,2048,2048,2048,2048]sp
: 表示机械臂运动的速度,取值范围是 0-100
5.4 get_encoders()
功能: 获取机械臂所有关节的电位值
返回值:包含机械臂所有关节电位值的列表 (
list
)
6. 伺服控制
6.1 is_servo_enable(servo id)
- 功能: 判断舵机是否连接
- Parameter: 从 1-6
- 返回值:
1
: enabled0
: not enabled-1
: error
6.2 is_all_servo_enable()
- 功能: 判断机器人的所有关节是否连通
- 返回值:
1
: 连通0
: 不连通-1
: 错误
6.3 release_servo(servo_id)
- 功能: 放松指定的关节
- Parameter: 范围 1-6
- 返回值:
1
: 放松0
: 未放送-1
: 错误
6.4 set_servo_data(servo_no, data_id, value)
功能: 设置舵机指定地址的数据参数
参数:
servo_no
: 舵机的序列号,按照关节 id 给入 1 - 6data_id
: 数据地址value
: 取值范围 0 - 4096
- 返回值: 无
6.5 get_servo_data(servo_no, data_id)
功能: 读取舵机指定地址的数据参数。
参数:
servo_no
: 各个舵机的序列号,按照关节 id 给入 1 - 6data_id
: 数据地址
返回值: 数据参数值,范围 0-4096
6.6 set_servo_calibration(servo_no)
- 功能: 校准指定关节,设置当前位置为角度零点,对应电位值为 2048
- 参数:
servo_no
: 机械臂的指定关节,1 - 6。
- 返回值: 无
6.7 focus_servo(servo_id)
- 功能: 给指定关节上电
- 参数:
servo_id
: 1 ~ 6 - 返回值: 无
6.8 joint_brake(joint_id)
- 功能: 在关节运动的状态下使其停止运动,缓冲距离与现有速度正相关
- 参数:
joint_id
: 机械臂的指定关节,范围为 1~6 - 返回值: 无
6.9 get_servo_speeds()
- 功能: 获得关节运行速度
- 返回值:
list
每个关节的运行速度
6.10 get_servo_currents()
- 功能: 获得关节当前运行速度
- 返回值:
list
每个关节的速度
6.11 get_servo_voltages()
- 功能: 获得关节电压
- 返回值:
list
每个关节的电压
6.12 get_servo_temps()
- 功能: 获得关节的温度
- 返回值:
list
每个关节的温度
6.13 get_servo_status()
- 功能: 获得关节状态
- 返回值:
list
每个关节的状态
6.14 get_servo_last_pdi(id)
- 功能: 获取修改前单个舵机的 pdi 值
- 返回值: 关节的 pdi 值
7. Atom IO
7.1 set_pin_mode(pin_no, pin_mode)
- 功能: 设置 atom 中指定引脚的状态模式
- 参数:
pin_no
(int): 引脚号pin_mode
(int): 0 - 输入, 1 - 输出, 2 - 上拉输入返回值: 无
7.2 set_digital_output(pin_no, pin_signal)
- 功能: 设置末端引脚号的工作状态
参数
pin_no
(int): 设备末端标注的编号仅取数字部分pin_signal
(int): 输入 0 表示设置为运行状态,输入 1 表示停止状态
返回值: 无
7.3 get_digital_input(self, pin_no)
- 功能: 获取末端引脚号的工作状态
- 参数:
pin_no
(int) 表示机械臂末端的具体引脚号 - 返回值: 当返回的值为 0 表示在工作状态运行,1 表示停止状态
7.4 set_pwm_output(channel, frequency, pin_val)
- 功能: 脉宽调制控制(pwmS)
- 参数:
channel
(int
): 机械臂顶部的具体引脚号frequency
(int
): 时钟频率pin_val
(int
): 占空比 0~256;128 为 50%
- 返回值: 无
8. 夹爪控制
8.1 set_eletric_gripper(mode)
- 功能: 设置夹爪模式(仅作用于 350)
- 参数:
1
: 表示夹爪合拢状态0
: 表示夹爪打开状态。
- 返回值: 无
8.2 init_eletric_gripper()
- 功能: 初始化电动夹爪
- 返回值: 无
8.3 set_gripper_mode(mode)
- 功能: 设置夹爪模式
- 参数:
1
: 串口模式0
: 透传模式
- 返回值: 无
8.4 get_gripper_mode(mode)
- 功能: 获取夹爪状态
- 返回值:
1
: 串口模式0
: 透传模式
8.5 is_gripper_moving()
功能: 判断夹爪是否在移动
返回值:
0
: 不动1
: 正在移动-1
: 错误数据
8.6 set_gripper_value(value, speed, gripper_type=无)
- 功能: 让夹爪以指定的速度转动到指定的位置
- 参数说明:
value
: 表示夹爪所要到达的位置,取值范围 0~256speed
: 表示以多少的速度转动,取值范围 0~1000gripper_type
: 夹爪类型,默认为自适应夹爪1
: 自适应夹爪3
: 平行钳口4
: 柔性夹爪
- 返回值: 无
8.7 get_gripper_value(gripper_type=无)
- 功能: 获取夹爪的当前位置数据信息
- 参数说明:
gripper_type
: 夹爪类型,默认为自适应夹爪1
: 自适应夹爪3
: 平行钳口4
: 柔性夹爪
- 返回值: 夹爪数据信息
8.8 set_gripper_calibration()
- 功能: 设置夹爪初始化位置,设置当前位置为 2048
- 返回值: 无
8.9 set_gripper_state(flag, speed, _type=无)
- 功能: 让夹爪以指定的速度进入到指定的状态
- 参数说明:
flag
: 1 表示夹爪合拢状态,0 表示夹爪打开状态。speed
: 表示以多快的速度达到指定的状态,取值范围 0~100_type
: 夹爪类型,默认为自适应夹爪1
: 自适应夹爪2
: 五指灵活夹爪3
: 平行钳口4
: 柔性夹爪
- 返回值: 无
9. Atom RGB 控制
9.1 set_color(r, g, b)
- 功能: 设置 RGB 灯光面板的颜色
- 参数:
R
: 0-255G
: 0-255B
: 0-255
- 返回值: 无
10. 坐标设置
10.1 set_tool_reference(coords)
- 功能: 设置工具坐标系。
参数:
coords
: (list
) [x, y, z, rx, ry, rz].
Return:无
10.2 set_world_reference(coords)
- 功能: 设置世界坐标系。
- 参数:
coords
: (list
) [x, y, z, rx, ry, rz].
- Return:无
10.3 get_world_reference()
功能: 获取世界坐标系
Return:
list
[x, y, z, rx, ry, rz].
10.4 set_reference_frame(rftype)
功能: 设置基坐标系
参数:
rftype
: 0 - 基坐标(默认) 1 - 世界坐标
Return:无
10.5 get_reference_frame()
功能: 获取基坐标系
Return: 0 - 基坐标 1 - 工具坐标.
10.6 set_movement_type(move_type)
功能: 设置移动类型
参数:
move_type
: 1 - movel, 0 - moveJ.
Return:无
10.7 get_movement_type()
功能: 获取移动类型
Return: 1 - movel, 0 - moveJ.
10.8 set_end_type(end)
- 功能: 设置末端坐标系
- 参数:
end
: 0 - 法兰(默认) 1 - 工具
- Return:无
10.9 get_end_type()
功能: 获取末端坐标系
Return: 0 - 法兰(默认) 1 - 工具
10.10 get_tool_reference()
功能: 获取工具坐标系
Return:
coords
: (list
) [x, y, z, rx, ry, rz]
11. 基本 IO 控制
11.1 get_basic_input(pin_no)
- 功能: 获取底部引脚号的工作状态
- 参数:
pin_no
(int
) 引脚号- 返回值:
0
: 工作状态1
: 停止状态
11.2 set_basic_output(pin_no, pin_signal)
功能: 设置底部引脚号的工作状态。
参数:
pin_no
(int
) 引脚号pin_signal
(int
): 输入 0 表示设置为运行状态,输入 1 表示停止状态