For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

1

Clone this repository

Run:

git clone https://github.com/cocelo-ai/cosim-light.git
2
conda create -n cosim python=3.10
conda activate cosim
3

Install Dependencies

Run from the repo root:

pip install -r requirements.txt
4

Run the Simulator

Run from the repo root:

python launch.py
5

Test your Policy

  1. Click Hardware Settings and set Kp, Kd values as in IsaacLab.

Important Notice:

You should set the value as in below root.

lab/cocelo/assets/flamingo/flamingo_light_v1.py

For example in below setting, you should set Kp_shoulder to 35, Kd_shoulder to 0.45, and Kd_wheel to 0.3.

Install build tools (Ubuntu/Debian)
# 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,
            },
        ),
    },
)
  1. Click Observation Settings and 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.py

Note that you should use the same scale as the one set for “policy.”

  1. Click Browse button in Policy Settings and 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

  1. Click Start Test button to run your policy.

You can control the robot with w/s/a/d keyboard.


Last updated