- Lightweight MPPI (200 trajectories, 15 steps, endpoint path_align) - adaptive exploration (more random when stuck) - fence-line Hough detection + geometric correction - scan hit points marked at 255 immediately - forward half-step pre-check for obstacle avoidance - Ackermann constraint |wz| <= |vx|/min_turn_r - XORshift RNG (stdlib broken on ARM)
32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
from launch import LaunchDescription
|
|
from launch.actions import DeclareLaunchArgument
|
|
from launch.substitutions import LaunchConfiguration
|
|
from launch_ros.actions import Node
|
|
|
|
def generate_launch_description():
|
|
return LaunchDescription([
|
|
DeclareLaunchArgument("map_file", default_value="/home/cyy/sim_map.pgm"),
|
|
DeclareLaunchArgument("lookahead", default_value="0.8"),
|
|
DeclareLaunchArgument("test_mode", default_value="false"),
|
|
|
|
# Static TF: base_link → laser
|
|
Node(
|
|
package="tf2_ros", executable="static_transform_publisher",
|
|
name="tf_laser",
|
|
arguments=["0","0","0.12","0","0","0","base_link","laser"],
|
|
),
|
|
|
|
# Main navigation node
|
|
Node(
|
|
package="car_nav_lite",
|
|
executable="nav_lite_node",
|
|
name="nav_lite_node",
|
|
output="screen",
|
|
parameters=[{
|
|
"map_file": LaunchConfiguration("map_file"),
|
|
"lookahead": LaunchConfiguration("lookahead"),
|
|
"test_mode": LaunchConfiguration("test_mode"),
|
|
}],
|
|
),
|
|
])
|