Skip to main content
控制机械臂,完成自动取放、定位和测试夹具操作。

导入

方法

方法参考

获取一个机械臂 Net

按名称和类型获取一个机械臂 Net 实例。
参数: 返回: 机械臂 Net 实例,带有下面列出的全部方法 该 Net 打开地址中带有相应 USB 序列号的那台机械臂。它还会读取机械臂的固件版本。arm.firmware_version 是形如 (2, 3, 5) 的元组;机械臂未报告版本时为 None

position()

获取机械臂当前位置。
返回: tuple[float, float, float] - (x, y, z) 坐标,单位毫米

move_to(x, y, z, timeout=15.0)

把机械臂移到绝对坐标,并阻塞等待。
参数: 抛出:
  • 目标超出工作空间范围时抛出 OutOfBoundsError。此时不会向机械臂发送任何内容。
  • 机械臂固件低于 V2.1.4,或机械臂未报告版本时,抛出 UnsupportedFirmwareError。此时不会向机械臂发送任何内容。
  • 机械臂上电后尚未归位时抛出 NotHomedError
  • 在超时时间内未到达目标位置时抛出 MovementTimeoutError

move_relative(dx=0, dy=0, dz=0, timeout=15.0)

相对当前位置移动。
参数: 返回: tuple[float, float, float] - 移动之后新的 (x, y, z) 位置 抛出:
  • 机械臂固件低于 V2.1.4,或机械臂未报告版本时,抛出 UnsupportedFirmwareError。此时不会向机械臂发送任何内容。
  • 当前位置加上偏移量超出工作空间范围时抛出 OutOfBoundsError。机械臂不会移动。
  • 机械臂上电后尚未归位时抛出 NotHomedError

go_home(timeout=20.0)

把机械臂移到归位位置(X=0、Y=300、Z=0)。机械臂到达归位位置时该方法才返回。机械臂上电后请先调用它,因为固件在归位之前拒绝运动。
抛出: 机械臂在 timeout 秒内没有到达归位位置时抛出 RuntimeError

enable_motor()

使能机械臂电机。

disable_motor()

禁用机械臂电机(机械臂会变成松弛状态)。

save_position()

重新标定机械臂。save_position() 发送 M889,它用机械臂的当前姿态替换已保存的标定。机械臂之后的每一次移动都基于这份标定计算。
只有当机械臂在物理上处于标定姿态时,才可以调用 save_position()。在其他任何姿态下调用它,之后的每一次移动都会有偏移。

get_full_position()

获取包含关节角度的完整位置。
返回: tuple[float, ...] - (x, y, z, e, a, b, c),其中 a、b、c 是关节角度 如果机械臂固件不报告关节角度,abcNone

末端执行器方法

软性夹爪

气动吸盘

激光模块

传送带方法

滑轨方法

实用方法

delay_ms(value) / delay_s(value)

向机械臂的命令队列中加入延时。

set_acceleration(acceleration, travel_acceleration, retract_acceleration=60)

设置打印、空程和回抽加速度,单位 mm/s^2。该方法发送 M204 P<acceleration> T<travel_acceleration> R<retract_acceleration>

set_module_type(module_type)

设置所安装的模块类型。

get_module_type()

获取当前检测到的模块类型。

示例

基本移动

取放操作

自动化测试定位

错误处理

受支持的硬件

异常

说明

  • 请始终使用上下文管理器(with 语句),以确保正确清理
  • 机械臂上电后请调用 go_home()。固件在归位之前拒绝运动。
  • move_to()move_relative() 需要机械臂固件 V2.1.4 或更高版本。Rotrics 在 V2.1.4 中交换了 X 轴和 Y 轴,因此更旧的固件在另一个坐标系中移动。
  • 移动超时错误表示机械臂没有到达。原因可能是有阻挡、范围内存在无法到达的目标,或者移动距离较长。移动距离较长时请传入更大的 timeout
  • 关节角度(a、b、c)使用机械臂的内部坐标系
  • 位置校验的默认容差是 0.5mm
  • 机械臂通过 USB VID/PID(0x0483:0x5740)自动检测
  • Box 只在扫描仪器时才会发现机械臂。扫描只探测具有该 USB ID 的端口,并且机械臂必须报告 USB 序列号。关于 LAGER_ARM_PROBE 设置,请参阅 检测
  • Dexarm 定义了大致的工作空间范围:X 为 -300 至 300 mm,Y 为 170 至 360 mm,Z 为 -140 至 100 mm。对于超出这些范围的目标,move_to()move_relative() 会抛出 OutOfBoundsError,与 lager arm CLI 的行为一致。move_to_blocking()move_to_gcode()fast_move_to() 不检查范围,也不检查固件版本。