# 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 . """ Launch ArduPilot SITL, MAVProxy and the microROS DDS agent. Run with default arguments: ros2 launch ardupilot_sitl sitl_dds_serial.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() -> LaunchDescription: """Generate a launch description to bring up ArduPilot SITL with DDS.""" # Compose 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, ] )