ロボットをモデル化するにはどうすればよいですか?


8

強化学習技術を使ったライン追従ロボットの訓練についての質問に答えて、ロボットの訓練方法を考えさせられました。私は本質的に2つの方法があると信じています-

  1. 物理ロボットを訓練する。
  2. ロボットをモデル化し、トレーニングをシミュレートします。
  3. 私は何か見落としてますか?

アプローチ2は間違いなく優れたアプローチです。ただし、モーション(応答)の事前の知識は、ロボットが特定の状態にあるときに特定のPWM信号(刺激)が発生することを必要とします。PWM信号によって引き起こされる動きは、(1)現在のバッテリー電圧、(2)ロボットの質量、および(3)現在の速度(何か見落としましたか?)によって異なります。

このようなロボットをモデル化するにはどうすればよいですか?そして、それをどのようにすばやくモデル化するのですか?バッテリーを交換したり、ボードやその他の周辺機器を追加してロボットの質量を変更したりすると、ロボットを改造して再トレーニングする必要があります。ランダムな刺激PWMをいくつか提供し、応答を測定することで、これを実行できますか?

追加:dsp.SEでの私の関連質問

更新:言及する価値のあるIanによるタイトルへの提案された編集-「ダイナミクスが変化した場合、完全な再トレーニングが必要ないようにロボットをモデル化するにはどうすればよいですか?」これも良い質問だと思いますが、ここで私が尋ねているもの。とりあえず再トレーニングで大丈夫です。


ここにはたくさんの素晴らしい質問があります。実際、これを複数の質問に分割した方がよい場合があります。
DaemonMaker

背景を失うことなくそれを行うにはどうすればよいですか。私はすでに質問の一部をdsp.SE

基本的に、ここで2つの質問があります。最初に、ロボットをどのようにモデル化しますか?2つ目は、モデルと学習アルゴリズムが与えられたロボットをどのようにトレーニングするのですか?これらは2つの別個の質問である可能性があります。
DaemonMaker

あなたが正しいです。ロボットを訓練する方法として現れる質問は修辞的であるように意図されていました。編集してみようと思います。
ロー卿。

その場合、私はあなたの質問に答えようとする前に、あなたの編集を見るのを待ちます。
DaemonMaker

回答:


4

私が見ると、ここには2つの主な質問があります。1つ目は、ロボットをどのようにモデル化するかです。これは、運動方程式の状態空間定式化で頻繁に行われます。正確な方程式は、ロボットの物理的な構造によって異なります。はい、PWM入力でそれらをモデル化するには、供給したPWM値からアクチュエータの出力までの伝達関数を決定する必要があります。次に、その関数をモデルの制御信号に接続します。この関数の派生もロボット固有です。現在のバッテリー電圧とロボットの質量はおそらく役に立つでしょうが、速度についてはわかりません。

2番目の質問は、私のロボットの数学モデルを前提として、それを制御する強化学習(RL)アルゴリズムをトレーニングする最良の方法は何ですか?つまり、最善の方法はありません。ロボットで直接トレーニングを行うと、ロボットが試行を実行するのに時間がかかるため、時間がかかる傾向があります。ただし、シミュレーションの物理は必然的に簡略化されるため、シミュレーションはポリシーの精度を低下させる可能性があります。別のアプローチは、合理的な概算を得るためにシミュレーションで学習者を訓練し、さらに洗練のために結果のポリシーをロボットに転送することです。もちろん、モデルが十分に正確でない場合、これは失敗します。また、追加の開発も必要です。

最後に、「ランダムな刺激PWMをいくつか提供して応答を測定することで、[ロボットをリモデリングして再トレーニングすることはできますか?」RLの場合、新しい最適なポリシーが以前の最適なポリシーのようなものであると考える理由はありません。そのため、いくつかのランダムなコントロールがポリシーを適切に変更するための十分な情報を提供すると考える理由はあまりありません。もちろん、ロボットに加えた変更が、使用する状態空間モデルやアクションモデルの定式化に影響を与える場合にのみ、再トレーニングを行う必要があります。たとえば、アクションモデルが高レベルのアクション(「左へ」、「右へ」、「進む」)の観点からある場合、ダイナミクスを変更するには、これらのモーションの実装方法を変更する必要がありますが、ポリシーは引き続き保持されます。 。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.