95 lines
2.8 KiB
Python
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,
|
||
|
]
|
||
|
)
|