A hands-free interface that lets you speak high-level commands (“rotate moving jaw 10 degrees”) and watch your robot execute them live in RViz 2.
- Natural-language → structured motion commands (LLM-powered)
- URDF / Xacro loader with mesh-URI resolution
- One-click RViz 2 visualisation (auto-generated launch file)
- Joint-state publisher for real-time animation
urdf_to_dict()
helper for quick introspection/debugging- Pytest test-suite (
colcon test
-compatible) to guard against regressions
robot_voice_control/
├── launch/
│ └── display.launch.py # starts RSP + RViz 2
├── scripts/
│ └── main.py # choose model, speak commands
├── urdf/ # drop your .urdf / .xacro models here
├── tests/
│ └── test_urdf_to_summary.py # unit tests
├── urdf_to_summary.py # load_robot() + urdf_to_dict()
Dependency | Version | Install / Notes |
---|---|---|
ROS 2 | Humble Hawksbill | sudo apt install ros-humble-desktop && source /opt/ros/humble/setup.bash |
Python | ≥ 3.10 | Comes with Ubuntu 22.04 |
urdfpy |
≥ 0.0.25 | pip install -U urdfpy |
xacro |
any recent | Already bundled with ROS 2 |
pytest |
optional (tests) | pip install -U pytest |
cd ~/solo_robot_ws
colcon build --packages-select robot_voice_control
source install/setup.bash
# interactive CLI
ros2 run robot_voice_control main
- Choose a URDF/Xacro from the list.
- RViz 2 pops up with the model already visible.
- Enter voice-style or typed commands to move joints.
- Copy my_robot.urdf (or .xacro + meshes) into robot_voice_control/urdf/.
- Re-build (colcon build …).
- Launch CLI and pick the new entry.
- Mesh URIs (package://…) are resolved automatically—no extra packaging needed.
pytest -q # quick local check
colcon test --packages-select robot_voice_control
colcon test-result --verbose
- QStandardPaths: wrong permissions … – harmless Qt warning.
- Ensure one joint-state publisher at a time (the Python helper starts its own).
- If RViz displays only a grid, set Fixed Frame to your base link (e.g. base).
- Fork → feature branch.
- Add/update unit tests in tests/.
- colcon test – all green.
- PR with description.