ardupilot/Tools/ros2/ardupilot_sitl/launch/sitl_dds.launch.py

95 lines
2.8 KiB
Python

# Copyright 2023 ArduPilot.org.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
Launch ArduPilot SITL, MAVProxy and the microROS DDS agent.
Run with default arguments:
ros2 launch ardupilot_sitl sitl_dds.launch.py
"""
from launch import LaunchDescription
from launch.actions import IncludeLaunchDescription
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import PathJoinSubstitution
from launch_ros.substitutions import FindPackageShare
def generate_launch_description():
"""Generate a launch description to bring up ArduPilot SITL with DDS."""
# Include component launch files.
virtual_ports = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
[
PathJoinSubstitution(
[
FindPackageShare("ardupilot_sitl"),
"launch",
"virtual_ports.launch.py",
]
),
]
)
)
micro_ros_agent = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
[
PathJoinSubstitution(
[
FindPackageShare("ardupilot_sitl"),
"launch",
"micro_ros_agent.launch.py",
]
),
]
)
)
sitl = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
[
PathJoinSubstitution(
[
FindPackageShare("ardupilot_sitl"),
"launch",
"sitl.launch.py",
]
),
]
)
)
mavproxy = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
[
PathJoinSubstitution(
[
FindPackageShare("ardupilot_sitl"),
"launch",
"mavproxy.launch.py",
]
),
]
)
)
return LaunchDescription(
[
virtual_ports,
micro_ros_agent,
sitl,
mavproxy,
]
)