Test:
| 说明 | 文档 |
|---|---|
| 官方can模块的使用 | can_user |
| 各臂接口函数的详细说明 | docs |
| nero机械臂使用pyAgxArm读取数据 | First-TimeUserGuide(CAN) |
| 机械臂DEMO | demos |
| Nero力控模块开发文档 | force_ctrl |
| CHANGELOG | CHANGELOG |
| Q&A | Q&A |
注: python-can版本应高于3.3.4
pip3 install python-can注意是否在conda环境里
which pip3git clone https://github.com/agilexrobotics/pyAgxArm.git
cd pyAgxArm
pip3 install .pip3 show pyAgxArmpip3 uninstall pyAgxArmgit clone https://github.com/agilexrobotics/pyAgxArm.git
cd pyAgxArm
pip3 install .详见:can_user
import time
from pyAgxArm import create_agx_arm_config, AgxArmFactory
cfg = create_agx_arm_config(robot="nero", comm="can", channel="can0")
robot = AgxArmFactory.create_arm(cfg)
# 创建通讯实例并打开读取线程
robot.connect()
while True:
ja = robot.get_joint_angles()
# 如果反馈数值不为None,因为刚运行程序时没有接收到数据,反馈值为None
if ja is not None:
print(ja.msg) # list
print(ja.hz, ja.timestamp)
time.sleep(0.005)# 200hz本模块在 pyAgxArm 原有架构基础上,新增了 Nero 机械臂的 MIT 阻抗控制 和 基于 MuJoCo 逆动力学的实时重力补偿,支持零重力拖动、位置 PD 控制、柔顺控制等力控场景。
详细的架构设计、API 说明和调试指南请参考:Nero 力控模块开发文档
pip3 install mujoco numpyfrom pyAgxArm.protocols.can_protocol.drivers.nero.force_ctrl import (
NeroForceController,
)
with NeroForceController(channel="can0", zero_gravity=True) as ctrl:
input("零重力模式,可以拖动机械臂。按 Enter 退出...")import numpy as np
from pyAgxArm.protocols.can_protocol.drivers.nero.force_ctrl import (
NeroForceController,
)
ctrl = NeroForceController(channel="can0", zero_gravity=False)
ctrl.start()
target = np.array([0.0, 0.3, -0.3, 0.5, 0.0, 0.0, 0.0])
ctrl.command_joint_pos(target)
input("位置保持中,按 Enter 退出...")
ctrl.stop()# 零重力模式
python -m pyAgxArm.demos.nero.force_ctrl_demo --channel can0 --mode zero_gravity
# 位置保持模式
python -m pyAgxArm.demos.nero.force_ctrl_demo --channel can0 --mode position
# 柔顺模式
python -m pyAgxArm.demos.nero.force_ctrl_demo --channel can0 --mode compliant- 本仓库为个人开源代码,建议等待官方测试通过后再使用