Files
toid/toid_lidar/launch/launch.py
2026-04-11 15:56:28 +02:00

68 lines
2.2 KiB
Python

from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.conditions import IfCondition
from launch.substitutions import PathJoinSubstitution, LaunchConfiguration
from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare
from pathlib import Path
def generate_launch_description():
basedir = FindPackageShare("").find("toid_lidar")
lidar_config = PathJoinSubstitution([basedir, "params/lidar.yaml"])
rviz_config = PathJoinSubstitution([basedir, "rviz/conf.rviz"])
visualize = LaunchConfiguration("visualize")
draw_markers = LaunchConfiguration("draw_markers")
use_closest = LaunchConfiguration("use_closest")
lidar_frame = LaunchConfiguration("lidar_frame")
return LaunchDescription(
[
DeclareLaunchArgument(
"visualize",
default_value="False",
description="Whether to launch rviz2",
),
DeclareLaunchArgument(
"draw_markers", default_value="False", description="Draw markers"
),
DeclareLaunchArgument(
"use_closest",
default_value="True",
description="Use closest point for calibration",
),
DeclareLaunchArgument(
"lidar_frame",
default_value="lidar_frame",
description="TF frame of the lidar",
),
Node(
package="toid_lidar",
executable="toid_lidar",
output="screen",
parameters=[
lidar_config,
{"closest": use_closest, "draw_markers": draw_markers},
],
),
Node(
package="rplidar_ros",
executable="rplidar_composition",
output="screen",
parameters=[lidar_config, {"frame_id": lidar_frame}],
),
Node(
package="rviz2",
executable="rviz2",
name="rviz2",
output="screen",
arguments=["-d", rviz_config],
condition=IfCondition(visualize),
),
]
)