zoukankan      html  css  js  c++  java
  • teb-安装

    源码:https://github.com/rst-tu-dortmund/teb_local_planner.git

    以husky为例子:

    1.在gazebo里面配置好机器人底盘的环境

    roslaunch husky_gazebo husky_playpen.launch

    https://github.com/husky/husky/tree/kinetic-devel/husky_gazebo

    2.配置teb

    launch文件的内容

    <launch>
            <master auto = "start"/>
            <!--Run footprint laser filter-->
            <!--node name="laser_filter" pkg="tfrbt_navigation" type="laser_footprint_filter"-->
    
            <!--Run the map server-->
            <!--arg name = "map_file" default = "$(find tfrbt_navigation)/maps/tfrbt_map.yaml"/-->
            <!--arg name = "map_file" default = "$(env TFRBT_MAP_FILE)"/-->
            <node name = "map_server" pkg = "map_server" type = "map_server" args = "$(find tfrbt_navigation)/maps/tfrbt_map.yaml">
        <param name="frame_id" value="/map"/>
      </node>
    
            <!--Run AMCL-->
            <arg name = "custom_amcl_launch_file" default = "$(find tfrbt_navigation)/launch/includes/amcl/front_back_lasers.launch.xml"/>
            <arg name = "initial_pose_x" default = "0.0"/>
            <arg name = "initial_pose_y" default = "0.0"/>
            <arg name = "initial_pose_a" default = "0.0"/>
            <include file = "$(arg custom_amcl_launch_file)">
                    <arg name = "initial_pose_x" value = "arg initial_pose_x"/>
                    <arg name = "initial_pose_y" value = "arg initial_pose_y"/>
                    <arg name = "initial_pose_a" value = "arg initial_pose_a"/>
            </include>
    
            <!--Run Move Base-->
            <arg name = "custom_param_file" default = "$(find tfrbt_navigation)/param/laser_costmap_params.yaml"/>
            <include file = "$(find tfrbt_navigation)/launch/includes/move_base_teb.launch.xml"> <!--move_base_dwa.launch.xml-->
                    <arg name = "custom_param_file" value = "$(arg custom_param_file)"/>
            </include>
    
            <!--node name="rviz" pkg="rviz" type="rviz" args="-d $(find teb_local_planner_tutorials)/cfg/rviz_navigation.rviz"/-->
    </launch>
    View Code

    主要是文件move_base_teb.launch.xml的配置,查看其内容

    <launch>
            <!--include file = "$(find tfrbt_navigation)/launch/includes/velocity_smoother.launch.xml"/-->
            <!--include file = "$(find tfrbt_navigation)/launch/includes/safety_controller.launch.xml"/-->
            <arg name = "odom_frame_id"     default = "odom"/>
            <arg name = "base_frame_id"     default = "base_link"/>
            <arg name = "global_frame_id"   default = "map"/>
            <arg name = "odom_topic"        default = "odom"/>
            <arg name = "laser_topic"       default = "scan"/>
            <arg name = "custom_param_file" default = "$(find tfrbt_navigation)/param/dummy.yaml"/>
    
            <node pkg = "move_base" type = "move_base" respawn = "false" name = "move_base" output = "screen">
                    <rosparam file = "$(find tfrbt_navigation)/param/teb/costmap_common_params.yaml" command = "load" ns = "global_costmap"/>
                    <rosparam file = "$(find tfrbt_navigation)/param/teb/costmap_common_params.yaml" command = "load" ns = "local_costmap"/>
                    <rosparam file = "$(find tfrbt_navigation)/param/teb/local_costmap_params.yaml" command = "load"/>
                    <rosparam file = "$(find tfrbt_navigation)/param/teb/global_costmap_params.yaml" command = "load"/>
                    <rosparam file = "$(find tfrbt_navigation)/param/teb/teb_local_planner_params.yaml" command = "load"/>
                    <!--rosparam file = "$(find tfrbt_navigation)/param/teb/move_base_params.yaml" command = "load"/-->
                    <!--rosparam file = "$(find tfrbt_navigation)/param/teb/global_planner_params.yaml" command = "load"/-->
                    <!--rosparam file = "$(find tfrbt_navigation)/param/teb/navfn_global_planner_params.yaml" command = "load"/-->
                    <rosparam file = "$(arg custom_param_file)" command = "load"/>
    
                                                                    <param name="base_global_planner" value="global_planner/GlobalPlanner" />
                                <param name="planner_frequency" value="1.0" />
                                <param name="planner_patience" value="5.0" />
    
                    <param name="base_local_planner" value="teb_local_planner/TebLocalPlannerROS" />
                                <param name="controller_frequency" value="5.0" />
                                <param name="controller_patience" value="15.0" />
    
                    <param name = "global_costmap/global_frame" value = "$(arg global_frame_id)"/>
                    <param name = "global_costmap/robot_base_frame" value = "$(arg base_frame_id)"/>
                    <param name = "local_costmap/global_frame" value = "$(arg odom_frame_id)"/>
                    <param name = "local_costmap/robot_base_frame" value = "$(arg base_frame_id)"/>
                    <!--param name = "DWAPlannerROS/global_frame_id" value = "$(arg odom_frame_id)"/-->
    
                    <!--remap from = "cmd_vel" to = "navigation_velocity_smoother/raw_cmd_vel"/-->
                    <remap from = "odom" to = "$(arg odom_topic)"/>
                    <remap from = "scan" to = "$(arg laser_topic)"/>
            </node>
    
    </launch>
    View Code

    costmap_common_params.yaml内容

    #max_obstacle_height: 2.5 #assume something like an arm is mounted on top of the robot
    
    robot_radius: 0.63
    footprint: [[-0.50, -0.38], [-0.50, 0.38], [0.50, 0.38], [0.50, -0.38]]
    footprint_padding: 0.02
    transform_tolerance: 0.2
    #map_type: voxel
    map_type: costmap
    always_send_full_costmap: true
    
    obstacle_layer:
     enabled: true
     obstacle_range: 3.0
     raytrace_range: 4.0
     inflation_radius: 0.4
     track_unknown_space: true
     combination_method: 1
    
     observation_sources: laser_scan_sensor
     laser_scan_sensor: {data_type: LaserScan, topic: scan, marking: true, clearing: true}
    
    
    inflation_layer:
      enabled:              true
      cost_scaling_factor:  10.0  # exponential rate at which the obstacle cost drops off (default: 10)
      inflation_radius:     0.65  # max. distance from an obstacle at which costs are incurred for planning paths.
    
    static_layer:
      enabled:              true
      map_topic:            "map"
    View Code

    local_costmap_params.yaml内容

    local_costmap:
      global_frame: map
      robot_base_frame: base_link
      update_frequency: 5.0
      publish_frequency: 2.0
      static_map: false
      rolling_window: true
       4
      height: 4
      resolution: 0.05
      transform_tolerance: 0.5
    
      inflation_layer:
        enabled:              true
        cost_scaling_factor:  10.0  # exponential rate at which the obstacle cost drops off (default: 10)
        inflation_radius:     0.65  # max. distance from an obstacle at which costs are incurred for planning paths.
    
      plugins:
        - {name: static_layer,        type: "costmap_2d::StaticLayer"}
        - {name: obstacle_layer,      type: "costmap_2d::ObstacleLayer"}
        - {name: inflation_layer,     type: "costmap_2d::InflationLayer"}
    View Code

    global_costmap_params.yaml内容

    global_costmap:
      global_frame: map
      robot_base_frame: base_link
      update_frequency: 1.0
      publish_frequency: 0.5
      static_map: true
    
      transform_tolerance: 0.5
      plugins:
        - {name: static_layer, type: "costmap_2d::StaticLayer"}
        - {name: obstacle_layer, type: "costmap_2d::VoxelLayer"}
        - {name: inflation_layer, type: "costmap_2d::InflationLayer"}
    ~                                                                    
    View Code

    teb_local_planner_params.yaml内容

    TebLocalPlannerROS:
    
     odom_topic: odom
    
     # Trajectory
    
     teb_autosize: True
     dt_ref: 0.3
     dt_hysteresis: 0.1
     global_plan_overwrite_orientation: True
     allow_init_with_backwards_motion: False
     max_global_plan_lookahead_dist: 3.0
     feasibility_check_no_poses: 5
    
     # Robot
    
     max_vel_x: 0.5
     max_vel_x_backwards: 0.5
     max_vel_y: 0.0
     max_vel_theta: 1.5
     acc_lim_x: 0.5
     acc_lim_theta: 0.5
     min_turning_radius: 0.0 # diff-drive robot (can turn on place!)
    
     footprint_model:
       type: "point"
    
     # GoalTolerance
    
     xy_goal_tolerance: 0.2
     yaw_goal_tolerance: 0.1
     free_goal_vel: False
    
     # Obstacles
    
     min_obstacle_dist: 0.65 # This value must also include our robot radius, since footprint_model is set to "point".
     inflation_dist: 0.65
     include_costmap_obstacles: True
     costmap_obstacles_behind_robot_dist: 1.5
     obstacle_poses_affected: 30
     costmap_converter_plugin: ""
     costmap_converter_spin_thread: True
     costmap_converter_rate: 5
    
     # Optimization
    
     no_inner_iterations: 5
     no_outer_iterations: 4
     optimization_activate: True
     optimization_verbose: False
     penalty_epsilon: 0.01
     weight_max_vel_x: 2
     weight_max_vel_theta: 1
     weight_acc_lim_x: 1
     weight_acc_lim_theta: 1
     weight_kinematics_nh: 1000
     weight_kinematics_forward_drive: 1
     weight_kinematics_turning_radius: 1
     weight_optimaltime: 1
     weight_obstacle: 50
     weight_dynamic_obstacle: 10 # not in use yet
     weight_adapt_factor: 2
    
     # Homotopy Class Planner
    
     enable_homotopy_class_planning: True
     enable_multithreading: True
     simple_exploration: False
     max_number_classes: 4
     selection_cost_hysteresis: 1.0
     selection_obst_cost_scale: 1.0
     selection_alternative_time_cost: False
    
     roadmap_graph_no_samples: 15
     roadmap_graph_area_ 5
     h_signature_prescaler: 0.5
     h_signature_threshold: 0.1
     obstacle_keypoint_offset: 0.1
     obstacle_heading_threshold: 0.45
     visualize_hc_graph: False
    View Code
  • 相关阅读:
    SQL语句
    POJ2586——Y2K Accounting Bug
    POJ1328——Radar Installation
    POJ2965——The Pilots Brothers' refrigerator
    SDIBT2666——逆波兰表达式求值
    POJ1753——Flip Game
    Python全栈开发-有趣的小程序
    跑马灯效果、jquery封装、$.fn和$.extend方法使用
    js 实现浏览器全屏效果
    百度地图点聚合功能如何提高性能
  • 原文地址:https://www.cnblogs.com/gary-guo/p/10892933.html
Copyright © 2011-2022 走看看