Skip to content

Configuration Reference

Configuration Reference

Configuration sources and precedence

Entry pointConfiguration load order
run_web_client.pyconf/client_conf.py defaults → --conf YAML file (default: conf/default_conf.yaml) → runtime load/patch requests
run_server.pyconf/server_conf.py defaults → command-line overrides

Only existing leaf keys are updated when a Web-client YAML file is loaded; unknown keys are ignored. Keep default_conf.yaml synchronized with the fields below. conf/user_conf_example.py shows the nested dictionary format accepted by --user_conf.

All durations in the following tables are milliseconds unless another unit is shown explicitly.

Client root dictionary

get_client_config() contains these top-level sections:

KeyDescription
rdmReal-time observation buffering and inference-loop mode.
intra_chunkProcessing of actions within one model-generated action chunk.
inter_chunkFusion of the previous and next action chunks.
controllerRobot-command timing and execution speed.
robotsSelected robot adapter and adapter-specific settings.
vla_zmqVLA inference-server connection and heartbeat settings.
visualizeWebSocket visualization server and display defaults.
recordDemonstration, evaluation, and LeRobot dataset recording.
visionObservation-frame selection and preprocessing.
languageLanguage-task file and automatic subtask switching.

rdm: real-time data manager

KeyType / valid valuesMeaning
modeasync or syncInference/control loop mode. async avoids blocking on every inference result; sync waits for synchronized processing.
max_lenpositive integerMaximum number of observation frames retained in the buffer.
observe_fps_window_sizepositive integerNumber of most recent captured frames used when estimating observation FPS.

intra_chunk: action processing inside a chunk

KeyType / valid valuesMeaning
intra_chunk_moderaw, interpolation, or fittingAction output mode: use raw actions, interpolate them, or use polynomial fitting.
filter_window_sizenon-negative integerHalf-window used to filter gripper actions; the effective window is $2n+1$.
min_gripper_action_thresholdnumberGripper values below this threshold are treated as fully open (0.0).
max_gripper_action_thresholdnumberGripper values above this threshold are treated as fully closed (1.0).
fitting_num_samplespositive integerReserved trajectory-sampling setting; the current implementation uses the controller-period time grid instead.
fitting_degnon-negative integerPolynomial degree for fitted trajectories.
max_joint_fitting_workerspositive integerReserved worker setting; the current batch implementation does not create a joint-fitting executor.
max_gripper_fitting_workerspositive integerReserved worker setting; the current batch implementation does not create a gripper-fitting executor.
max_head_fitting_workerspositive integerReserved worker setting; the current batch implementation does not create a head-fitting executor.
joint_dimnon-negative integerNumber of dual-arm action dimensions processed by this stage.
gripper_dimnon-negative integerNumber of gripper action dimensions processed by this stage.
head_dimnon-negative integerNumber of head action dimensions processed by this stage.

These dimensions must match the selected robot’s action layout and the model output convention.

inter_chunk: fusion between chunks

KeyType / valid valuesMeaning
inter_chunk_modesearch_action, smooth_velocity, min_jerk, or syncMethod used to join consecutive action chunks.
search_action.search_lengthpositive integerNumber of future actions inspected while choosing a smooth join. Increase it if the robot visibly pauses at chunk boundaries.
smooth_velocity.max_velpositive numberVelocity limit for velocity-smoothing fusion.
smooth_velocity.max_accpositive numberAcceleration limit for velocity-smoothing fusion.
smooth_velocity.kpnumberProportional gain used by velocity smoothing.
smooth_velocity.kdnumberDerivative gain used by velocity smoothing.
min_jerk.blend_thresholdnumberThreshold controlling when minimum-jerk blending is applied.
min_jerk.adaptive_factornumberAdaptive scaling factor for minimum-jerk blending. A negative value keeps the implementation’s automatic behavior.
syncmappingReserved configuration section for sync mode; currently empty.

controller: robot command timing

KeyType / unitMeaning
wait_timenumber, msDelay before the next inference/control iteration. Increase it when command generation causes visible hesitation.
periodnumber, msRobot command period used by the control timer and trajectory timing.
speedpositive numberExecution speed relative to teleoperation speed.
raw_fpspositive number, HzDataset FPS used to train the VLA/WAM model; used as the timing baseline.
gripper_offsetinteger, framesForward offset for stepwise gripper commands relative to arm commands. Increase a positive value if the gripper reacts too late.

vision: observation preprocessing

KeyType / valid valuesMeaning
history_framebooleanInclude a historical observation frame in addition to the current frame when the model input supports it.
preprocess.methodstringName of the preprocessing function resolved from client.utils.misc; none disables preprocessing.
preprocess.keep_ratiobooleanPreserve aspect ratio while resizing.
preprocess.heightpositive integer, pixelsTarget image height for preprocessing.
preprocess.widthpositive integer, pixelsTarget image width for preprocessing.

language: task instruction selection

KeyTypeMeaning
file_pathpath relative to conf/JSON task-instruction file, normally language_cmd.json.
task_idstringTask key in the language JSON file. If absent, the first available task is used.
sub_task_idzero-based integerIndex of the active instruction in the selected task. Invalid indices fall back to 0.
auto_modebooleanAutomatically move to the next language instruction according to task-progress output.
task_progress_thresholdnumberMean progress probability required before automatic switching.
task_progress_win_sizepositive integerSliding-window length used to average task progress.

language_cmd.json is a mapping from task IDs to ordered arrays of instruction strings. Add a task by adding one such array; do not store configuration metadata in this file.

vla_zmq: VLA server connection

KeyType / unitMeaning
iphost name or IP addressVLA server address.
portstring or integerVLA server TCP port; together with ip forms tcp://ip:port.
infer_timeoutpositive integer, msClient receive timeout for one inference response. A timeout may drop a late response.
heartbeat_intervalpositive integer, msClient heartbeat period.
heartbeat_timeoutpositive integer, msServer-side inactivity time before a client is removed.

visualize: visualization service

KeyType / unitMeaning
hosthost/IPInterface on which the visualization WebSocket service listens.
portintegerVisualization service port.
max_sizeinteger, bytesLargest accepted WebSocket message.
ping_intervalnumber, secondsWebSocket ping interval.
ping_timeoutnumber, secondsTime allowed for a ping response.
updata_fpspositive number, HzVisualization update rate. The key name is retained for compatibility.
camera.open_headbooleanShow the head camera.
camera.open_wrist_leftbooleanShow the left wrist camera.
camera.open_wrist_rightbooleanShow the right wrist camera.
trajectory.playbooleanStart trajectory playback automatically in the UI.
trajectory.sourcestring arrayTrajectory series displayed in the UI, such as State, ActionRaw, and ActionFitted.
trajectory.selected_jointsinteger arrayInitially selected action/state dimensions.
trajectory.window_span_secpositive number, secondsTime range displayed by the trajectory plot.

record: recording and LeRobot metadata

KeyTypeMeaning
switchbooleanMaster recording switch. It is read from the client configuration; the current run_web_client.py entry point has no --record option.
autobooleanEnable automatic recording behavior.
save_dirproject-relative pathRoot directory for recorded data.
is_record_episoderuntime booleanWhether episode recording is active.
is_record_eval_logruntime booleanWhether evaluation-log recording is active.
is_record_expe_dataruntime booleanWhether experiment-data recording is active.
save_rawbooleanSave source-resolution images rather than resized images.
evaluation.scoresnumeric arrayScore choices offered by the evaluation UI.
lerobot.codebase_versionstringDataset/codebase version recorded in metadata.
lerobot.robot_typestringRobot type recorded in metadata.
lerobot.total_episodes, total_frames, total_tasks, total_videos, total_chunksnon-negative integerDataset counters maintained in LeRobot metadata.
lerobot.chunks_sizepositive integerNumber of episodes/frames represented by a storage chunk according to the recorder format.
lerobot.fpspositive number, HzDataset frame rate.
lerobot.state_shape, action_shapepositive integerFlattened state and action dimensions written to the dataset.
lerobot.splitsmappingDataset split definitions, for example {valid: "0:100"}.
lerobot.data_pathtemplate stringParquet path template relative to the recording root.
lerobot.video_pathtemplate stringVideo path template relative to the recording root.
lerobot.cam.head, cam.hand_left, cam.hand_rightmappingPer-camera feature definition. Each has shape.height, shape.width, shape.channel, plus encode.codec, encode.is_depth_map, and encode.has_audio.

Supported video codecs include mp4v, avc1, XVID, and MJPG. Camera shapes must describe the frames actually written by the selected robot pipeline.

robots: robot adapters

robots.type selects a2d, mock, ti5_t170c, or navi_wa2. Configure only the subsection for the selected adapter unless preparing reusable profiles.

Shared action-layout convention

An action_layout section divides a flat action vector into named segments. Every segment has start (inclusive), end (exclusive), and policy.

PolicyMeaning
gradualContinuous dimensions, normally arm joints; suitable for smoothing/fitting.
stepwiseDiscrete or near-discrete dimensions, normally grippers/hands.
manualRobot/Web-controlled dimensions that are not inferred by the model. Place these after model-controlled segments.

Where available, presets provides UI reset/manual targets. Default and Custom are general presets; A2D grippers also provide Open and Close.

robots.a2d

KeyMeaning
hand_typeEnd-effector mode: gripper, hand_as_gripper, or hand. It selects camera names and proprioception layout.
camera.refReference camera name.
camera.namesMapping from canonical names (head, hand_left, hand_right) to robot camera identifiers.
proprio_namesOrdered proprioception groups used to assemble robot state.
gripper_freq, head_freqCommand frequencies for gripper and head control.
manual_arm_intervalTime interval in seconds between manually generated arm targets.
action_layoutA2D arm, gripper, head, waist, and wheel action ranges and UI presets.

robots.mock

KeyMeaning
camera.ref, camera.namesReference camera and mapping to dataset observation keys.
action_layoutSimulated arm and gripper action ranges and presets.
manual_arm_intervalManual arm command interval in seconds.
state_action_rangeRanges used to select state/action fields from the mock dataset.
dataset_pathLeRobot-style dataset root. It must contain matching Parquet data and video directories.

robots.ti5_t170c

KeyMeaning
camera.*_camera_topicROS image topics for the head and hand cameras.
arms.*_joint_cmd_topic, arms.*_joint_states_topicROS command/state topics for both arms.
arms.*_arm_joint_namesOrdered seven-joint names for each arm.
hands.*_hand_joint_cmd_topic, hands.*_hand_joint_states_topicROS command/state topics for both hands.
hands.hand_joint_namesOrdered six-joint hand names.
waist.*, head.*ROS command/state topics and ordered joint names for waist and head.
reset_robot_posFull robot reset target vector; its ordering must match the bridge implementation.
zero_posFull robot zero/reference target vector; ordering must match the bridge implementation.
action_layoutArm and multi-finger gripper action ranges.

robots.navi_wa2

KeyMeaning
ttServo/control period in seconds.
gainServo gain.
camera.topic_dictCompressed ROS image topics keyed by head, hand_left, and hand_right.
action_layoutContinuous arm and stepwise hand action ranges.
reset_positionFull reset pose vector; ordering must match the Navi WA2 driver.

Server and model dictionary

get_vla_server_config() provides zmq, max_infer_workers, max_decode_workers, and models.

KeyMeaning
zmqSame VLA network fields as vla_zmq; the server binds its ROUTER socket using the configured port.
max_infer_workersMaximum concurrent inference workers. Set to 1 to disable concurrent inference.
max_decode_workersMaximum image-decoding workers.
models.typeSelected model: mock, act, gr00t_n1, gr00t_n1_5, gr00t_n1_6, rdt, smolvla, go1, pi0, pi05, or tao.

Model-specific keys are as follows:

Model sectionKeysMeaning
models.mockmodel_pathMock-model path placeholder.
models.actmodel_pathACT checkpoint path.
models.gr00tmodel_path, embodiment_tag, data_config_keyGR00T checkpoint plus supported embodiment and data-configuration identifiers.
models.rdtmodel_path, config_path, vision_encoder_name_or_path, lang_embd_pathRDT checkpoint, model configuration, vision encoder, and language embedding paths.
models.smolvlamodel_path, root_pathSmolVLA checkpoint and associated data/root path.
models.go1model_path, exp_path, data_stats_pathGO1 checkpoint, importable experiment path, and normalization statistics JSON.
models.pi0, models.pi05config, model_path, is_handOpenPI model configuration/checkpoint; is_hand enables hand-action handling.
models.taomodel_path, embodiment_tagTAO checkpoint and a TAO-registry embodiment identifier.

Paths must be valid on the inference-server host. embodiment_tag and data_config_key are model-library identifiers, not arbitrary labels; use values registered by the matching model installation.

Visualization ZMQ configuration

get_vis_zmq_config() is used by the standalone visualization ZMQ service.

KeyMeaning
client_ip, client_portAddress used by a visualization client.
server_ip, server_portBind address used by the visualization server; * binds all interfaces.

Logging configuration

conf/logging_conf.py is programmatic logging configuration rather than a YAML parameter dictionary. It writes timestamped files below logs/, moves prior-day files into date directories, and removes date directories older than seven days. Console logging defaults to INFO; file logging defaults to DEBUG. Use setup_logging(log_filename, logger_name) when adding an entry point.