Go to file
xtkuang edb01463ff docs: move hardware guides into component directories
Keep the root README concise while documenting MotorService, the Modbus TCP PLC runtime, the motor stack, and AUBO cabinet IO next to their owning code.
2026-07-31 09:39:44 +08:00
.vscode Add Aubo arm support 2026-07-02 08:29:19 +08:00
assets feat: fix google test 2026-02-27 16:31:37 +08:00
cmake feat: add gRPC motor control over Modbus TCP 2026-07-30 15:09:07 +08:00
cmvr-es docs: move hardware guides into component directories 2026-07-31 09:39:44 +08:00
data refactor:Refactor all the code 2026-06-24 15:45:54 +08:00
dependency merge: resolve xtkuang_dev into dev 2026-07-27 17:47:30 +08:00
docs feat: add safe UME teleoperation framework 2026-07-31 08:48:04 +08:00
model feat: add safe UME teleoperation framework 2026-07-31 08:48:04 +08:00
protos feat: add safe UME teleoperation framework 2026-07-31 08:48:04 +08:00
python refactor:Refactor all the code 2026-06-24 15:45:54 +08:00
script merge: resolve xtkuang_dev into dev 2026-07-27 17:47:30 +08:00
scripts feat(collision): add collision primitive generation tools 2026-07-27 15:39:54 +08:00
test merge: resolve xtkuang_dev into dev 2026-07-27 17:47:30 +08:00
.aiignore fix: readme 2026-02-05 17:31:18 +08:00
.codex feat: add px 6ax gen3 as touch pressure sensor 2026-05-08 16:58:52 +08:00
.gitignore feat: complete QUIC edge integration 2026-07-24 12:35:04 +08:00
.gitmodules feat:add eye hand calibration and pose follow 2025-08-22 16:57:29 +08:00
CMakeLists.txt feat: add gRPC motor control over Modbus TCP 2026-07-30 15:09:07 +08:00
compile_commands.json feat: add px 6ax gen3 as touch pressure sensor 2026-05-08 16:58:52 +08:00
LICENSE feat:add eye hand calibration and pose follow 2025-08-22 16:57:29 +08:00
MUJOCO_LOG.TXT feat(collision): add collision primitive generation tools 2026-07-27 15:39:54 +08:00
README.md docs: move hardware guides into component directories 2026-07-31 09:39:44 +08:00
request.txt merge: resolve xtkuang_dev into dev 2026-07-27 17:47:30 +08:00

CMVR-ES

简介

CMVR-ES 工程。

安装

1. 拉取 Git 子模块

git submodule update --init --recursive

2. 安装系统依赖

# 基础工具
sudo apt-get update
sudo apt install -y build-essential cmake git pkg-config patchelf libboost-all-dev libssl-dev

# OpenCV
sudo apt install -y \
  libjpeg-dev libpng-dev libtiff-dev \
  libavcodec-dev libavformat-dev libswscale-dev \
  libv4l-dev libxvidcore-dev libx264-dev \
  libgtk-3-dev

# PulseAudio
sudo apt-get install libpulse-dev

# OpenGL
sudo apt-get install libgl1-mesa-dev

# GLFW
sudo apt-get install libglfw3-dev

# Assimp
sudo apt-get install libassimp-dev

# visp
sudo apt-get install -y libx11-dev liblapack-dev libzbar-dev libpthread-stubs0-dev libdc1394-dev nlohmann-json3-dev

# RealSense
sudo apt-get install -y \
  libusb-1.0-0-dev libudev-dev \
  libglu1-mesa-dev
  
# Matplot++
sudo apt install gnuplot-qt

3. 配置 IgH EtherCAT

工程已内置 IgH EtherCAT 1.7.0 的 userspace 文件:

dependency/x86/third_party/ethercat/v1.7.0

先设置本机路径:

export CMVR_ES_ROOT=/path/to/cmvr-es
export IGH_ETHERCAT_ROOT=$CMVR_ES_ROOT/dependency/x86/third_party/ethercat/v1.7.0

安装当前内核的 header

sudo apt-get update
sudo apt-get install -y linux-headers-$(uname -r)

如果内置目录里已经有当前内核版本的 EtherCAT 内核模块,直接安装到系统:

sudo mkdir -p /lib/modules/$(uname -r)/ethercat
sudo cp -r $IGH_ETHERCAT_ROOT/lib/modules/$(uname -r)/ethercat/* /lib/modules/$(uname -r)/ethercat/
sudo depmod

内置内核模块只适用于相同内核版本。如果 $IGH_ETHERCAT_ROOT/lib/modules/$(uname -r) 不存在,说明这台机器的内核版本不匹配,需要在这台机器上重新编译安装 IgH EtherCAT

sudo apt-get update
sudo apt-get install -y \
  build-essential autoconf automake libtool pkg-config git \
  linux-headers-$(uname -r)

cd /tmp
git clone --branch stable-1.7 --depth 1 https://gitlab.com/etherlab.org/ethercat.git ethercat-stable-1.7
cd ethercat-stable-1.7

./bootstrap
./configure \
  --prefix=$IGH_ETHERCAT_ROOT \
  --libdir=$IGH_ETHERCAT_ROOT/lib \
  --includedir=$IGH_ETHERCAT_ROOT/include \
  --sysconfdir=$IGH_ETHERCAT_ROOT/etc \
  --with-systemdsystemunitdir=$IGH_ETHERCAT_ROOT/lib/systemd/system \
  --enable-generic \
  --with-linux-dir=/lib/modules/$(uname -r)/build

make -j$(nproc) all modules
make install
sudo make modules_install
sudo depmod

启动 EtherCAT。eno1 换成实际连接 EtherCAT 从站的网卡:

sudo script/ethercat/start_ethercat.sh eno1

脚本会写入内置 IgH 配置文件:

$IGH_ETHERCAT_ROOT/etc/ethercat.conf

脚本会把该网卡的 MAC 写到 MASTER0_DEVICE,使用 DEVICE_MODULES="generic",把网卡从 NetworkManager 断开,并通过 ethercatctl -c 启动 IgH master。

查看状态:

script/ethercat/status_ethercat.sh

$IGH_ETHERCAT_ROOT/bin/ethercat master
$IGH_ETHERCAT_ROOT/bin/ethercat slaves
$IGH_ETHERCAT_ROOT/bin/ethercat pdos

停止 EtherCAT

sudo script/ethercat/stop_ethercat.sh eno1
sudo script/ethercat/stop_ethercat.sh eno1 --restore-network

组件文档

具体能力、配置、协议和安全边界由对应代码目录下的 README 维护:

Modbus Quick Stop 只是功能性停止,不能替代硬接线急停或驱动器 STO。AUBO JSON 接口只访问控制柜 Standard 数字 IO不访问安全 IO。