Galbot humanoid robot description packages. Each package contains xacro models, meshes, RViz, and controller configuration. URDF is generated at launch time by robot_common_launch from xacro/robot.xacro (no static urdf/ in the package).
These packages are licensed under Apache-2.0. Third-party model sources and upstream terms are listed in NOTICE and each package README.
robot:=<robot> selects the robot, for example galbot_s1 or galbot_foxtrot.
type:=none hides optional end effectors when the model supports it.
type:=hitbot, type:=galbot_gripper, or type:=suction_cup selects the same end effector on both arms when available.
Mixed arms: left_type:=<type> and right_type:=<type> override type per arm. Leave a side empty to use type on that arm.
collider:=simple is the default on most models and uses simple primitive collision geometry. Some models also support convex_decomposition for convex-hull collision meshes.
Common component values include chassis, body, head, arm, and gripper-specific entries such as left_gripper or right_gripper. The exact list is model-specific.
manipulator_ocs2.launch.py is the official mobile manipulator demo. full_body.launch.py and split_body.launch.py are arm controller demos. Add hardware:=isaac for Isaac Sim where supported; otherwise the launch uses mock components. Navigation examples and model-specific OCS2 or gripper commands live in each package README.
Mixed end effectors on left and right arms (galbot_foxtrot, galbot_golf, galbot_one, galbot_charlie): pass left_type and right_type instead of a single symmetric type. Keys: galbot_gripper, hitbot, suction_cup, none.
Each arm gets a unified planning frame left_eef / right_eef (fixed joint on arm tip, gripper TCP, or suction TCP). OCS2 planning URDF uses eef_fixed_joints:=true automatically via robot_common_launch.
# OCS2 arm controller mock demo — left Hitbot + right suction cup
ros2 launch ocs2_arm_controller full_body.launch.py robot:=galbot_foxtrot \
left_type:=hitbot right_type:=suction_cup
Optional: enable_suction_rotation:=true enables the suction-cup rotation joint in the visualization URDF only (no ros2_control interface).
Galbot Robots
Galbot humanoid robot description packages. Each package contains xacro models, meshes, RViz, and controller configuration. URDF is generated at launch time by
robot_common_launchfromxacro/robot.xacro(no staticurdf/in the package).These packages are licensed under Apache-2.0. Third-party model sources and upstream terms are listed in NOTICE and each package README.
Common Commands
Build
Visualize Full Robot
Useful arguments:
robot:=<robot>selects the robot, for examplegalbot_s1orgalbot_foxtrot.type:=nonehides optional end effectors when the model supports it.type:=hitbot,type:=galbot_gripper, ortype:=suction_cupselects the same end effector on both arms when available.left_type:=<type>andright_type:=<type>overridetypeper arm. Leave a side empty to usetypeon that arm.collider:=simpleis the default on most models and uses simple primitive collision geometry. Some models also supportconvex_decompositionfor convex-hull collision meshes.Visualize Component
Common component values include
chassis,body,head,arm, and gripper-specific entries such asleft_gripperorright_gripper. The exact list is model-specific.Run OCS2 Demos
The default hardware is
mock_components.manipulator_ocs2.launch.pyis the official mobile manipulator demo.full_body.launch.pyandsplit_body.launch.pyare arm controller demos. Addhardware:=isaacfor Isaac Sim where supported; otherwise the launch uses mock components. Navigation examples and model-specific OCS2 or gripper commands live in each package README.Mixed end effectors on left and right arms (
galbot_foxtrot,galbot_golf,galbot_one,galbot_charlie): passleft_typeandright_typeinstead of a single symmetrictype. Keys:galbot_gripper,hitbot,suction_cup,none.Each arm gets a unified planning frame
left_eef/right_eef(fixed joint on arm tip, gripper TCP, or suction TCP). OCS2 planning URDF useseef_fixed_joints:=trueautomatically viarobot_common_launch.Optional:
enable_suction_rotation:=trueenables the suction-cup rotation joint in the visualization URDF only (no ros2_control interface).Robot profile (YAML)
Per-machine defaults use a robot profile YAML. Copy
config/profile/robot.local.yaml.exampleand pass:Launch CLI
left_type/right_typeoverride profiledefaults.end_effectors. Asymmetric setups compose gripper controllers automatically;suction_cupis passive (no ros2_control joint).Packages