62 lines
1.8 KiB
Python
Executable File
62 lines
1.8 KiB
Python
Executable File
#!/usr/bin/env -S ros2 launch
|
|
"""Launch script for spawning Franka Emika Panda into Ignition Gazebo world"""
|
|
|
|
from typing import List
|
|
|
|
from launch_ros.actions import Node
|
|
|
|
from launch import LaunchDescription
|
|
from launch.actions import DeclareLaunchArgument
|
|
from launch.substitutions import LaunchConfiguration
|
|
|
|
|
|
def generate_launch_description() -> LaunchDescription:
|
|
|
|
# Declare all launch arguments
|
|
declared_arguments = generate_declared_arguments()
|
|
|
|
# Get substitution for all arguments
|
|
model = LaunchConfiguration("model")
|
|
use_sim_time = LaunchConfiguration("use_sim_time")
|
|
log_level = LaunchConfiguration("log_level")
|
|
|
|
# List of nodes to be launched
|
|
nodes = [
|
|
# ros_ign_gazebo_create
|
|
Node(
|
|
package="ros_ign_gazebo",
|
|
executable="create",
|
|
output="log",
|
|
arguments=["-file", model, "--ros-args", "--log-level", log_level],
|
|
parameters=[{"use_sim_time": use_sim_time}],
|
|
),
|
|
]
|
|
|
|
return LaunchDescription(declared_arguments + nodes)
|
|
|
|
|
|
def generate_declared_arguments() -> List[DeclareLaunchArgument]:
|
|
"""
|
|
Generate list of all launch arguments that are declared for this launch script.
|
|
"""
|
|
|
|
return [
|
|
# Model for Ignition Gazebo
|
|
DeclareLaunchArgument(
|
|
"model",
|
|
default_value="panda",
|
|
description="Name or filepath of model to load.",
|
|
),
|
|
# Miscellaneous
|
|
DeclareLaunchArgument(
|
|
"use_sim_time",
|
|
default_value="true",
|
|
description="If true, use simulated clock.",
|
|
),
|
|
DeclareLaunchArgument(
|
|
"log_level",
|
|
default_value="warn",
|
|
description="The level of logging that is applied to all ROS 2 nodes launched by this script.",
|
|
),
|
|
]
|