Note: we try our best to update this consistently, but there might be some misalignment, this should be normal also considering different code runs. For example the "init_loc" parameter can be either a number or a list, depending on which version of the code you are running.
The main simulation parameters are the last ones in this page.
experiment_folder
, mandatory, the experiment folder with the USD file and the info filebody
When true process the bodiesgarments
When true process the garmentsbase_path
Human prim base path, i.e. filtering prim pathsheadless
Whether run this headless or notwrite
Whether to write resultsfast
Whether to write only the axis-aligned box or the oriented one, if False, the program will be slowboth
Whether to write both vertex types -- preference in code is both
only_exp
Whether to export only the experiment (considering the reverse strategy) or the whole sequencesget_skel
Whether to get/include the skeleton infoskel_root
This is a recognizable last part of the root of the skeleton prim, in our case _avg_root It will process ONLY the path of which the last part is this root
viewport_folder
mandatory, the "viewport" folder where npy data is savedimg_id
if negative process the whole sequence, otherwise just the img_idsave_imgs
if save imagessave_video
if save videos (will produce two videos using ffmpeg)always_update_map
if always updating the instance mapping. default to false using the first one. Useful if you toggle objectssemantics
if generate semanticoutput_dir
output directory
config_file
configuration file with options to normalize the path, and critical keys that will be used in the main folder. You want to change these to your pathsinput
input USDA file. Check the main readme on how to convert the USD file and convert back or use the .sh scriptoutput_name
output USDA fileoutput_dir
output dir
All the parameters are optional with the exception of the config file. If you remove something from the config file please be sure that is not used in the code. Otherwise, it will crash.
config_file
mandatory, the yaml file with mosst of the paramsheadless
if it's true the visualization is turned offrtx_mode
if it's true the simulation will launch with the RTX rendering (faster), else the PathTracing is usedrecord
if it's true it will write to diskdebug_vis
if it's true it will loop visualization and ros camera publishingneverending
if it's true it will continue forever the main loopfix_env
you can set this to the name of the sub-folder containing the environment that you want to load
Simulation Config YAML params -- these are described for how they are used. You can easily edit and modiy their behavior (e.g. human_path
can be your only human asset)
"Mandatory" params
env_path
: folder containing the subfolders of the environments (env_path/env1, env_path/env2, ...
). You can randomly chose or usefix_env
to specify an environment.human_path
: folder that contains the subfolders of the human animated assets, separated in the various datasets (human_path/dataset1/animationX
,human_path/dataset2/animationX
)base_env_path
: global path of the basic environment (the background). NOTE: some configs cannot be changed from the codeusd_robot_path
: global path of the USD of the robot. Can be an array as for multi_robot caserobot_mesh_path
: global path of the mesh of the robot. Can be an array as for multi_robot caseout_folder
: path of the output folder in which we will save the ROS logs, and the mapout_folder_npy
: path of the output folder in which we will save the groundtruth from the simulator code (not the rosbags)num_robots
: number of robots_recorder_settings
: what to save or what not to save. Note that some things are not implemented. I strongly suggest to NOT save colorize data. Motion-vectors can be saved with the strategy shown in replay experimentfps
the fps of the simulationphysics_hz
: NOTE THAT THIS IS THE RATE OF CLOCK AND IMUrender_hz
: LEAVE IT EQUAL TO PHYSICS HZenv_prim_path
IsaacSim internal path for the prim of the environmentrobot_base_prim_path
same thing for the robot (the number of the robot is the postfix)is_iRotate
whether the robot is Robotino or not, this changes the launched ROS and some settings. Note that this can be a vector, and can be expanded to different robots
THE OPTIONAL PARAMETER NEED TO BE EXPLICITLY ADDRESSED IN THE CODE. This wants to be a reference to search code and understand what is going on
Depending on usage params - experiment
experiment_length
: camera frames length of the experiment (seconds * camera_fps
), will be overridden byneverending
. In the savana experiment this has not been used (experiment ends when last waypoint reached)num_humans
: depends on your usage, can be fixed, minimum number or whatever you want[robot,npy]_sensor_size
camera sensor size for robot and npy data. Can be equal. Npy not necessary if not loaded.bootstrap_exploration
: seconds to boostrap the simulation before starting from time 0 (min(abs(this_value), 1/(physics_hz/ratio_camera)). It sets the time negative and cicle through physics and rendering.reverse_strategy
: timeline reverse strategy based on the loaded animation lengths. Possibilities are [min, max, avg, half, none], works only with animated sequences. It makes the timeline going backward/forward based on this. It will roll back the simulation timeline (not the time, just the animation). This uses the animation length (seepaper_simulation.py
)anim_exp_len
an alternative ofreverse_strategy
, rewinding the simulation after this many framesclean_base_env
whether to remove some things from the base environment loaded at the beginning.reload_references
whether to reload the references of the assets or not. Sometimes it might be necessary (seems solved in the newer versions)generate_map
whether to generate the occupancy map or not. Works only if stls are loaded. Suggest to use only with limited environments (it takes a while to add collisions).
Depending on usage params - robot movement
autonomous
: true -> use FUEL, false -> use random goals (not fully tested), this is applicable only to the main paper simulation, used with autonomous=True. just to show it.use_robot_traj
: Whether to use or not a predefined traj not physics enableduse_joint_traj
: Whether to use or not joint trajecotry physics enabled. This cannot be true at the same time of robot_traj.robot_traj
: The trajectory remember that movement will be linear and instantaneous. No acceleration or anything. This implies no odom, nor IMU data. If you want those, please add the same trajectory to a joint publisher.init_loc
: initial location for the robot (the elements can be vectors as in the multi-robot case)
Depending on usage params - humans
max_distance_human_ground
: max distance from human to ground to be consider to force the first frame grounding of animationsallow_collision
: max number of collisions allowed between the stl of the human and the stl of the environmenthuman_base_prim_path
for the humans (the number of the human is the postfix)[max,min]_human_anim_len
: [Max,Min]imum human animation to be considered.
Depending on usage params - objects
obstacles
: increase those numbers to load shapenet or google objects (or any other objects)google_obj_folder
: google_scanned_objects folder. Structure isfolder/exported_usd
andfolder/assets
google_obj_shortlist
: shortlist some objects, not fully testedshapenet_local_dir
: local dir of ShapeNet suggestion is to download this beforehandshapenet_username
: if want to download on the fly. Last time I tried it was not working anymore.shapenet_password
: if want to download on the fly. Last time I tried it was not working anymore.synsetId
: shortlist some objects, not fully testedmodelId
: shortlist some objects, not fully tested
Depending on usage params - simulation
ratio_[tf,odom,camera,...]
: physics_hz/ratio_tf = tf publish hz_random_light
intensity
If intensity needs to be changedcolor
If color needs to be changedintensity_interval
during_experiment
Change color/intensity during the experimentn-frames
if during experiment True switch the color of the lightsmooth
NOT IMPLEMENTED
_random_roughness
Roughness/reflectance of the materialsenabled
If enabledintensity_interval
Depending on usage params - others
only_placement
if the placement strategy should be the only ROS thing launched. Following a similar strategy all ROS can be disabled.use_stl
wheter to load the STLs of env/humans or not. This will have repercussion but gives the possibility to avoid generating/loading the STL files.