diff --git a/vrx_gz/launch/competition.launch.py b/vrx_gz/launch/competition.launch.py index 7c62dfb09..aaf3eb36a 100644 --- a/vrx_gz/launch/competition.launch.py +++ b/vrx_gz/launch/competition.launch.py @@ -32,6 +32,8 @@ def launch(context, *args, **kwargs): robot = LaunchConfiguration('robot').perform(context) headless = LaunchConfiguration('headless').perform(context).lower() == 'true' robot_urdf = LaunchConfiguration('urdf').perform(context) + gz_paused = LaunchConfiguration('paused').perform(context).lower() == 'true' + extra_gz_args = LaunchConfiguration('extra_gz_args').perform(context) launch_processes = [] @@ -46,7 +48,8 @@ def launch(context, *args, **kwargs): models.append(m) world_name, ext = os.path.splitext(world_name) - launch_processes.extend(vrx_gz.launch.simulation(world_name, headless)) + launch_processes.extend(vrx_gz.launch.simulation(world_name, headless, + gz_paused, extra_gz_args)) world_name_base = os.path.basename(world_name) launch_processes.extend(vrx_gz.launch.spawn(sim_mode, world_name_base, models, robot)) @@ -91,5 +94,13 @@ def generate_launch_description(): 'urdf', default_value='', description='URDF file of the wam-v model. '), + DeclareLaunchArgument( + 'paused', + default_value='False', + description='True to start the simulation paused. '), + DeclareLaunchArgument( + 'extra_gz_args', + default_value='', + description='Additional arguments to be passed to gz sim. '), OpaqueFunction(function=launch), ]) diff --git a/vrx_gz/src/vrx_gz/launch.py b/vrx_gz/src/vrx_gz/launch.py index 26b428a37..cc2a99cc9 100644 --- a/vrx_gz/src/vrx_gz/launch.py +++ b/vrx_gz/src/vrx_gz/launch.py @@ -104,10 +104,16 @@ 'follow_path2' ] -def simulation(world_name, headless=False): - gz_args = ['-v 4', '-r'] +def simulation(world_name, headless=False, paused=False, extra_gz_args=''): + gz_args = ['-v 4'] + if not paused: + gz_args.append('-r') + if headless: gz_args.append('-s') + + gz_args.append(extra_gz_args) + gz_args.append(f'{world_name}.sdf') gz_sim = IncludeLaunchDescription(