./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/train.py --task Isaac-Velocity-Flat-Unitree-Go2-v1 --headless --max_iterations 5000
./isaaclab.sh -p scripts/reinforcement_learning/rsl_rl/play.py --task Isaac-Velocity-Flat-Unitree-Go2-v1 --num_envs 16 --checkpoint logs/rsl_rl/unitree_go2_flat_acc/2025-12-09_11-25-01/model_4999.pt --headless --video --video_length 1000 --enable_camera
./isaaclab.sh -p -m tensorboard.main --logdir=logs
tensorboard --logdir logs --host 0.0.0.0 --port 6006
처럼 호스트를 0.0.0.0으로 지정하면 외부에서 접속 가능
• lin_acc_b is “specific force” because the IMU code explicitly adds a gravity bias in world frame before
rotating to the sensor frame.
• Go2 IMU has no extra transform: in source/isaaclab_tasks/isaaclab_tasks/manager_based/locomotion/
velocity/config/go2/rough_env_cfg.py:71-76 it’s created as ImuCfg(prim_path="{ENV_REGEX_NS}/Robot/
base") with no offset overrides. The defaults in source/isaaclab/isaaclab/sensors/imu/imu_cfg.py:20-34
are offset.pos=(0,0,0) and offset.rot=(1,0,0,0), so the IMU frame coincides with the base link’s frame
(same position/orientation). It inherits whatever pose the base prim has in the USD. No extra rotation/
translation beyond that.
• Edited source/isaaclab_tasks/isaaclab_tasks/manager_based/locomotion/velocity/config/go2/rough_env_cfg.py
38 + # scale to put resting +g (~9.81 m/s^2) inside [-1, 1] and clamp any spikes
39 + scale=0.1,
40 + clip=(-1.0, 1.0),
41 )
• Updated Go2 rough env to normalize IMU linear acceleration so it stays in [-1,1]. In source/
isaaclab_tasks/isaaclab_tasks/manager_based/locomotion/velocity/config/go2/rough_env_cfg.py, the
base_lin_acc observation now scales by 0.1 and clips to (-1, 1), so the default +g reading (~9.81 m/s²)
becomes ~0.98 and any spikes are clamped.
If you want a different normalization (e.g., exact 1/9.81 instead of 0.1, or removing the clip), I can
adjust.
linear acceleration에 노이즈를 0.2 씩이나 넣으니까 학습이 느리지.
› scale 0.1이면 충분할거같은데 노이즈가 생각보다 크다. 이를 줄여야한다. 데이터를 측정해보면 약 (0.3, 0.05,
0.95) 정도의 값이 정지상태일때 나왔으니 노이즈를 0.2가 아니라 0.03~0.05 정도로 하는게 합리적이라고 생각한
다.
• - Go2 IMU obs noise is from the obs term, not the sensor: source/isaaclab_tasks/isaaclab_tasks/
manager_based/locomotion/velocity/config/go2/rough_env_cfg.py:25-34 sets base_lin_acc with
noise=Unoise(n_min=-0.2, n_max=0.2), i.e., uniform ±0.2 m/s² per axis.

노이즈를 0.2에서 0.05로 줄이고 track linear velcoity 보상가중치를 1.5에서 2.0으로 키워주었다.
수정한 결과는 만족스럽다.
시간순으로
마젠타: 정규화 이전
보라색: 수정 전
초록색: 1.5에서 2.0으로 증가해서 보상이 더 커보이는걸 감안하더라도 증가추이가 마젠타보다 더 빠르다.
최종적으로 신호가 더 강하기 때문에 마젠타보다 더 빠르게 수렴한다.
*플롯 제목에 유의.


별로인 점은 linear velocity weight를 증가시킨만큼 다른 reward들이 억제된다는 점이다. 물론 작업만 잘 하면 장땡!
