49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
from launch.launch_description import LaunchDescription
|
|
from launch.actions import IncludeLaunchDescription, DeclareLaunchArgument
|
|
from launch.substitutions import PathJoinSubstitution, LaunchConfiguration
|
|
from launch_ros.substitutions import FindPackageShare
|
|
from launch_ros.actions import Node
|
|
from launch.launch_description_sources import PythonLaunchDescriptionSource
|
|
|
|
|
|
def generate_launch_description():
|
|
|
|
# Launch arguments
|
|
launch_args = []
|
|
|
|
launch_args.append(DeclareLaunchArgument(
|
|
name="robot_name",
|
|
default_value="roboasm_sgonov",
|
|
description="Set robot name."
|
|
))
|
|
|
|
# Launch Gazebo
|
|
gazebo = IncludeLaunchDescription(
|
|
PythonLaunchDescriptionSource(
|
|
PathJoinSubstitution([
|
|
FindPackageShare("gazebo_ros"),
|
|
"launch",
|
|
"gazebo.launch.py"
|
|
])
|
|
)
|
|
)
|
|
|
|
# Note: Environment variable GAZEBO_MODEL_PATH is extended as in
|
|
# ROS2 control demos via environment hook https://github.com/ros-controls/ros2_control_demos/tree/master/ros2_control_demo_description/rrbot_description
|
|
# Also see https://colcon.readthedocs.io/en/released/developer/environment.html#dsv-files
|
|
# Gazebo launch scripts append GAZEBO_MODEL_PATH with known paths, see https://github.com/ros-simulation/gazebo_ros_pkgs/blob/ab1ae5c05eda62674b36df74eb3be8c93cdc8761/gazebo_ros/launch/gzclient.launch.py#L26
|
|
spawn_entity = Node(
|
|
package="gazebo_ros",
|
|
executable="spawn_entity.py",
|
|
arguments=[
|
|
"-topic", "robot_description",
|
|
"-entity", LaunchConfiguration("robot_name")
|
|
],
|
|
output="screen"
|
|
)
|
|
|
|
return LaunchDescription(
|
|
launch_args + [
|
|
gazebo,
|
|
spawn_entity
|
|
])
|