Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bt_navigator:
- ros__parameters:
- use_sim_time: True
- global_frame: map
- robot_base_frame: base_link
- odom_topic: /odom
- bt_loop_duration: 10
- default_server_timeout: 20
- enable_groot_monitoring: True
- groot_zmq_publisher_port: 1666
- groot_zmq_server_port: 1667
- # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:
- # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml
- # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml
- # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.
- plugin_lib_names:
- - nav2_compute_path_to_pose_action_bt_node
- - nav2_compute_path_through_poses_action_bt_node
- - nav2_follow_path_action_bt_node
- - nav2_back_up_action_bt_node
- - nav2_spin_action_bt_node
- - nav2_wait_action_bt_node
- - nav2_clear_costmap_service_bt_node
- - nav2_is_stuck_condition_bt_node
- - nav2_goal_reached_condition_bt_node
- - nav2_goal_updated_condition_bt_node
- - nav2_initial_pose_received_condition_bt_node
- - nav2_reinitialize_global_localization_service_bt_node
- - nav2_rate_controller_bt_node
- - nav2_distance_controller_bt_node
- - nav2_speed_controller_bt_node
- - nav2_truncate_path_action_bt_node
- - nav2_goal_updater_node_bt_node
- - nav2_recovery_node_bt_node
- - nav2_pipeline_sequence_bt_node
- - nav2_round_robin_node_bt_node
- - nav2_transform_available_condition_bt_node
- - nav2_time_expired_condition_bt_node
- - nav2_distance_traveled_condition_bt_node
- - nav2_single_trigger_bt_node
- - nav2_is_battery_low_condition_bt_node
- - nav2_navigate_through_poses_action_bt_node
- - nav2_navigate_to_pose_action_bt_node
- - nav2_remove_passed_goals_action_bt_node
- - nav2_planner_selector_bt_node
- - nav2_controller_selector_bt_node
- - nav2_goal_checker_selector_bt_node
- bt_navigator_rclcpp_node:
- ros__parameters:
- use_sim_time: True
- controller_server:
- ros__parameters:
- use_sim_time: True
- controller_frequency: 20.0
- min_x_velocity_threshold: 0.01 #0.001
- min_y_velocity_threshold: 0.5
- min_theta_velocity_threshold: 0.01 #0.001
- failure_tolerance: 1.0 #0.3
- progress_checker_plugin: "progress_checker"
- goal_checker_plugins: ["general_goal_checker"] # "precise_goal_checker"
- controller_plugins: ["FollowPath"]
- # Progress checker parameters
- progress_checker:
- plugin: "nav2_controller::SimpleProgressChecker"
- required_movement_radius: 0.5 #1.0 #0.5
- movement_time_allowance: 10.0
- # Goal checker parameters
- # precise_goal_checker:
- # plugin: "nav2_controller::SimpleGoalChecker"
- # xy_goal_tolerance: 1.0
- # yaw_goal_tolerance: 1.0
- # stateful: True
- general_goal_checker:
- stateful: True
- plugin: "nav2_controller::SimpleGoalChecker"
- xy_goal_tolerance: 3.0 #0.25
- yaw_goal_tolerance: 25.0 #0.25
- # DWB parameters
- FollowPath:
- plugin: "dwb_core::DWBLocalPlanner"
- debug_trajectory_details: True
- min_vel_x: 0.0
- min_vel_y: 0.0
- max_vel_x: 15.0
- max_vel_y: 0.0
- max_vel_theta: 10.0
- min_speed_xy: 0.0
- max_speed_xy: 26.0
- min_speed_theta: 0.0
- # Add high threshold velocity for turtlebot 3 issue.
- # https://github.com/ROBOTIS-GIT/turtlebot3_simulations/issues/75
- acc_lim_x: 25.0
- acc_lim_y: 0.0
- acc_lim_theta: 25.0
- decel_lim_x: -25.0
- decel_lim_y: 0.0
- decel_lim_theta: -25.0
- vx_samples: 20
- vy_samples: 5
- vtheta_samples: 20
- sim_time: 1.7
- linear_granularity: 0.05 #0.05 # Distance between consecutive points in the path. Lower values increase resolution but also computational cost.
- angular_granularity: 0.25 #0.025 # Minimum change in orientation between path points. Smaller values lead to smoother turns but higher computational expense
- transform_tolerance: 0.2
- xy_goal_tolerance: 2.0 #0.25
- trans_stopped_velocity: 0.25
- short_circuit_trajectory_evaluation: True
- stateful: True
- critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"]
- BaseObstacle.scale: 0.02
- PathAlign.scale: 32.0
- PathAlign.forward_point_distance: 0.1
- GoalAlign.scale: 24.0
- GoalAlign.forward_point_distance: 0.1
- PathDist.scale: 32.0
- GoalDist.scale: 24.0
- RotateToGoal.scale: 32.0
- RotateToGoal.slowing_factor: 5.0
- RotateToGoal.lookahead_time: -1.0
- controller_server_rclcpp_node:
- ros__parameters:
- use_sim_time: True
- local_costmap:
- local_costmap:
- ros__parameters:
- #Added below to enable slam
- unknown_cost_value: 0
- lethal_cost_threshold: 100
- update_frequency: 5.0
- publish_frequency: 2.0
- global_frame: odom
- robot_base_frame: base_link
- use_sim_time: True
- rolling_window: true
- width: 50
- height: 50
- resolution: 0.2
- #robot_radius: 0.22
- footprint: "[[-4.8025, -1.739], [4.8025, -1.739], [4.8025, 1.739], [-4.8025, 1.739]]"
- plugins: ["voxel_layer", "inflation_layer"]
- inflation_layer:
- plugin: "nav2_costmap_2d::InflationLayer"
- cost_scaling_factor: 1.0 #3.0
- inflation_radius: 0.5 #2.0 #0.55
- voxel_layer:
- plugin: "nav2_costmap_2d::VoxelLayer"
- enabled: True
- publish_voxel_map: True
- origin_z: 2.0
- z_resolution: 0.2
- z_voxels: 32
- max_obstacle_height: 2.0 #2.0 # 3.5 m is > 3.041 meters (max truck height)
- min_obstacle_height: 0.0 # IGNORING GROUND AS OBSTACLE AND SMALL THING UNDER 0.5 Meters.
- mark_threshold: 0
- observation_sources: fused_scan #outside_truck_scan #real_kinect_sensor/scan
- fused_scan:
- topic: /fused_scan #/real_kinect_sensor/scan
- max_obstacle_height: 2.0
- clearing: True
- marking: True
- data_type: "LaserScan"
- raytrace_max_range: 50.0 # Half of maximum lidar data range
- raytrace_min_range: 0.0 #Lidar is detecting the cabin itself as obstacle and populating costmap around the robot set param >0.0
- obstacle_max_range: 50.0 # Half of maximum lidar data range
- obstacle_min_range: 1.0 # > 0.0 avoid that lidar detect truck as obstacle #Lidar is detecting the cabin itself as obstacle and populating costmap around the robot set param >0.0
- static_layer:
- map_subscribe_transient_local: True
- always_send_full_costmap: True
- local_costmap_client:
- ros__parameters:
- use_sim_time: True
- local_costmap_rclcpp_node:
- ros__parameters:
- use_sim_time: True
- global_costmap:
- global_costmap:
- ros__parameters:
- unknown_cost_value: 0 # slightly less than 255 to be more explorative
- lethal_cost_threshold: 100
- #Added above to improve slam exploration
- update_frequency: 1.0
- publish_frequency: 1.0
- global_frame: map
- robot_base_frame: base_link
- use_sim_time: True
- footprint: "[[-4.8025, -1.739], [4.8025, -1.739], [4.8025, 1.739], [-4.8025, 1.739]]"
- #robot_radius: 0.22
- resolution: 0.2
- track_unknown_space: true
- plugins: ["static_layer", "obstacle_layer", "inflation_layer"]
- obstacle_layer:
- plugin: "nav2_costmap_2d::ObstacleLayer"
- enabled: True
- observation_sources: fused_scan #outside_truck_scan #left_scan real_kinect_sensor/scan
- outside_truck_scan:
- topic: /fused_scan
- max_obstacle_height: 2.0
- clearing: True
- marking: True
- data_type: "LaserScan"
- raytrace_max_range: 100.0
- raytrace_min_range: 0.0
- obstacle_max_range: 25.0
- obstacle_min_range: 1.0
- # fused_scan:
- # topic: /fused_scan
- # max_obstacle_height: 2.0
- # clearing: True
- # marking: True
- # data_type: "LaserScan"
- # raytrace_max_range: 100.0
- # raytrace_min_range: 0.0
- # obstacle_max_range: 25.0
- # obstacle_min_range: 1.0
- static_layer:
- plugin: "nav2_costmap_2d::StaticLayer"
- map_subscribe_transient_local: True
- inflation_layer:
- plugin: "nav2_costmap_2d::InflationLayer"
- cost_scaling_factor: 1.0 #3.0
- inflation_radius: 0.5 #2.0 #0.55
- always_send_full_costmap: True
- global_costmap_client:
- ros__parameters:
- use_sim_time: True
- global_costmap_rclcpp_node:
- ros__parameters:
- use_sim_time: True
- map_server:
- ros__parameters:
- use_sim_time: True
- yaml_filename: "empty_map.yaml"
- map_saver:
- ros__parameters:
- use_sim_time: True
- save_map_timeout: 5.0
- free_thresh_default: 0.25
- occupied_thresh_default: 0.65
- map_subscribe_transient_local: True
- planner_server:
- ros__parameters:
- expected_planner_frequency: 20.0
- use_sim_time: True
- planner_plugins: ["GridBased"]
- GridBased:
- plugin: "nav2_smac_planner/SmacPlannerHybrid" #"nav2_smac_planner/SmacPlannerLattice"
- downsample_costmap: false
- downsampling_factor: 1
- tolerance: 1.0 #0.5 #0.25 # Adjust based on how much error you can tolerate in the planned path
- allow_unknown: true
- cost_scaling_factor: 0.9
- neutral_cost: 50
- max_iterations: 1000000
- max_on_approach_iterations: 1000
- max_planning_time: 10.0 # If you find planning takes too long, you might want to lower this
- motion_model_for_search: "DUBIN" #"REEDS_SHEPP"
- angle_quantization_bins: 72
- analytic_expansion_ratio: 3.5
- analytic_expansion_max_length: 3.0
- #The parameter below creates a curve shape of the end of planner forcing a curved
- minimum_turning_radius: 0.00001 # Adjust based on your robot's actual turning radius
- reverse_penalty: 2.0
- change_penalty: 0.0
- non_straight_penalty: 1.2
- cost_penalty: 2.0
- retrospective_penalty: 0.015
- lookup_table_size: 20.0
- cache_obstacle_heuristic: false
- smooth_path: True # If your robot can handle sharp turns, you might not need path smoothing
- costmap:
- resolution: 0.75 #0.2
- #width: 25 #150
- #height: 25 #150
- #radius: 0.22
- footprint: "[[-4.8025, -1.739], [4.8025, -1.739], [4.8025, 1.739], [-4.8025, 1.739]]"
- smoother:
- max_iterations: 2000 #1000
- w_smooth: 1.0 #0.5 # 0.3 # Adjust based on how much smoothing you want (higher value means more smoothing)
- w_data: 1.0 #0.5 #0.2 # Adjust based on how closely you want the smoothed path to adhere to the original path
- tolerance: 1.0e-10
- do_refinement: true
- refinement_num: 10 #2
- planner_server_rclcpp_node:
- ros__parameters:
- use_sim_time: True
- recoveries_server:
- ros__parameters:
- costmap_topic: local_costmap/costmap_raw
- footprint_topic: local_costmap/published_footprint
- cycle_frequency: 10.0
- recovery_plugins: ["spin", "backup", "wait"]
- spin:
- plugin: "nav2_recoveries/Spin"
- backup:
- plugin: "nav2_recoveries/BackUp"
- wait:
- plugin: "nav2_recoveries/Wait"
- global_frame: odom
- robot_base_frame: base_link
- transform_timeout: 0.1
- use_sim_time: true
- simulate_ahead_time: 2.0
- max_rotational_vel: 1.0
- min_rotational_vel: 0.4
- rotational_acc_lim: 3.2
- robot_state_publisher:
- ros__parameters:
- use_sim_time: True
- waypoint_follower:
- ros__parameters:
- loop_rate: 20
- stop_on_failure: false
- waypoint_task_executor_plugin: "wait_at_waypoint"
- wait_at_waypoint:
- plugin: "nav2_waypoint_follower::WaitAtWaypoint"
- enabled: True
- waypoint_pause_duration: 200
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement