ROS 2 description package for Galbot One Golf, including URDF descriptions and MJCF/USD models.
colcon build --packages-select galbot_one_golf_description --symlink-install
source install/setup.bashThis package is usable as a minimal ROS 2 URDF description package without Git LFS. The URDF, xacro, launch/config files, and meshes referenced by URDF are stored in regular Git.
Install Git LFS only when you need the optional full MJCF/USD assets:
git lfs install
git lfs pullLFS currently tracks binary assets under mjcf/meshes/ (.obj, .stl,
.png) and usd/configuration/galbot_one_golf_base.usdc. Source description files such as .urdf,
.xacro, .usda, .xml, .py, and .md remain regular Git files.
ros2 launch galbot_one_golf_description display.launch.py
ros2 launch galbot_one_golf_description display.launch.py left_ee_type:=hitbot right_ee_type:=suction_cup
ros2 launch galbot_one_golf_description display.launch.py type:=left_arm
ros2 launch galbot_one_golf_description display.launch.py type:=omni_chassisThe type argument defaults to full. Component display types include
omni_chassis, omniwheel, leg, torso, head, left_arm, right_arm,
galbot_gripper, hitbot_gripper, suction_cup, and wrist_camera.
Preset URDF files:
urdf/galbot_one_golf.urdfurdf/galbot_one_golf_fixed_base.urdfurdf/galbot_one_golf_left_hitbot_gripper_right_suction_cup.urdf
galbot_one_golf.urdf keeps the full visual model and exposes the four main
wheel joints as continuous joints. galbot_one_golf_fixed_base.urdf keeps the
same visual model but fixes the wheel joints for display, planning, and
fixed-base conversion workflows. Passive omni-wheel roller joints are omitted
from preset URDFs to keep the assets compact.
Generate another URDF from xacro:
python3 scripts/create_description.py --left-ee-type hitbot --right-ee-type suction_cupGenerate an individual component URDF directly from xacro:
xacro xacro/component.xacro type:=omni_chassis > omni_chassis.urdf
xacro xacro/component.xacro type:=omniwheel > omniwheel_10.urdf
xacro xacro/component.xacro type:=left_arm > left_arm.urdf
xacro xacro/component.xacro type:=wrist_camera arm_camera:=d405 > wrist_camera.urdf
xacro xacro/components/right_arm.xacro > right_arm.urdf
xacro xacro/components/omniwheel_10.xacro omniwheel_standalone:=true > omniwheel_10.urdf| Default URDF model | Hitbot + suction cup URDF model |
|---|---|
![]() |
![]() |
MJCF files are generated with urdf-to-mjcf. See
docs/mjcf.md for the exact regeneration commands and variant
notes.
MJCF base variants:
mjcf/galbot_one_golf.xml: wheeled base, withwheel1_jointthroughwheel4_jointvelocity actuators.mjcf/galbot_one_golf_fixed_base.xml: fixed base, with no base or wheel drive joints.mjcf/galbot_one_golf_planar_base.xml: virtual planar base, withbase_x_joint,base_y_joint, andbase_yaw_jointvelocity actuators.mjcf/galbot_one_golf_floating_base.xml: MuJoCo freejoint base, with no base actuator.
| MJCF visual model | MJCF collision-only model |
|---|---|
![]() |
![]() |
The main USD entry point is usd/galbot_one_golf.usda. It keeps the public
composition small and payloads the larger robot layers from usd/configuration/:
usd/configuration/galbot_one_golf_base.usdc: base robot hierarchy and core compositionusd/configuration/galbot_one_golf_physics.usda: physics and PhysX datausd/configuration/galbot_one_golf_sensor.usda: sensor payloadsusd/configuration/galbot_one_golf_robot.usda: robot integration payloadsusd/envs/empty.usda: example scene that references the main asset
Only the base layer is stored as USDC; editable layers are kept as USDA.
xacro/: source robot descriptionsurdf/: preset and generated URDF filesmjcf/: MuJoCo mjcf modelsusd/: USD modelsmeshes/: visual and collision mesheslaunch/: display launch filesconfig/: configuration filesscripts/: helper scripts
This software is licensed under the Apache License 2.0. See LICENSE for details.




