問題タブ [inverse-kinematics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1332 参照

algorithm - 2D逆運動学の理解に役立ちます

2Dで逆運動学を説明するWebサイトを見つけました。

http://freespace.virgin.net/hugo.elias/models/m_ik.htm

したがって、私のアプリケーションで骨を設計する方法は、関節と角度の観点からです。それぞれの「骨」は関節であり、角度と長さです。ボーンの終点は、始点と角度の単位ベクトルに長さを掛けたものになります。

したがって、ステップ1では、方向がターゲットに向かう単位ベクトルを生成し、それを終点とターゲットポイントの間の距離で乗算するだけだと思います。

ステップ2は私が確信が持てないところです。内積の作成方法は知っていますが、彼らが話すこの直角ベクトルを取得する方法がわかりません。

ありがとう

0 投票する
1 に答える
2793 参照

c++ - 逆運動学アルゴリズムのヘルプ

CCD Inverse Kinematics を 2D で実装しようとしています

この関数は、CCD の 1 回の繰り返しを行うことになっています。

今はテストケースとして、左足から始めて骨盤で止めています。

この関数が呼び出されるたびに、スケルトンのボーンが更新されます。

私のボーンの動作方法は次のとおりです。 getFrameX,Y,Angle は、ボーン/エフェクターの終わりの絶対位置を返します。これらは、CCD のイテレーションごとに更新されます。getAngle,X, Y は相対値を返します。

セッターも同様。

現在、マウスを少しくすくすと、ボーンが反時計回りにランダムに移動します。

デバッグのために正しい方向に私を向けることができる何かが率直に明らかに間違っているかどうか疑問に思っていました.

ありがとう

0 投票する
1 に答える
439 参照

c++ - ベクトル回転の問題

私はIKを使ってプログラムに取り組んでいて、最初は些細な問題だと思っていたものに出くわしましたが、それ以来、それを解決するのに苦労しました。

バックグラウンド:

すべてが3D空間にあります。変換を表すために3Dベクトルとクォータニオンを使用しています。

V1と呼ぶ手足があります。V2に回転させたい。

V1とV2の間の角度を取得していました。次に、V1による回転軸がV2と交差します。

次に、軸と角度からクォータニオンを作成します。

次に、手足の現在の方向を取得し、軸角度クォータニオンを掛けます。

これが私の手足に必要なローカルスペースだと思います。

この手足は、他の一連のリンクに接続されています。ワールドスペースを取得するために、ルートに到達するまで、親のローカルスペースと子のローカルスペースを組み合わせてルートまでトラバースします。

これは、回転しているベクトルがX平面とY平面内に含まれている場合、または手足が接続されているボディが変更されていない場合に、うまく機能しているようです。ルートノードの回転など、何かが変更されている場合、最初の反復で、ベクトルは目的のベクトルに非常に近く回転します。その後、それはあちこちで回転し始め、ゴールに到達することはありません。

私はすべての数学を1行ずつ調べましたが、すべて正しいようです。わからないことがあるのか​​、見過ぎているのかわかりません。私の論理的な音ですか?それとも私は何かに気づいていませんか?どんな助けでも大歓迎です!

0 投票する
1 に答える
1653 参照

actionscript-3 - フラッシュ ボーン ツール アクション スクリプト 3 RagDoll

キャラクターを作成し、ボーン ツールを使用して実行時に動かしました。

これで問題なく動作しますが、今度は重力/物理を追加したいので、キャラクターを投げると本物のラグドールのように地面に着地します。actionscript 3 でこれを行うにはどうすればよいですか? そして、fla内でこれを行うことは可能ですか(クラスファイルなし)。

ありがとうございます!

0 投票する
1 に答える
1766 参照

c++ - C++ Inverse Kinematic Algorithm / チェーン内の複数のノードの位置がわかっている場合の IK のメソッドを含むライブラリ

理想的には、チェーン内の k ノード (k < n) の位置を推定する n ノードの特定のチェーンの IK 問題を解決する C++ ライブラリ/コード (少なくともアルゴリズムではないにしても) を探しています。知られています。

どんな助けでも大歓迎です。

0 投票する
3 に答える
2139 参照

javascript - 基本的な 2D ヒューマノイド スティックマンの逆運動学の原則

主に Javascript (DOM およびキャンバス ベース) を使用し、C# やその他のテクノロジを少し使用したことがあります。しかし、そのほとんどはスプライト、バウンディング ボックス、単純なピクセルの動きなどに基づいていました。現在は、ベクトル グラフィックスを使用して、物理的な力によって駆動される現実的な可動関節を持つキャラクターを実装することに興味があります。canvas 要素または SVG のいずれかで何かを実行したいと思います。

ここには逆運動学に関連する多くの質問がありますが、それらのほとんどは少し低レベルであり、ベクトル、力、および工学用語の予備知識を前提としています。私が本当に感謝しているのは、股関節、膝関節、足首関節などを備えた基本的な棒人間を半現実的に動かす方法の背後にある基本原則に関するいくつかの指針です.

私は Knockout.js を頻繁に使用しており、Knockout の計算関数を介して各関節の位置決めを実装できるかどうか疑問に思っていました。たとえば、膝関節の位置は股関節と足首関節の位置とそれらに作用する力から計算されます。 . しかし、私は開始点を見つけるのに苦労しています: 私は家の中をスローモーションで歩き回り、人間の体のどの部分が実際に最初に動き、各部分がどのように動きに反応するかを特定しようとする狂人のようにしています。その他。ゲームやアニメーションでヒューマノイド フィギュアを動かす一般的な方法はありますか?

ベクトルや力ではなくピクセル座標で作業することに慣れていることを念頭に置いて、これを単独で取り組もうとするのは素朴ですか? 重心、運動量、その他すべてについてもすぐに学ぶ必要があることがわかりますか?

noobチュートリアルへのリンクを含め、どんな助けでも大歓迎です!

0 投票する
3 に答える
300 参照

c - このプログラムが機能しないのはなぜですか?

//これは、ロボット アームの inv キネマティクスを見つけるためのプログラムです。私の疑いはありません:-)。私のプログラムは実行されますが、既知の値であっても常に「達成不可能な位置」を出力します。同じことを行います。ここでは、角度にラジアンを使用しました。これは c が理解するものだからです。これに遭遇する方法を教えてください。または、これを実装するためのより良い方法を教えてください。ありがとうございます。// さて、この編集されたプログラムは動作しますが、遅いです.. 誰かがこれを最適化する方法を提案できますか?

}

0 投票する
0 に答える
304 参照

actionscript-3 - 逆運動学的問題

逆運動学に問題があります。触手を動かすことができず、理由もわかりません。私は多くの単純なスケルトンを実装して成功しましたが、この場合、私が欠けているものがあるに違いありません。あなたが私を助けてくれることを願っています!

ここに詳細な説明があります:

1.-この画像は私が動かしたい触手を示しています。※「Flup」は、触手と下の円の両方を含むMovieClipです。*触手自体は別のMovieClipです(前述のように「Flup」内)*触手はアーマチュアを所有しています

画像

簡単な動きを作成して開始したいので、この場合は青い骨だけを動かしてみます。

2.- Flupはクラスなので、1つのフレームでインスタンスを作成します

3.- Flupクラス、現時点では非常に単純

4.-次に、触手クラスがあります。このクラスは、Flupが持つすべての触手の父であるため、「TentacleOne」の父です。

5.-最後に、TentacleOneクラスは、父親にのみ情報を送信します

長い投稿で申し訳ありませんが、私はこれについて本当にイライラしていて、問題がどこにあるのかわかりません。私を助けようとするすべての人に感謝します。

PS:このコードを実行すると、スケルトン位置のX変数とY変数が変更されますが、視覚的にはアーマチュアは静的に保たれます。

0 投票する
0 に答える
625 参照

robotics - KDL を使用した Gazebo での関節回転の決定

Gazebo 内でキネマティック ダイナミクス ライブラリ (KDL) を使用して、「ロボット アーム」の位置をターゲット モデルの手のひらにしようとしています。現在の問題は、ジョイントを計算された値に回転させると、ロボットが期待する場所にまったくなく、ターゲット シリンダーに触れないことです。Gazebo コミュニティに回答を求めてみましたが、回答が得られなかったので、スタック オーバーフローの誰かが助けてくれることを期待していました。以下に貼り付けたのは、関連するコードです。