6.1 Python API

6.1.1 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-7 or 1-6
    • degree: 角度值(float)

    7轴版本手臂关节活动范围

关节id 角度
1 -165 ~ 165
2 -55 ~ 95
3 -165 ~ 165
4 -180 ~ 10
5 -165 ~ 165
6 -20 ~ 273
7 -180 ~ 180

6轴版本手臂关节活动范围

关节id 角度
1 -165 ~ 165
2 -55 ~ 95
3 -180 ~ 5
4 -165 ~ 165
5 -20 ~ 273
6 -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 or 6
    • 速度: (int) 1 ~ 100

get_base_coords()

  • 功能: 获取机器人Base坐标
  • 返回值: 坐标的浮点列表:[x, y, z, rx, ry, rz]

send_base_coord(axis, coord, speed)

  • 功能: 控制机械臂末端沿指定轴运动到目标位置
  • 参数:
    • axis:轴号,1-6对应[x, y, z, rx, ry, rz]
    • coord: 坐标值(float)
坐标id 范围
1 -328.03 ~ 554.71
2 -637.68 ~ 637.68
3 -206.52 ~ 751.37
4 -180 ~ 180
5 -180 ~ 180
6 -180 ~ 180
  • speed: (int) 1-100

send_base_coords(coords, speed, mode)

  • 功能::控制机械臂末端运动到指定坐标
  • 参数:
    • coords: : 坐标值列表 [x,y,z,rx,ry,rz],length6
    • 速度(int): 1 ~ 100

pause()

  • 参数:
    • 1 - 缓停
    • 0 - 急停
  • 功能: 控制指令暂停核心并停止所有运动指令

is_paused()

  • 功能: 检查程序是否暂停了移动命令
  • 返回值:
    • 1 - 暂停
    • 0 - 未暂停
    • -1 - 错误

resume()

  • 功能: 恢复机器人运动并完成之前的命令

stop()

  • 参数:
    • 1 - 缓停
    • 0 - 急停
  • 功能: 停止机器人的所有动作
  • 返回值
    • 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到7
    • direction(int):控制机械臂运动方向,输入0为负值运动,输入1为正值运动
    • 速度:1 ~ 100

jog_base_coord(coord_id, direction, speed)

  • 功能: 点动控制坐标。
  • 参数:
    • coord_id: (int) 机械臂坐标范围:1~6
    • direction:(int) 控制机械臂运动方向,0 - 负值运动,1 - 正值运动
    • 速度:1 ~ 100

jog_increment_angle(joint_id, increment, speed)

  • 功能: 单关节角度增量控制
  • 参数
    • joint_id:1-7 or 1-6
    • increment:根据当前位置角度增量移动
    • 速度: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 or 1-6)
  • 返回值float角度值

get_joint_max_angle(joint_id)

  • 功能: 读取最大关节角度
  • 参数:
    • joint_id:输入关节 ID(范围 1-7 or 1-6)
  • 返回值: float 角度值

set_joint_min(id, angle)

  • 功能: 设置最小关节角度限制
  • 参数:
    • id :输入关节 ID(范围 1-7 or 1-6)
    • angle:参考send_angle()接口中对应关节的限制信息,不得小于最小值

set_joint_max(id, angle)

  • 功能: 设置最小关节角度限制
  • 参数:
    • id :输入关节 ID(范围 1-7 or 1-6)
    • angle:参考send_angle()接口中对应关节的限制信息,不得大于最大值

7.关节电机控制

is_servo_enable(servo_id)

  • 功能: 检测关节连接状态
  • 参数:舵机id1-7 or 1-6
  • 返回值:
    • 1: 连接成功
    • 0:未连接
    • -1: 错误

is_all_servo_enable()

  • 功能: 检测所有关节连接的状态
  • 返回值:
    • 1: 连接成功
    • 0:未连接
    • -1: 错误

set_servo_calibration(servo_id)

  • 功能: 校准关节执行器当前位置为角度零点
  • 参数
    • servo_id:1 - 7 or 1-6

release_servo(servo_id)

  • 功能: 设置指定关节扭矩输出关闭
  • 参数
    • servo_id: 1 ~ 7 or 1-6
  • 返回值:
    • 1: 释放成功
    • 0: 释放失败
    • -1: 错误

focus_servo(servo_id)

  • 功能:设置指定关节扭矩输出开启
  • 参数servo_id:1 ~ 7 or 1-6
  • 返回值:
    • 1:聚焦成功
    • 0:焦点失败
    • -1: 错误

set_break(joint_id, value)

  • 功能: 设置断点
  • 参数
    • joint_id:int。 关节 ID 1 - 7 or 1-6
    • :整数。 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 or 1-6

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 ~ 100

    • speed(int):1 ~ 100

    • gripper_type (int):

      • 1:自适应夹具(默认状态为 1)

      • 2 : 一只灵活的手,有 5 个手指

      • 3:平行夹具

      • 4:柔性夹具

set_gripper_calibration()

  • 功能:将夹具的当前位置设置为零

set_gripper_enabled(value)

  • 功能:自适应夹具启用设置
  • 参数
    • value 1:启用 0:释放

set_gripper_mode(mode)

  • 功能:设置夹具模式
  • 参数
      • 0:透传模式
      • 1:正常模式

get_gripper_mode()

  • 功能:获取抓手模式
  • 返回值
    • 0:透传模式
    • 1:正常模式

10.机械臂末端的按钮功能

is_btn_clicked()

  • 功能:获取机械臂末端按钮的状态
  • 返回值
    • 0:没有点击
    • 1:点击

set_color(r, g, b)

  • 功能:设置机械臂末端灯颜色

  • 参数

    • r(int):0 ~ 255

    • g(int):0 ~ 255

    • b(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:2 - fusion 1 - movel,0 - moveJ。

get_movement_type()

  • 功能: 获取运动类型。
  • 返回值:
    • 2 - 速度融合
    • 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 ~ 6
    • pin_signal (int):0 - 低。 1 - 高

get_basic_input(pin_no)

  • 功能:设置基本IO输出
  • 参数
    • pin_no (int) Pin 端口号,范围 1 ~ 6
    • pin_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

6.1.2 底盘基础控制接口

API使用说明

# 示例
from pymycobot import ChassisControl

mc = ChassisControl()

# 获取电池电压
voltage = mc.get_power_voltage()
print(voltage)

# 设置底盘RGB灯带为绿色
mc.set_color(255, 0, 0)

get_power_voltage()

  • 功能: 获取电池电压。
  • 返回值: 电池电压(浮点型),单位:伏特

get_ultrasonic_value()

  • 功能: 获取所有超声波数据。
  • 返回值: 所有超声波数据列表,单位:毫米。

go_straight(speed)

  • 功能: 控制底盘前进。
  • 参数:
    • speed:(浮点型)底盘运动的速度,范围是0 ~ 1,单位:米/秒。

go_back(speed)

  • 功能: 控制底盘后退。
  • 参数:
    • speed:(浮点型)底盘运动的速度,范围是-1 ~ 0,单位:米/秒。

turn_left(speed)

  • 功能: 控制底盘向左旋转。
  • 参数:
    • speed:(浮点型)底盘运动的速度,范围是0 ~ 1,单位:米/秒。

turn_right(speed)

  • 功能: 控制底盘右旋转。
  • 参数:
    • speed:(浮点型)底盘运动的速度,范围是-1 ~ 0,单位:米/秒。

stop()

  • 功能: 停止运动。

set_color(r, g, b)

  • 功能: 设置底盘RGB灯带颜色。
  • 参数:
    • r (int):0 ~ 255
    • g (int):0 ~ 255
    • b (int):0 ~ 255

← 上一页 | 下一页 →

results matching ""

    No results matching ""