move_ベース紹介


move_Baeフレームワーク
参照先:http://wiki.ros.org/move_base
構成
以下の3つの部分から構成されています.
  • は、目標位置を設定するためのactionlibを実現する.
  • はglobal planerとlocal plannerを接続し、ナビゲーションを実現する.nav_を再実装できますcore::BaseGlobalPlannerとnav_core::BaseLocalPlannerのインタフェース、global planerとlocal plannerのナビゲーションポリシーを変更する
  • は2つのtwo costmapsを維持し、1つはglobal planer、もう1つはlocal planner
  • である.
  • recovery_behaviors:ターゲットに到達するパスが見つからない場合は、いくつかのクリーンアップメカニズムを実行し、地図の無効な障害物をクリーンアップし、パスを再作成します.

  • ノード構成は、次の図のようになります.
    move_base介绍_第1张图片
    recovery_behaviorsのデフォルトポリシー:
    move_base介绍_第2张图片
    move_ベースパラメータ
    costmap_common_params.yaml
  • robot_radius:0.165ロボットシャーシ形状、円形使用robot_radius、非円形footprint
  • を使用
  • footprint: [[x0, y0], [x1, y1], [x2, y2], [x3, y3], etc]
  • obstacle_range:2.0はどのくらいの距離以内が障害としてlocal costmapに表示されるかを決定しました
  • raytrace_range:3.0ロボットが自由空間を検出する最大範囲を設定し、3.0に設定すると3 mの範囲内になることを意味し、ロボットはセンサの情報に基づいて範囲内の自由空間
  • をクリアする.
  • inflation_radius:0.3 costmapの膨張半径
  • observation_sources:入力する障害物の検出方法を設定するために使用します:レーザーと点雲
  • max_obstacle_height: , min_obstacle_Height:障害物の高さ範囲、この範囲が小さすぎるとlocal mapが表示されなくなります
  • global_costmap_params.yaml
  • global_frame:/map
  • robot_base_fame:/base_footprint
  • update_frequency:1.0センサデータ更新の周波数に基づいて、周波数を低減することでCPU負荷を低減することができる.適正値は1~5
  • である
  • publish_frequency:0 global static mapの場合、通常は
  • のパブリケーションを継続する必要はありません.
  • static_map: true
  • rolling_window: false
  • transform_tolerance:1.0 TF座標系更新許容最大遅延、単位秒
  • local_costmap_params.yaml
  • global_frame:/odom
  • robot_base_fame:/base_footprint
  • update_frequency:3.0センサデータ更新の周波数に基づいて、周波数を低減することでCPU負荷
  • を低減することができる.
  • publish_frequency:1.0地図の更新頻度は、ロボットの移動速度が
  • より速くない限り、1 HZで十分です.
  • static_map: false
  • rolling_window: true
  • width:6.0 rollingローカルマップ幅
  • height:6.0 rollingローカルマップ長
  • resolution:0.01解像度は地図YAMLファイルで説明した解像度と一致する
  • transform_tolerance:1.0 TF座標系更新許容最大遅延、単位秒
  • base_local_planner_params.yaml
  • controller_frequency:3.0パスプランを更新する頻度は、3~5 HZが適切で、高すぎるとCPUの負荷が重くなります.
  • max_vel_x: 0.3
  • min_vel_x: 0.05
  • max_vel_theta: 1.0
  • min_vel_theta: -1.0
  • min_in_place_vel_theta:0.5原地回転最小速度
  • escape_vel: -0.1 Speed used for driving during escapes in meters per sec. Note that it must be negative in order for the robot to actually reverse.
  • acc_lim_x: 2.5
  • acc_lim_y: 0.0
  • acc_lim_theta: 3.2
  • holonomic_robot:false全方向ホイールをtrue
  • に設定
  • yaw_goal_tolerance:0.1航路角許容最大誤差
  • xy_goal_tolerance:0.1 XY地図平面許容最大誤差
  • pdist_scale:0.8 global planer計画の経路に従って目標に到達する重み
  • を堅持する
  • gdist_scale:0.4目標をできるだけ達成するためにglobal planerが計画した経路を完全に歩かない重み
  • occdist_scale:0.1バリアフリーの重み
  • sim_time:1.0パスプランニングは、数秒の移動軌跡を考慮し、dwaとともにローカルパスプランニング
  • に影響する
  • dwa: true

  • rbx 1では、障壁を避ける場合は、以下の修正を推奨します.
    TrajectoryPlannerROS:
    max_vel_x: 0.5
    pdist_scale: 0.8
    gdist_scale: 0.6

    次のように変更します.
    TrajectoryPlannerROS:
    max_vel_x: 0.3
    pdist_scale: 0.8
    gdist_scale: 0.4

    rviz表示
    注意:rvizのfixed frameをmapに設定します.mapこそglobal_ですから.frame_id.
    rvizは意外にも粒子さえ表示することができて、amcl粒子の更新に対してもっと深い理解があることを示しています.まずパラメータテーブルにはいくつかの重要なパラメータがあります.~initial_pose_x (double, default: 0.0 meters) Initial pose mean (x), used to initialize filter with Gaussian distribution. ~initial_pose_y (double, default: 0.0 meters) Initial pose mean (y), used to initialize filter with Gaussian distribution. ~initial_pose_a (double, default: 0.0 radians) Initial pose mean (yaw), used to initialize filter with Gaussian distribution. ~initial_cov_xx (double, default: 0.5*0.5 meters) Initial pose covariance (x*x), used to initialize filter with Gaussian distribution. ~initial_cov_yy (double, default: 0.5*0.5 meters) Initial pose covariance (y*y), used to initialize filter with Gaussian distribution. ~initial_cov_aa (double, default: (π/12)*(π/12) radian) Initial pose covariance (yaw*yaw), used to initialize filter with Gaussian distribution.
    これはあなたが粒子を初期化するときの粒子分布の1つの状態を代表して、分散を大きくすることに注意して、すべての例が1つの塊では游ぶことができません.参照先:http://blog.csdn.net/chenxingwangzi/article/details/50038413
    local map rvizでのAdd->by topic->local map