FlmainGO-Light Sim-to-Sim Guide
Last updated: 2026-05-21
This is a Linux-focused, copy/paste-friendly guide for running FlaminGO Light reinforcement learning workflows on Isaac Lab + rsl_rl, based on:
Repository: https://github.com/jaykorea/cocelo-rl-isaaclab
1. Prerequisites
1.1 System requirements
Linux workstation with NVIDIA GPU (recommended) and a modern NVIDIA driver
2. Workflow
Test your Policy

Click
Hardware Settingsand setKp, Kd valuesas in IsaacLab.
✅ Important Notice:
You should set the value as in below root.
lab/cocelo/assets/flamingo/flamingo_light_v1.pyFor example in below setting, you should set
Kp_shoulderto 35,Kd_shoulderto 0.45, andKd_wheelto 0.3.
# Copyright (c) 2022-2024, The Isaac Lab Project Developers.
# All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
from __future__ import annotations
import isaaclab.sim as sim_utils
from isaaclab.actuators import (
DelayedPDActuatorCfg,
)
from isaaclab.assets.articulation import ArticulationCfg
from lab.cocelo.assets.flamingo import FLAMINGO_ASSETS_DATA_DIR
FLAMINGO_LIGHT_CFG = ArticulationCfg(
spawn=sim_utils.UsdFileCfg(
usd_path=f"{FLAMINGO_ASSETS_DATA_DIR}/Robots/Flamingo/flamingo_light_v01_2_2/assets/flamingo_light_v01_2_1_merge_joints.usd",
activate_contact_sensors=True,
rigid_props=sim_utils.RigidBodyPropertiesCfg(
disable_gravity=False,
retain_accelerations=False,
linear_damping=0.0,
angular_damping=0.0,
max_linear_velocity=1000.0,
max_angular_velocity=1000.0,
max_depenetration_velocity=1.0,
),
articulation_props=sim_utils.ArticulationRootPropertiesCfg(
enabled_self_collisions=False, solver_position_iteration_count=4, solver_velocity_iteration_count=1
),
),
init_state=ArticulationCfg.InitialStateCfg(
pos=(0.0, 0.0, 0.2), # default: 0.135
joint_pos={
"left_shoulder_joint": -0.05,
"left_wheel_joint": 0.0,
"right_shoulder_joint": -0.05,
"right_wheel_joint": 0.0,
},
joint_vel={".*": 0.0},
),
soft_joint_pos_limit_factor=0.8,
actuators={
"joints": DelayedPDActuatorCfg(
joint_names_expr=[".*_shoulder_joint"],
effort_limit=36.0,
velocity_limit=53.0,
min_delay=0, # physics time steps (min: 5.0 * 0 = 0.0ms)
max_delay=4, # physics time steps (max: 5.0 * 4 = 20.0ms)
stiffness={
".*_shoulder_joint": 35.0,
},
damping={
".*_shoulder_joint": 0.45,
},
friction={
".*_shoulder_joint": 0.0,
},
armature={
".*_shoulder_joint": 0.01,
},
),
"wheels": DelayedPDActuatorCfg(
joint_names_expr=[".*_wheel_joint"],
effort_limit=17.0,
velocity_limit=40.0,
min_delay=0, # physics time steps (min: 5.0 * 0 = 0.0ms)
max_delay=4, # physics time steps (max: 5.0 * 4 = 20.0ms)
stiffness={
".*_wheel_joint": 0.0,
},
damping={".*_wheel_joint": 0.3},
friction={
".*_wheel_joint": 0.0,
},
armature={
".*_wheel_joint": 0.01,
},
),
},
)Click
Observation Settingsand set the scale as in IsaacLab
✅ Important Notice:
You should set the value as in below root.
lab/cocelo/tasks/manager_based/locomotion/velocity/flamingo_light_env/velocity_env_cfg.pyNote that you should use the same scale as the one set for “policy.”
Click
Browsebutton inPolicy Settingsand click your onnx file which was created during IsaacLab training.
Note that the onnx file is created when you execute
play.py. The root is below.logs/rsl_rl/Flamingo_Light_Flat_Stand_Drive
Click
Start Testbutton to run your policy.
You can control the robot with
w/s/a/dkeyboard.
Last updated