forked from tangger/lerobot
Fix real-world configs by adding latency
This commit is contained in:
@@ -28,7 +28,7 @@ training:
|
|||||||
online_steps_between_rollouts: 1
|
online_steps_between_rollouts: 1
|
||||||
|
|
||||||
delta_timestamps:
|
delta_timestamps:
|
||||||
action: "[i / ${fps} for i in range(${policy.chunk_size})]"
|
action: "[i / ${fps} + ${latency} for i in range(${policy.chunk_size})]"
|
||||||
|
|
||||||
eval:
|
eval:
|
||||||
n_episodes: 50
|
n_episodes: 50
|
||||||
|
|||||||
@@ -57,3 +57,7 @@ wandb:
|
|||||||
disable_artifact: false
|
disable_artifact: false
|
||||||
project: lerobot
|
project: lerobot
|
||||||
notes: ""
|
notes: ""
|
||||||
|
|
||||||
|
# These configs need to be defined in environment yaml files (e.g. `env/aloha.yaml`)
|
||||||
|
fps: ???
|
||||||
|
latency: ???
|
||||||
|
|||||||
6
lerobot/configs/env/aloha.yaml
vendored
6
lerobot/configs/env/aloha.yaml
vendored
@@ -1,6 +1,12 @@
|
|||||||
# @package _global_
|
# @package _global_
|
||||||
|
|
||||||
fps: 50
|
fps: 50
|
||||||
|
# The latency corresponds to the delay in seconds between the current time at which the observation
|
||||||
|
# is fed to the policy to compute the next action, and the next action being sent to the controller.
|
||||||
|
# Note: For simulation environments, there could be no latency, but for real-world, latency is usually
|
||||||
|
# set to `1 / fps` to account for the runtime of the policy (which is often lower than `1 / fps`) and then
|
||||||
|
# a forced sleep to reach `+ 1 / fps` from current observation time.
|
||||||
|
latency: 0
|
||||||
|
|
||||||
env:
|
env:
|
||||||
name: aloha
|
name: aloha
|
||||||
|
|||||||
6
lerobot/configs/env/dora_aloha_real.yaml
vendored
6
lerobot/configs/env/dora_aloha_real.yaml
vendored
@@ -1,6 +1,12 @@
|
|||||||
# @package _global_
|
# @package _global_
|
||||||
|
|
||||||
fps: 30
|
fps: 30
|
||||||
|
# The latency corresponds to the delay in seconds between the current time at which the observation
|
||||||
|
# is fed to the policy to compute the next action, and the next action being sent to the controller.
|
||||||
|
# Note: For simulation environments, there could be no latency, but for real-world, latency is usually
|
||||||
|
# set to `1 / fps` to account for the runtime of the policy (which is often lower than `1 / fps`) and then
|
||||||
|
# a forced sleep to reach `+ 1 / fps` from current observation time.
|
||||||
|
latency: 1 / ${fps}
|
||||||
|
|
||||||
env:
|
env:
|
||||||
name: dora
|
name: dora
|
||||||
|
|||||||
6
lerobot/configs/env/pusht.yaml
vendored
6
lerobot/configs/env/pusht.yaml
vendored
@@ -1,6 +1,12 @@
|
|||||||
# @package _global_
|
# @package _global_
|
||||||
|
|
||||||
fps: 10
|
fps: 10
|
||||||
|
# The latency corresponds to the delay in seconds between the current time at which the observation
|
||||||
|
# is fed to the policy to compute the next action, and the next action being sent to the controller.
|
||||||
|
# Note: For simulation environments, there could be no latency, but for real-world, latency is usually
|
||||||
|
# set to `1 / fps` to account for the runtime of the policy (which is often lower than `1 / fps`) and then
|
||||||
|
# a forced sleep to reach `+ 1 / fps` from current observation time.
|
||||||
|
latency: 0
|
||||||
|
|
||||||
env:
|
env:
|
||||||
name: pusht
|
name: pusht
|
||||||
|
|||||||
6
lerobot/configs/env/xarm.yaml
vendored
6
lerobot/configs/env/xarm.yaml
vendored
@@ -1,6 +1,12 @@
|
|||||||
# @package _global_
|
# @package _global_
|
||||||
|
|
||||||
fps: 15
|
fps: 15
|
||||||
|
# The latency corresponds to the delay in seconds between the current time at which the observation
|
||||||
|
# is fed to the policy to compute the next action, and the next action being sent to the controller.
|
||||||
|
# Note: For simulation environments, there could be no latency, but for real-world, latency is usually
|
||||||
|
# set to `1 / fps` to account for the runtime of the policy (which is often lower than `1 / fps`) and then
|
||||||
|
# a forced sleep to reach `+ 1 / fps` from current observation time.
|
||||||
|
latency: 0
|
||||||
|
|
||||||
env:
|
env:
|
||||||
name: xarm
|
name: xarm
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ training:
|
|||||||
online_steps_between_rollouts: 1
|
online_steps_between_rollouts: 1
|
||||||
|
|
||||||
delta_timestamps:
|
delta_timestamps:
|
||||||
action: "[i / ${fps} for i in range(${policy.chunk_size})]"
|
action: "[i / ${fps} + ${latency} for i in range(${policy.chunk_size})]"
|
||||||
|
|
||||||
eval:
|
eval:
|
||||||
n_episodes: 50
|
n_episodes: 50
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ training:
|
|||||||
online_steps_between_rollouts: 1
|
online_steps_between_rollouts: 1
|
||||||
|
|
||||||
delta_timestamps:
|
delta_timestamps:
|
||||||
action: "[i / ${fps} for i in range(${policy.chunk_size})]"
|
action: "[i / ${fps} + ${latency} for i in range(${policy.chunk_size})]"
|
||||||
|
|
||||||
eval:
|
eval:
|
||||||
n_episodes: 50
|
n_episodes: 50
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ training:
|
|||||||
online_steps_between_rollouts: 1
|
online_steps_between_rollouts: 1
|
||||||
|
|
||||||
delta_timestamps:
|
delta_timestamps:
|
||||||
action: "[i / ${fps} for i in range(${policy.chunk_size})]"
|
action: "[i / ${fps} + ${latency} for i in range(${policy.chunk_size})]"
|
||||||
|
|
||||||
eval:
|
eval:
|
||||||
n_episodes: 50
|
n_episodes: 50
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ training:
|
|||||||
delta_timestamps:
|
delta_timestamps:
|
||||||
observation.image: "[i / ${fps} for i in range(1 - ${policy.n_obs_steps}, 1)]"
|
observation.image: "[i / ${fps} for i in range(1 - ${policy.n_obs_steps}, 1)]"
|
||||||
observation.state: "[i / ${fps} for i in range(1 - ${policy.n_obs_steps}, 1)]"
|
observation.state: "[i / ${fps} for i in range(1 - ${policy.n_obs_steps}, 1)]"
|
||||||
action: "[i / ${fps} for i in range(1 - ${policy.n_obs_steps}, 1 - ${policy.n_obs_steps} + ${policy.horizon})]"
|
action: "[i / ${fps} + ${latency} for i in range(1 - ${policy.n_obs_steps}, 1 - ${policy.n_obs_steps} + ${policy.horizon})]"
|
||||||
|
|
||||||
# The original implementation doesn't sample frames for the last 7 steps,
|
# The original implementation doesn't sample frames for the last 7 steps,
|
||||||
# which avoids excessive padding and leads to improved training results.
|
# which avoids excessive padding and leads to improved training results.
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ training:
|
|||||||
observation.image: "[i / ${fps} for i in range(${policy.horizon} + 1)]"
|
observation.image: "[i / ${fps} for i in range(${policy.horizon} + 1)]"
|
||||||
observation.state: "[i / ${fps} for i in range(${policy.horizon} + 1)]"
|
observation.state: "[i / ${fps} for i in range(${policy.horizon} + 1)]"
|
||||||
action: "[i / ${fps} for i in range(${policy.horizon})]"
|
action: "[i / ${fps} for i in range(${policy.horizon})]"
|
||||||
next.reward: "[i / ${fps} for i in range(${policy.horizon})]"
|
next.reward: "[i / ${fps} + ${latency} for i in range(${policy.horizon})]"
|
||||||
|
|
||||||
policy:
|
policy:
|
||||||
name: tdmpc
|
name: tdmpc
|
||||||
|
|||||||
Reference in New Issue
Block a user