逆運動学のヤコビ行列の計算


19

逆運動学を解析的に解くためのヤコビ行列を計算するとき、多くの場所からこの式を使用してヤコビ行列のジョイントの各列を作成できることを読みました。

Ji=eϕi=[[ai×(eposri)]T[ai]T]

ようにワールド空間における回転軸であり、R」は、ワールド空間内のピボットポイントであり、E_ {POSは}世界空間におけるエンドエフェクタの位置です。arepos

ただし、ジョイントに複数のDOFがある場合、これがどのように機能するか理解できません。例として次のことを考えてください。

ここに画像の説明を入力してください

θ回転DOFあり、eエンドエフェクタであり、g、エンドエフェクタの目標であるP1P2P3関節です。

まず、ダイアグラムの上記の式に基づいてヤコビ行列を計算する場合、次のような結果が得られます。

J=[((0,0,1)×e)x((0,0,1)×(eP1))x((0,0,1)×(eP2))x((0,0,1)×e)y((0,0,1)×(eP1))y((0,0,1)×(eP2))y((0,0,1)×e)z((0,0,1)×(eP1))z((0,0,1)×(eP2))z000000111]

これは、すべての回転軸があり、すべての回転軸に1つの回転自由度しかないことを前提としています。したがって、各列は1つのDOF、この場合はに対応していると思います。(0,0,1)θ#

さて、ここに問題があります:すべてのジョイントが完全な6自由度を持っている場合はどうでしょうか?今、すべてのジョイントについて、すべての軸に回転DOF、およびがあり、すべての軸に、およびます。θxθyθztxtytz

私の質問をより明確にするために、すべての関節のすべてのDOFに上記の式を「強制的に」適用するとしたら、おそらく次のようなヤコビ行列が得られるでしょう。

ここに画像の説明を入力してください

(クリックするとフルサイズになります)

しかし、これは信じられないほど奇妙です。なぜなら、すべてのジョイントのDOFの6列すべてが同じことを繰り返しているからです。

同じ式を使用して、すべてのDOFを含むヤコビ行列を作成するにはどうすればよいですか?この場合、ヤコビ行列はどのようになりますか?


実際、この質問をここ、Math、GamesDev、またはPhysicsに投稿すべきかどうかはわかりません。この質問を間違った場所に投稿したような気がします。
キセノン

あなたの間違いは、各DOFのa 'を変更しなかったためだと思います。

回答:


11

私はその特定の式を非常に頻繁に見たことがないことを認めなければなりませんが、私の推測では、複数のDOFの場合、すべての列のすべてのジョイントに対してそれを評価し、(おそらく?)各列。

しかし、任意の多くのDOFのコンテキストでのヤコビアンへのより簡単なアプローチを提案させてください。基本的に、ヤコビアンは、エンドエフェクタフレームを任意に選択した方向に動かすと、各ジョイントがどこまで動くかを示します。ましょう順運動学、こと、関節である順運動学との位置一部である回転部分。次に、関節変数に関して順運動学微分することによりヤコビアンを取得できます。 f(θ)θ=[θ1,...,θn]fposfrot

J=fθ=[fposθ1,fposθ2...,fposθnfrotθ1,frotθ2...,frotθn]
はマニピュレーターのヤコビアンです。それを反転すると、速度に反するインバースキネマティクスが得られます。あなたは各関節があなたには、いくつかのことで、あなたのエンドエフェクタを移動する場合は移動しなければならどこまで知りたい場合は、まだ、便利かかわらすることができ、小さな金額(位置レベルで、これは効果的に線形になるので)任意の方向に: Δx
Δθ=J1Δx

これが役立つことを願っています。


返信いただきありがとうございます!しかし、これは数値を数値で計算する必要があることを意味しますか?実は、私がこの分析の例を見てgraphics.cs.cmu.edu/nsp/course/15-464/Fall09/handouts/IK.pdfスライド19とからgraphics.ucsd.edu/courses/cse169_w05/CSE169_13.pptスライド上78.スライドから、数値的手法を経る必要はないようです。区別する実際の機能がない状況では、この式を使用できます。しかし、問題は、各ジョイントのDOFが増えるとどうなるかです。
キセノン

スライドを正しく理解できれば、各ジョイントのベクトルを決定することにより、任意の多くの(回転)DOFのケースを処理できますはジョイントの位置です)。したがって、たとえば46個のジョイントがある場合、46列6行のヤコビアンが得られます(エンドエフェクタの方向を無視すると3個)。簡単に言えば、この式は任意の数のジョイントに適用でき、他のジョイントと「組み合わせる」必要はありません。(eiPi)Pi
ダニエルエバーツ

しかし、ジョイントに、、 theta_zのような、および、、ような並進DOFがあるはますか?現在、各ジョイントには6つのDOFがあります。IKに対するヤコビ行列の動作の理解から、最初の6列は6つの異なるDOFに対するエンドエフェクタの導関数になり、これらの最初の6列は最初のジョイントを表します。次の6列では、6つのDOFに関して2番目のジョイントを説明します。方程式を使用すると、各ジョイントの6列が自動的に1列にパックされますか?θxθyθztxtytz(eiPi)
キセノン

3
ああ、分かった。いいえ、その場合、式は1つの回転軸を持つ回転ジョイント用に設計されているため、機能しません。たとえば球面関節を処理する場合は、その特定の関節タイプを処理する別の式が必要になるか、ロボットの順運動学の閉じた形式が必要になります。それがある場合は、ジョイント区別し、ヤコビアンを取得できます。θ
ダニエルエバーツ

ありがとう!:)しかし、好奇心が強い、graphics.ucsd.edu / courses / cse169_w05 / CSE169_13.pptのスライド58は、3自由度の回転ジョイントに数式を使用できることを示唆していますか?ジョイントに並進DOFがなく、純粋に3つの回転DOFがある場合、それはまだ可能ですか?さまざまなDOFを取得するためにさまざまな回転で乗算するが必要な理由はわかりませんが。(1,0,0,0)
キセノン

2

6 DOFジョイントの式では、6 つのジョイントすべてにワールドフレーム内の軸があり、すべてのジョイントが回転していると仮定しています。したがって、6つのジョイントは同一であるため、ヤコビアンの列も同一です。(0,0,1)

初めから、ジョイントの軸がポイントを通過するとします。してみましょう、エンドエフェクタの位置とします。、、およびの座標はすべてワールドフレームで指定され、ロボットの移動に合わせて更新されます。軸長さはです。arearea1

ジョイントが回転している場合、ジョイントのヤコビアンの列は

Jθ(a,r)=[a×(er)a]

ジョイントが角柱の場合、柱は

Jp(a)=[a0]

球面だけでなく、空間でも平行移動できる6 自由度のジョイントがあるとします。ジョイントの軸が、、およびあり、各回転ジョイントおよびプリズムジョイントが軸を共有し、ジョイントのヤコビアンがaxayaz

J=[Jp(ax)Jp(ay)Jp(az)Jθ(ax,r)Jθ(ay,r)Jθ(az,r)]

軸、、およびは、ロボットの順運動学に依存します。説明のために、ワールドフレームの番目のジョイントの変換をaxayazk

Fk=i=1kLiTi

ここで、変換は定数であり、変換はジョイント変数に依存します。ましょうとによって回転及び並進変換することについて軸という名前の座標(いずれかの、、または)。LiTiRc(q)Pc(q)qcxyz

してみましょうのためのヤコビアンの助けによって計算された変位とすることが番目のジョイント。ましょうとの局所的な変換を更新しますジョイント:Δq=(Δpx,Δpy,Δpz,Δθx,Δθy,Δθz)iΔT=Px(Δpx)Py(Δpy)Pz(Δpz)Rx(Δθx)Ry(Δθy)Rz(Δθz)

TiTiΔT

この順運動学の定式化では、ジョイントの軸、、およびは、回転行列の列とまったく同じです。また、位置はの並進ベクトルです。a y a z i F i r F iaxayaziFirFi


0

6 DOFジョイントのヤコビ行列が必要であるという質問を理解している限り。

ロボット工学の基本から始めましょう。ロボット学習の初期段階はさまざまです。各ジョイントは単一のDOFを表し、回転ジョイントまたは角柱ジョイントであることを理解する必要があります。

球面ジョイントに関する限り、3つの相互に垂直な軸を持つ3つの回転ジョイントに変換できます。これで、球面ジョイントが単純化されました。

ヤコビ行列に進みます。6行が含まれています。最初の3行は方向を表し、最後の3行は特定の座標系に関する位置を示します。マトリックスの各列は、単一のジョイントを示します。そのため、ヤコビアン行列にあるのと同じ数値列を持つジョイント/ DOFの数。

あなたの質問に対するより明確な見方は次のとおりです。単一のジョイントが複数のDOFを実現することは決してありません。仮に複数のDOFを持つジョイントを考慮する場合でも、数学とソリューションを簡素化するには、そのジョイントをそれぞれ1 DOFの複数のジョイントに変換する必要があります。

理想的には、6回転ジョイントを備えた6自由度ロボットが、実際の問題の大半で機能します。しかし、あなたの質問に従って、各関節が18自由度ロボットを作る3自由度を持つ6関節ロボットを検討しました。これにより、冗長DOFが得られます(つまり、18-6 = 12の冗長DOF)。したがって、ロボットのエンドエフェクタに任意の方向の任意の場所に到達するには、無限の異なるソリューションがあります(ソリューションとは、各関節の回転を意味します)。したがって、この種の逆運動学の問題を解決するには、逆運動学の反復法が必要になります。

あなたの質問にもっと明確に答えることを願っています。基本的なロボット工学を学ぶには、John J. Craig-Robotics Mechanics and Controlの紹介-Pearson Education、Inc.

よろしく、マナン・カラサリヤ

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