2023-03-07 14:42:53 -04:00
|
|
|
# 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:
|
|
|
|
|
2023-03-07 14:42:53 -04:00
|
|
|
ros2 launch ardupilot_sitl sitl_dds_serial.launch.py
|
2023-03-07 14:42:53 -04:00
|
|
|
"""
|
|
|
|
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
|
|
|
|
|
|
|
|
|
2023-03-07 14:42:53 -04:00
|
|
|
def generate_launch_description() -> LaunchDescription:
|
2023-03-07 14:42:53 -04:00
|
|
|
"""Generate a launch description to bring up ArduPilot SITL with DDS."""
|
2023-03-07 14:42:53 -04:00
|
|
|
# Compose launch files.
|
2023-03-07 14:42:53 -04:00
|
|
|
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,
|
|
|
|
]
|
|
|
|
)
|