Skip to content
iWFEIPublic
forked from sjyylml/pyAgxArm

About

给写了mit控制,实现了重力补偿

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

机械臂驱动包使用说明

EN

ubuntu18.04 ubuntu20.04 ubuntu22.04
Pass Pass Pass

Test:

python3.6 python3.8 python3.10
Pass Pass Pass
说明 文档
官方can模块的使用 can_user
各臂接口函数的详细说明 docs
nero机械臂使用pyAgxArm读取数据 First-TimeUserGuide(CAN)
机械臂DEMO demos
Nero力控模块开发文档 force_ctrl
CHANGELOG CHANGELOG
Q&A Q&A

1 驱动包安装方法

1.1 安装依赖

注: python-can版本应高于3.3.4

pip3 install python-can

1.2 安装 pyAgxArm

在Ubuntu24.04安装第三方pip包的方法

注意是否在conda环境里

which pip3
git clone https://github.com/agilexrobotics/pyAgxArm.git
cd pyAgxArm
pip3 install .

1.3 查看 pyAgxArm 包细节

pip3 show pyAgxArm

1.4 卸载 pyAgxArm

pip3 uninstall pyAgxArm

1.5 更新 pyAgxArm

git clone https://github.com/agilexrobotics/pyAgxArm.git
cd pyAgxArm
pip3 install .

2 激活通讯

系统激活can模块

详见:can_user

3 简单开始

读取关节角

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

4 Nero 力控模块(重力补偿)

本模块在 pyAgxArm 原有架构基础上,新增了 Nero 机械臂的 MIT 阻抗控制 和 基于 MuJoCo 逆动力学的实时重力补偿,支持零重力拖动、位置 PD 控制、柔顺控制等力控场景。

详细的架构设计、API 说明和调试指南请参考:Nero 力控模块开发文档

额外依赖

pip3 install mujoco numpy

零重力拖动示例

from 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()

Demo 脚本

# 零重力模式
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

注意事项

  • 本仓库为个人开源代码,建议等待官方测试通过后再使用

About

给写了mit控制,实现了重力补偿

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages