跳到主要内容

灵动示教臂Python SDK使用

1. 介绍

灵动Python SDK是一个用于控制六轴机械臂(带夹爪)的 Python 工具包。它提供了通过串口与机械臂通信、控制关节运动、操作夹爪以及读取状态信息的功能。

1.1 主要特性

  • 关节控制: 设置和读取六个关节的角度。

  • 夹爪控制: 控制夹爪的开合角度。

  • 力矩控制: 启用或禁用机械臂关节力矩,允许自由拖动或锁定位置。

  • 零点设置: 将机械臂当前位置设置为新的零点。

  • 状态读取: 获取关节角度、夹爪角度和按钮状态的实时数据。

  • 串口通信: 自动查找或指定串口进行连接。

  • 数据解析: 解析来自机械臂的反馈数据帧。

2. 安装

克隆灵动Python SDK库

git clone https://github.com/Xianova-Robotics/Alicia_duo_sdk.git
cd Alicia_duo_sdk

安装依赖

pip install pyserial
conda install -c conda-forge python-orocos-kdl
pip install -r requirements.txt

硬件连接

2.1 验证安装

连接好机械臂后,在终端运行以下代码:

cd ~/Alicia_duo_sdk/examples
python3 read_angles.py

若成功安装及配置,在终端可看到持续输出的机械臂关节角度、夹爪角度和按钮状态。按 Ctrl+C 退出程序。

2.2 故障排除

无法连接到机械臂 / 未找到可用串口:

  • 检查 USB 线是否牢固连接。

  • 确保机械臂已上电。

  • 确认您的用户有权限访问串口设备 (在 Linux 上,可能需要将用户添加到 dialout 组,例如 sudo usermod -a -G dialout $USER,然后重新登录)。

  • 如果 SDK 无法自动找到端口,您可以在初始化 ArmController 时手动指定端口,例如:

# filepath: examples/your_script.py
# ...existing code...
# controller = ArmController() # 自动搜索
controller = ArmController(port="/dev/ttyUSB0") # Linux 示例
# controller = ArmController(port="COM3") # Windows 示例
# ...existing code...
  • 权限错误 (Permission denied):

    • 在 Linux 上,尝试使用 sudo python3 your_script.py 运行,或者参照上述方法将用户添加到 dialout 组。

3. 示例代码说明

3.1 read_angles.py

read_angles.py可用于读取示教臂当前的关节角度和夹爪角度。

read_angles.py示例实现连接到机械臂并持续读取和输出所有六个关节的角度(单位:度)、夹爪的开合角度(单位:度)以及夹爪上两个按钮的状态。同时,包含如何启用调试模式以获取更详细的日志输出。

  • 主要功能:

    • 初始化 ArmController (可带 debug_mode=True)。

    • 连接到机械臂 (controller.connect())。

    • 循环读取完整的关节状态 (controller.read_joint_state())。

    • JointState 对象中提取角度和按钮信息。

    • 将弧度转换为度 (controller.RAD_TO_DEG)。

    • 优雅地处理 KeyboardInterrupt (Ctrl+C) 以断开连接。

    • 断开与机械臂的连接 (controller.disconnect())。

3.2 alicia_leader_zero_calibration.py

请慎重运行该代码!!!

示教臂调零在出厂时已经调好,若非特殊情况,请勿运行该代码。

重新设置机械臂的初始位置,需按照如下姿态摆放示教臂后,连接电源,Type C并开按下教臂电源按钮。

1处关节保持垂直,2处关节保持45度角,3处刻度线对准,4处保持按钮朝上。

在两个按键没有按下的情况下(无蓝灯亮起),运行以下代码:

cd ~/alicia_ws/src/examples/
python3 alicia_leader_zero_calibration.py

成功调零后示教臂进入满力矩状态(姿态固定),需按下右侧按钮两次解开锁定状态。