3

私は、さまざまな種類のコンピューター制御マシンの構築に携わっているアーティストです。私はジンバルベースのXY塗装機のプロトタイピングを開始し、必要な計算が私の手の届かないところにあることに気づきました。私はまともなプログラマーですが、数学は得意ではありません。3D数学。

私が何をする必要があるのか​​を理解するには、リグを確認すると役立つ場合があります。

初期のプロトタイプ:

http://roypardi.com/gimble/IMG_2803.JPG

http://roypardi.com/gimble/IMG_2805.JPG

http://roypardi.com/gimble/IMG_2806.JPG

http://roypardi.com/gimble/gimbleSmall.MOV (小さなビデオ)

http://roypardi.com/gimble/gimbleLarge.mov (より大きなビデオ)

2つの内輪はX/Y軸を表し、ステッピングモーターによって制御されます。ラスター画像とベクターデータ(gcode)の両方を使用できるようにしたい。したがって、紙の2D空間内のポイントに対処し、データからそのポイントに到達するために必要な方向(つまり、各モーターをどれだけステップするか)をジンバルに把握させる必要があります。

2D> 3D投影、オイラー角などを探していましたが、深みがありません。ポインタ、正しい方向へのプッシュ、またはコードスニペットは大歓迎です。私はほとんどのプログラミング言語を理解できます。

4

3 に答える 3

1

あなたが作ったとても素敵なマシンです。これがうまくいくことを願っています。それは正しいと信じています。

私の見方では、一方の角度を取得するのは簡単ですが、もう一方の角度は、それが回転する軸を傾けているため、視覚化するのが少し難しいです.

tan の使用を避けるつもりです。これをプログラミングすると、0 による除算が発生する可能性があり、イライラする可能性があります。また、Z は紙の上の原点の高さになります。

YAxis = arcsin( X / sqrt(X² + Z²))

XAxis = arcsin( Y / sqrt(Y² + X² + Z²))

または使用できます

XAxis = arcsin(Y / sqrt(Y² + Z²))

YAxis = arcsin( X / sqrt(X² + Y² + Z²))

また、うまくいくなら、このプロットのビデオを見たいと思っています。

編集: それについて考えた後、どの軸が他の軸に影響されるかによって、1つのソリューションのみが機能すると思います。Y軸は真ん中ですか、それともX軸ですか?

于 2009-05-10T17:00:11.670 に答える
0

誤解しているかもしれませんが、ジンバルがあなたの望むようになるとは思えません。ジンバルは任意の 3D 方向を指すことができますが、3D 空間内の任意のポイントに移動することはできません。用紙の平面が、ジンバルに保持されたペンによって掃引されるボリュームと交差する場合、ペンは円を描くことができるかもしれませんが、それ以上のことはできません。円を描くことさえ確実ではありません。この場合、紙はジンバル リングによってスイープされたボリュームとも交差するためです。ペンの向きを変えようとすると、リングが紙に当たってしまいます。

あなたが欲しいのはジンバルではなくプロッターだと思います。

于 2009-05-10T18:03:37.847 に答える
0

単純なhttp://en.wikipedia.org/wiki/Trigonometryの問題だと思います

リングの中心から紙上の最も近い点 (「原点」の点「O」と呼びます) までの距離が距離 X であるとしましょう。

O からの距離が Y である、O の真北にある別の点 P を取ります。

この点を描くには、tan(alpha)=Y/X となるような角度アルファが必要です。つまり、式「arctan(Y/X)」を使用してアルファを計算できます [arctan は、atan としても知られています]。Arctan は三角関数であり、おそらく汎用数学ライブラリの API で定義されていると思います。

上記は最も単純なケースです。

他に考えられる唯一のケースは、点 P が真北にない場合です。真北ではなく、その距離が北に Y1、東に Y2 であるとしましょう。解は 2 つの角度 (2 つのリングのそれぞれに 1 つの角度) で、1 つは "arctan(Y1/X)" で、もう 1 つは "arctan(Y2/X)" です。

于 2009-05-10T15:24:03.680 に答える