63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
import os
|
|
|
|
from ament_index_python.packages import get_package_share_directory
|
|
|
|
from launch import LaunchDescription
|
|
from launch.substitutions import LaunchConfiguration
|
|
from launch.actions import DeclareLaunchArgument,IncludeLaunchDescription
|
|
from launch.conditions import IfCondition
|
|
from launch.launch_description_sources import PythonLaunchDescriptionSource
|
|
from launch_ros.actions import Node
|
|
|
|
def generate_launch_description():
|
|
use_sim_time = LaunchConfiguration('use_sim_time', default='false')
|
|
use_rviz = LaunchConfiguration('use_rviz', default='true')
|
|
map_dir = LaunchConfiguration(
|
|
'map',
|
|
default=os.path.join(
|
|
get_package_share_directory('agvpro_navigation2'),
|
|
'map',
|
|
'map.yaml'))
|
|
|
|
param_file_name = 'agvpro.yaml'
|
|
param_dir = LaunchConfiguration(
|
|
'params_file',
|
|
default=os.path.join(
|
|
get_package_share_directory('agvpro_navigation2'),
|
|
'param',
|
|
param_file_name))
|
|
|
|
nav2_launch_file_dir = os.path.join(get_package_share_directory('nav2_bringup'), 'launch')
|
|
|
|
rviz_config_dir = os.path.join(
|
|
get_package_share_directory('agvpro_navigation2'),
|
|
'rviz',
|
|
'agvpro_navigation2.rviz')
|
|
|
|
return LaunchDescription([
|
|
DeclareLaunchArgument(
|
|
'map',
|
|
default_value=map_dir,
|
|
description='Full path to map file to load'),
|
|
|
|
DeclareLaunchArgument(
|
|
'params_file',
|
|
default_value=param_dir,
|
|
description='Full path to param file to load'),
|
|
|
|
IncludeLaunchDescription(
|
|
PythonLaunchDescriptionSource([nav2_launch_file_dir, '/bringup_launch.py']),
|
|
launch_arguments={
|
|
'map': map_dir,
|
|
'params_file': param_dir}.items(),
|
|
),
|
|
|
|
Node(
|
|
package='rviz2',
|
|
executable='rviz2',
|
|
name='rviz2',
|
|
arguments=['-d', rviz_config_dir],
|
|
parameters=[{'use_sim_time': use_sim_time}],
|
|
condition=IfCondition(use_rviz),
|
|
output='screen'),
|
|
]) |