このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
凉亭を使用した倉庫内でのモバ@ @ルロボットのシミュレ@ @ション
この例では,凉亭で倉庫ロボットをシミュレ,トする方法を説明します。露台により,シミュレーション環境で特定のタスクを実行しながら,距離センサーを使用するモバイルロボットをシミュレートすることが可能になりました。この例では,シミュレ,タ,を使用して,倉庫のシナリオでロボットがパッケ,ジを配達する倉庫ロボットのタスクの実行の例を適用する方法を詳細に説明します。ロボットは,露台のシミュレートされた距離センサーを利用して,動的環境での衝突の可能性を検出し,衝突を回避します。
前提条件
ROSおよび凉亭を使用するバ,チャルマシンをダウンロ,ドして,シミュレ,トするロボットを設定。
倉庫ロボットのタスクの実行の例で,倉庫シナリオのパス計画と移動のワ,クフロ,を確認。
金宝appSimulinkを使用した凉亭による差動駆動型ロボットの制御の例で,凉亭でのセンサ,デ,タの収集とロボットの制御の基本的な手順を確認。
モデルの概要
モデルを開きます。
open_system (“simulateWarehouseRobotInGazebo.slx”)
モデルは次の要素に分けることができます。
検知:凉亭のセンサ,からデ,タを読み取ります。
スケジュ,ル:パッケ,ジを配達するロボットに,パッケ,ジを割り当ててそのパスを計画します。
制御:事前定義されたパスに追従して障害物を避けるためのコマンドを生成します。
作動:環境内でロボットを作動させるコマンドを凉亭に送信します。
スケジュ,ル
ロボットは,充電ステ,ション,荷積みステ,ション,荷降ろしステ,ションの間を移動するタスクをスケジュ,ラに従って実行します。
検知
現在のロボットの姿勢,車輪速度,および距離センサーの読み取り値が,露台のシミュレーション環境から読み取られます。以下の図は,阅读凉亭传感器サブシステムの展開ビュ,です。
制御
コントロ,ラ,は,单纯的追求ブロックを使用してウェ▪▪ポ▪▪ントに追従するための制御コマンドを生成します。ロボット上の距離センサ,がしきい値avoidCollisionDistance
内に障害物を検出した場合,ロボットは停止します。また,ロボットは,ゴ,ルに十分に近付いたときにも停止します。
作動
生成された制御コマンドに基づいて,前轮控制サブシステムが各車輪のトルク値を生成します。そのトルクはApplyJointTorque
コマンドとして適用されます。
設定
倉庫施設
例のマップファ@ @ル地图
を読み込みます。これは,倉庫内の占有スペ,スを示す逻辑値の行列です。この行列を反転させてフリ,スペ,スを示し,binaryOccupancyMap
オブジェクトを作成します。1メトルあたり100セルの分解能を指定します。
マップは,建筑编辑器を使用して,下記と同じスケ,リング係数で作成されたwarehouseExtensions.world
ファ@ @ルに基づいています。マップの. png
ファ电子邮箱ルは,collision_map_creator_plugin
プラグ@ @ンを使用してマップ行列を生成することで作成できます。プラグesc esc esc esc esc esc esc esc esc esc esc碰撞地图创建插件を参照してください。
mapScalingFactor = 100;负载gazeboWarehouseMap.mat地图logicalMap = ~map;map = binaryoccuancymap (logicalMap,mapScalingFactor);显示(图)
倉庫内にある充電ステ,ション,仕分けステ,ションおよび棚近くの荷降ろし場所のxy位置を割り当てます。選択された値は,凉亭のシミュレ,トされたワ,ルドに基づいています。
chargingStn = [12,5];loadingStn = [24,5];unloadingStn = [15,24];
マップ上にさまざまな位置を表示します。
持有在;text(chargingStn(1), chargingStn(2), 1,“充电”);plotTransforms([charingstn, 0], [1 0 0 0]) text(loadingStn(1), loadingStn(2), 1,“分拣站”);plot ([loadingStn, 0], [1 0 0 0]) text(unloadingStn(1), unloadingStn(2), 1,“卸货站”);plotTransforms([unloadingStn, 0],[1 0 0 0])保持从;
距離センサ
传感セクションの激光雷达扫描ブロックは,シミュレ,トされた距離センサ,から距離の値を読み取るために使用されます。warehouseExtensions.world
ファルには,シン内のさまざまなモデルおよびアクタ(倉庫の作業員)の詳細が含まれています。<演员>
タグはビジュアルメッシュのみを含む静的リンクであるため、距離センサ、のセンサ、タ、プはgpu_ray
です。
また,距離センサ,は640の範囲を使用しますが,既定値は128です。このため,激光雷达扫描ブロック内で使用されるバスを変更する必要があります。exampleHelperWarehouseRobotWithGazeboBuses.mat
ファ电子邮箱ルを読み込んで,Gazebo_SL_Bus_gazebo_msgs_LaserScan.range
が640に設定された変更済みのバスを取得します。変更済みのバスは,バスエディタ,を使用して.mat
ファ@ @ルに保存されています。
负载exampleHelperWarehouseRobotWithGazeboBuses.mat
衝突回避
ワ,ルド内のアクタ,は,事前定義された軌跡を歩いています。ロボットは,距離センサ,を利用して,角度範囲(π-π/ 10日/ 10)
で2.0米(avoidCollisionDistance)
の範囲内に障害物があるかどうかをチェックします。その範囲およびビュー内で読み取り値がゼロ以外になると,ロボットは停止し,範囲がクリアになった場合にのみ再開します。“停止机器人感知障碍”関数ブロックにこのロジックが組み込まれています。
シミュレ,ションの実行中に,続行しても問題ないことをロボットが検知すると,停止ランプが緑になります。停止した場合、ランプは赤になります。
avoidCollisionDistance = 2;
シミュレ,ション
シナリオをシミュレ,トするには,凉亭への接続を設定します。
まず,凉亭シミュレ,タ,を実行します。バ,チャルマシンで,[凉亭仓库机器人]ア@ @コンをクリックします。露台シミュレーターが開かない場合は,プラグインの再インストールが必要となることがあります。金宝appSimulinkと凉亭間のコシミュレ,ションの実行の”凉亭プラグaapl .ンの手動aapl .ンストaapl .ルを参照してください。
金宝appSimulinkで,露台Pacerブロックを開いて[凉亭のネットワ、クおよびシミュレ、ション設定の構成]をクリックします。[ネットワ,クアドレス]を[カスタム]にして,凉亭シミュレ,ションの[ホスト名/ ipアドレス]を指定し,[ポ,ト]を14581
(凉亭の既定のポ,ト)に指定します。虚拟机のデスクトップにIPアドレスが表示されます。
凉亭に接続してコシミュレ、ションを有効にする場合の詳細に、いては、金宝appSimulinkと凉亭間のコシミュレ,ションの実行を参照してください。
モデルの上部にある[モデルの初期化]ボタンをクリックして,上記で宣言したすべての変数を初期化します。
シミュレ,ションを実行します。ロボットは環境内を走行し,定義済みのしきい値内に作業員が入るたびに停止します。