| feat: initial workspace setup for IB_Robot with ROS 2 Humble and Gitlint
Signed-off-by: XiaoqiangWu <wuxiaoqiang.rtos@huawei.com>
| 2 个月前 |
| inference_service: support RKNN distributed runtime
Support RKNN artifacts in the distributed inference flow so the board runtime can
load .rknn models while keeping LeRobot checkpoint metadata for edge-side
preprocessing and postprocessing.
Align the live dispatcher defaults, board packaging, launch docs, and reliable
controller command QoS with the measured RKNN deployment path.
Defer optional backend imports so RKNN and CPU paths remain importable and
testable without Ascend runtime packages installed.
Signed-off-by: XiaoqiangWu <wuxiaoqiang.rtos@huawei.com>
| 23 天前 |
| inference_service: add Ascend OM backends
Move the existing ACT OMModel and ACT wrappers from the LeRobot patch
stack into inference_service so issue #48 can be resolved without
carrying those patches in the submodule.
Keep CPU, CUDA, and NPU loading unchanged. Select the OM adapters
only when the explicit ascend_om or ascend_om_3403 backend is requested.
Delete the migrated LeRobot patches from the active patch lists and
keep tests covering backend selection and patch filtering.
Signed-off-by: Shi Xin <shixin21@h-partners.com>
| 23 天前 |
| setup: converge tracing dependency flow
Restore the platform-aware setup flow and move tracing dependencies back
onto rosdepc wherever robot_config can declare them directly.
Keep explicit platform installs only for the packages that still lack
usable rosdep coverage or repository support in the tested environment.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: XiaoqiangWu <wuxiaoqiang.rtos@huawei.com>
| 1 个月前 |
| setup: harden workspace installer
Replace heartbeat progress output with spinner or live command output.
Preserve initialized submodules unless a safe update is possible.
Add clearer LeRobot patch stack recovery for unmanaged checkouts.
Fetch the manifest base on explicit force rebuild and skip LFS smudge.
Repair venv-owned rosdepc, colcon, setuptools, and Empy tooling.
Run builds through the workspace venv colcon implementation.
Use gum choose for the optional phone backend menu when gum is present.
Keep numeric prompts as the fallback for non-gum environments.
Signed-off-by: XiaoqiangWu <wuxiaoqiang.rtos@huawei.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
| 1 个月前 |
| camera_isp: add ISP calibration pipeline, GUI calibrator and search
Introduce dataset_tools/camera_isp as a new pure-Python subpackage
providing the full camera ISP calibration stack used with usb_cam_node,
and a single-window cv2 GUI orchestrator that drives it interactively.
New source files (no test files, no images, no temporary artifacts):
camera_isp/__init__.py - public API surface declaration
camera_isp/color_space.py - BGRtoLab, BGRtoXYZ, McCamy Kelvin
camera_isp/exposure_units.py - lux/EV/shutter conversion helpers
camera_isp/lut.py + lut_data - white-balance Kelvin lookup table
camera_isp/build_lut.py - offline LUT rebuild script
camera_isp/hw_stages.py - per-parameter V4L2 stage drivers
camera_isp/hw_pipeline.py - 4-stage pipeline orchestrator
camera_isp/v4l2_ctl.py - v4l2-ctl subprocess wrapper
camera_isp/solver.py - least-squares CCM / WB / exposure
camera_isp/sw_isp.py - software ISP (diagonal + 3x3 CCM)
camera_isp/colorchecker24.py - standard 24-card sRGB ground truth
camera_isp/color_search.py - unified K/C/Sat search module
color_search.py implements three cost modes for the grid-search driver:
(1) 24-card: sum of CIEDE2000 against ColorChecker ground truth
(2) AUTO: chroma-weighted Sliced Wasserstein on (a*,b*) distribution,
stable across scene-layout changes, no per-eval re-clustering
(3) m/ROI: per-patch CIEDE2000 plus global SWD background term to
prevent background color drift while honoring user-chosen patches
camera_isp_calibrator.py - single-window cv2 GUI orchestrator:
- Trackbars, ref/live split view, SW-ISP preview third pane
- [a] 4-stage auto pipeline [m] manual ROI drag [c] color search
- Live [SEARCH n/N] HUD refreshed per eval; q/Esc cancel with restore
- Auto CCM re-solve after color search settles to new K/C/Sat state
Robustness and UX fixes folded in:
- Stop the GUI thread reverting every K/C/Sat candidate during color
search by short-circuiting _maybe_apply_pending whenever the mode
is not IDLE; previously only AUTO was guarded so SEARCH n/N let
the trackbar seed values overwrite each candidate one frame later.
- Chain a hardware K/C/Sat search after the ColorChecker24 wizard so
cc24 mode now drives the camera through cost_24card against the
X-Rite truth Lab values, mirroring the m-mode REF-pair workflow.
- Drop the SW-only third pane in cc24 mode now that the live pane
already reflects the corrected hardware output.
- Widen the default white-balance search range from +/-600K to
+/-1600K (step_K=400, n_K=9) so extreme indoor lighting (warm
tungsten through overcast daylight) is reachable in one sweep.
- Trim SettleConfig defaults (delay_ms 200->120, n_drop 2->1,
n_capture 5->3) for ~40% faster per-eval turnaround now that the
fresh-frame gate handles staleness explicitly.
- Strip non-ASCII glyphs from cv2 HERSHEY-rendered banners and labels
(arrows, em-dashes, Greek letters) so the GUI no longer shows '?'.
robot_config: add camera_isp_overrides.py launch builder and wire it
into perception.py so ISP parameters load from robot_config SSOT.
Update so101_single_arm.yaml with camera ISP parameter defaults.
Add scripts/camera_topic_viewer.py for quick camera topic inspection.
Signed-off-by: grangerxsp <xingshiping@huawei.com>
| 26 天前 |
| feat(sim): T6 MuJoCo v2 - replace sim_hardware with apt package
Migrate from vendored sim_hardware submodule to the official
mujoco_ros2_control apt package (>=0.0.3) for the SO-101 T6 sim.
Key changes:
- Add so101.xml.template (kp=500 position actuators, YAML-driven cameras)
- mujoco_adapter: inject cameras into MJCF worldbody at launch time
- description.py: pass mujoco_model path via xacro arg (new upstream API)
- Disable URDF sensor injection (apt 0.0.2 compatibility crash)
- controller spawner timeout 30s -> 60s for simulation startup
- merge packages-ignore into .colcon/defaults.yaml
- teleop_node: skip cycle on empty joint targets (was publishing zeros)
- setup.sh / install_ros_colcon.sh: rosdep, colcon, SSL fixes from !25
- pick_banana.xml.template: update for new MuJoCo scene API
| 2 个月前 |
| scripts: refactor setup.sh into modular components
Split the monolithic setup.sh into a modular architecture to improve
maintainability and testability.
Key changes:
- Created scripts/setup/ containing discrete modules for submodules,
python_venv, rosdep, and environment verification.
- Introduced Template Method pattern for platform-specific hooks
(platform_ros_setup_path, platform_handle_missing_ros) to eliminate
platform if/else branches in the core script.
- Separated Python requirements into dedicated files (base, dev-tools,
hardware, platform-specific).
- Added explicit dependency checking and robust git-lfs handling.
Signed-off-by: XiaoqiangWu <wuxiaoqiang.rtos@huawei.com>
| 27 天前 |
| scripts: refactor setup.sh into modular components
Split the monolithic setup.sh into a modular architecture to improve
maintainability and testability.
Key changes:
- Created scripts/setup/ containing discrete modules for submodules,
python_venv, rosdep, and environment verification.
- Introduced Template Method pattern for platform-specific hooks
(platform_ros_setup_path, platform_handle_missing_ros) to eliminate
platform if/else branches in the core script.
- Separated Python requirements into dedicated files (base, dev-tools,
hardware, platform-specific).
- Added explicit dependency checking and robust git-lfs handling.
Signed-off-by: XiaoqiangWu <wuxiaoqiang.rtos@huawei.com>
| 27 天前 |
| feat: integrate OpenClaw social control and add rosclaw submodule
Enable remote natural language control of IB-Robot via OpenClaw AI agent
and RosClaw bridge. Supports Gazebo simulation and real SO-101 arm.
- Add RosClaw as a git submodule in 'src/rosclaw'.
- Implement 'scripts/start_rosclaw.sh' for independent startup.
- Update 'README.md' with announcement, demo videos, and setup guides.
- Add 'docs/ib_robot_social_skill.md' for LLM skill definition.
- Update system architecture diagram.
Signed-off-by: XiaoqiangWu <wuxiaoqiang.rtos@huawei.com>
| 2 个月前 |
| docs: update system architecture and roadmap, add config validation script
Signed-off-by: XiaoqiangWu <wuxiaoqiang.rtos@huawei.com>
| 2 个月前 |