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:ターゲットに到達するパスが見つからない場合は、いくつかのクリーンアップメカニズムを実行し、地図の無効な障害物をクリーンアップし、パスを再作成します.
ノード構成は、次の図のようになります.
recovery_behaviorsのデフォルトポリシー:
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では、障壁を避ける場合は、以下の修正を推奨します.
次のように変更します.
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
参照先:http://wiki.ros.org/move_base
構成
以下の3つの部分から構成されています.
ノード構成は、次の図のようになります.
recovery_behaviorsのデフォルトポリシー:
move_ベースパラメータ
costmap_common_params.yaml
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