sweeper_200/src/common/launch_system/launch/start_all.launch.py

187 lines
4.3 KiB
Python
Raw Normal View History

2026-01-30 09:07:15 +08:00
from launch import LaunchDescription
from launch_ros.actions import Node
from launch.actions import TimerAction, ExecuteProcess
2026-01-30 09:07:15 +08:00
from ament_index_python.packages import get_package_share_directory
import os
def generate_launch_description():
rslidar_sdk_dir = get_package_share_directory("rslidar_sdk")
pointcloud_merger_dir = get_package_share_directory("rslidar_pointcloud_merger")
fu_dir = get_package_share_directory("fu")
2026-03-09 19:08:43 +08:00
vehicle_params = Node(
package="vehicle_params",
executable="vehicle_params_node",
output="screen",
prefix="taskset -c 0",
)
can_radio_ctrl = TimerAction(
period=0.2,
actions=[
Node(
package="can_radio_ctrl",
executable="can_radio_ctrl_node",
output="screen",
prefix="taskset -c 0",
)
]
)
remote_ctrl = TimerAction(
period=0.4,
actions=[
Node(
package="remote_ctrl",
executable="remote_ctrl_node",
output="screen",
prefix="taskset -c 2",
)
]
)
mc = TimerAction(
period=0.6,
actions=[
Node(
package="mc",
executable="mc_node",
output="screen",
2026-04-20 09:44:09 +08:00
prefix="taskset -c 2",
)
]
)
ctrl_arbiter = TimerAction(
period=0.8,
actions=[
Node(
package="ctrl_arbiter",
executable="ctrl_arbiter_node",
output="screen",
prefix="taskset -c 1",
)
]
)
pl = TimerAction(
period=1.0,
actions=[
Node(
package="pl",
executable="pl_node",
output="screen",
2026-04-20 09:44:09 +08:00
prefix="taskset -c 3",
)
]
)
mqtt_report = TimerAction(
period=1.3,
actions=[
Node(
package="mqtt_report",
executable="mqtt_report_node",
output="screen",
2026-04-20 09:44:09 +08:00
prefix="taskset -c 7",
)
]
)
lidar_driver = TimerAction(
period=1.6,
actions=[
ExecuteProcess(
cmd=["ros2", "launch", "rslidar_sdk", "start_double.launch.py"],
output="screen",
2026-04-20 09:44:09 +08:00
prefix="taskset -c 4,5",
)
]
)
pointcloud_merger = TimerAction(
period=3.1,
actions=[
ExecuteProcess(
cmd=["ros2", "launch", "rslidar_pointcloud_merger", "merge_two_lidars.launch.py"],
output="screen",
2026-04-20 09:44:09 +08:00
prefix="taskset -c 6",
)
]
)
rtk = TimerAction(
period=3.4,
actions=[
Node(
package="rtk",
executable="rtk_node",
output="screen",
2026-04-20 09:44:09 +08:00
prefix="taskset -c 7",
)
]
)
route = TimerAction(
period=3.7,
actions=[
Node(
package="route",
executable="route_node",
output="screen",
2026-04-20 09:44:09 +08:00
prefix="taskset -c 7",
)
]
)
sub = TimerAction(
period=4.0,
actions=[
Node(
package="sub",
executable="sub_node",
output="screen",
2026-04-20 09:44:09 +08:00
prefix="taskset -c 7",
)
]
)
task_manager = TimerAction(
period=4.3,
actions=[
Node(
package="task_manager",
executable="task_manager_node",
output="screen",
prefix="taskset -c 7",
)
]
)
fu = TimerAction(
period=4.6,
actions=[
ExecuteProcess(
cmd=["ros2", "launch", "fu", "fu.launch.py"],
output="screen",
prefix="taskset -c 7",
)
2026-01-30 09:07:15 +08:00
]
)
return LaunchDescription([
vehicle_params,
can_radio_ctrl,
remote_ctrl,
mc,
ctrl_arbiter,
pl,
mqtt_report,
lidar_driver,
pointcloud_merger,
rtk,
route,
sub,
task_manager,
fu,
])