3ad29356c9
集成通用机器人数值接口、本机控制桥、LeRobot 插件和统一键盘遥操作。采用离线 CoACD 全臂碰撞配方 revision 4、局部装配区切分与结构自接触,限制直接关节位姿写入并保留安全看门狗。同步版本号、变更记录、来源许可证和兼容性验证。
88 lines
2.9 KiB
YAML
88 lines
2.9 KiB
YAML
name: lekiwi-compatibility
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
paths:
|
|
- 'contracts/**'
|
|
- 'control_bridge/**'
|
|
- 'integrations/lerobot/**'
|
|
- 'examples/lekiwi/**'
|
|
- 'robot_profiles/**'
|
|
- 'web_platform/**'
|
|
- 'package*.json'
|
|
- '.github/workflows/lekiwi-compat.yml'
|
|
pull_request:
|
|
paths:
|
|
- 'contracts/**'
|
|
- 'control_bridge/**'
|
|
- 'integrations/lerobot/**'
|
|
- 'examples/lekiwi/**'
|
|
- 'robot_profiles/**'
|
|
- 'web_platform/**'
|
|
- 'package*.json'
|
|
- '.github/workflows/lekiwi-compat.yml'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
cpu-compatibility:
|
|
runs-on: ubuntu-24.04
|
|
timeout-minutes: 25
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version-file: .nvmrc
|
|
cache: npm
|
|
- uses: actions/setup-python@v6
|
|
with:
|
|
python-version: '3.12'
|
|
cache: pip
|
|
cache-dependency-path: |
|
|
integrations/lerobot/requirements-cpu.txt
|
|
examples/lekiwi/requirements-collision.txt
|
|
- run: npm install --global npm@11.17.0
|
|
- run: npm ci
|
|
- run: npx playwright install --with-deps chromium
|
|
- run: python -m pip install -e control_bridge
|
|
- uses: actions/cache@v5
|
|
with:
|
|
path: build/lekiwi
|
|
key: lekiwi-efa608d7-${{ hashFiles('robot_profiles/lekiwi-v1.json', 'examples/lekiwi/prepare_assets.py') }}
|
|
- name: Prepare pinned upstream assets (never skipped)
|
|
run: |
|
|
if [ -f build/lekiwi/URDF/LeKiwi.urdf ]; then
|
|
python examples/lekiwi/prepare_assets.py --source build/lekiwi --output build/lekiwi-verified
|
|
cp build/lekiwi-verified/lekiwi-v1.zip build/lekiwi/lekiwi-v1.zip
|
|
else
|
|
python examples/lekiwi/prepare_assets.py --download
|
|
fi
|
|
- name: Rebuild and verify collision recipe in its own environment
|
|
run: |
|
|
python -m venv build/venvs/collision
|
|
build/venvs/collision/bin/python -m pip install -r examples/lekiwi/requirements-collision.txt
|
|
build/venvs/collision/bin/python -m unittest discover -s examples/lekiwi/tests -v
|
|
build/venvs/collision/bin/python examples/lekiwi/generate_full_collisions.py --check
|
|
env:
|
|
PYTHONPATH: ''
|
|
PYTHONNOUSERSITE: '1'
|
|
- run: python examples/lekiwi/setup_lerobot.py
|
|
- run: build/venvs/lerobot/bin/python -m unittest discover -s integrations/lerobot/tests -v
|
|
env:
|
|
PYTHONPATH: ''
|
|
PYTHONNOUSERSITE: '1'
|
|
- run: npm run test:e2e:lekiwi
|
|
env:
|
|
BRIDGE_PYTHON: python3
|
|
LEROBOT_PYTHON: build/venvs/lerobot/bin/python
|
|
- uses: actions/upload-artifact@v6
|
|
if: always()
|
|
with:
|
|
name: lekiwi-compatibility-evidence
|
|
path: |
|
|
build/e2e/lekiwi/
|
|
build/lerobot-environment.json
|
|
build/lekiwi/source-manifest.json
|