このサイトはお使いのブラウザでは正常に動作しません。Google Chromeなど、別のブラウザを使用してください。

空間上の平面と直線に関する質問です。

    三宅 淳司 (id: 1634) (2023年1月17日15:20)
    0 0
    P1とP2とP3で定義される空間上の平面(P1P2P3とする) P1とP2とで定義される直線(P1P2とする)、P2とP3とで定義される直線(P2P3とする) P1P2の直線の中に内分されている点:P011、P2P3の直線の中に内分されている点:P012としたとき、 P1P2P3の平面上にP011からの垂線を求め、また同様にP012からの垂線を求め、 その2本の交点の座標値を求めたい。 P1(x1,y1,z1)とP2(x2,y2,z2)とP3(x3,y3,z3)とで定義される空間上の平面は、 P1P2のベクトル:(x2-x1, y2-y1, z2-z1)、P1P3のベクトル:(x3-x1, y3-y1, z3-z1) これを(P12x,P12y,P12z)、(P13x,P13y,P13z)とすると これより法線ベクトル(外積)は、下記の通りとなる。   P1P2XP1P3 =((P12y・P13z-P12z・P13y),(P12z・P13x-P12x・P13z), (P12x・P13y-P12y・P13x))         =(Pv123x, Pv123y, Pv123z) この法線ベクトルより、P1P2P3からなる平面の方程式は、下記の通りとなる。   Pv123x(x-x1) + Pv123y(y-y1)+ Pv123z(z-z1)=0   a・x + b・y + c・z + d =0 の形式に変更すると、   a= Pv123, b= Pv123y, c= Pv123z, d=- Pv123x・x1 -Pv123y・y1 -Pv123z・z1 となる。 また、直線P1P2の方程式: (x-x1)/(x2-x1)=(y-y1)/(y2-y1)=(z-z1)/(z2-z1) 当りまでは分かるのですが、それ以降の、P011からの垂線を求めかた、 P012からの垂線との交点の求め方がどうも分かりません。 ご助言、宜しくお願い致します。

    質問の概略図.png

    回答

    くさぼうぼう : (id: 1236) (2023年1月17日18:22)
    0 0
    こんにちは。回答しなおしますね。 内分をm:nという表現はいやなので、k:(1-k) でいきます。また書くのが大変なので、P011をQ、P012をR、求めるP01をSと書きますよ。平面をπと名前を付けます。 始点を$P_2$ とする位置ベクトルで考えます。ベクトルの矢印が大変なので小文字はその点の位置ベクトルだと思ってください。Qは$P_2 P_1$ をk:(1-k)に内分するとして、$q=kp_1$ …①、またRは$P_2 P_3$ を$l:(1-l)$ に内分するとして、$r=lp_2$ …②と書けます($k , l $ は既知の値)。 Sはπ上にあるので、$s=up_1+vp_3$ と書けます。…③ ←$u,v$ が求まればよいということになります。 また、QSはP1P2に垂直、RSはP3P1に垂直だから内積は0。すなわち $p_1 \cdot (s-q)=0,p_3 \cdot (s-r)=0$ 。ここに①②③を代入して、内積を分配法則で整理していくと、最終的には $ u|p_1|^2+vp_1 \cdot p_3=k|p_1|^2$ …④、$up_1\cdot p_3+v|p_3|^2=l|p_3|^2$ …⑤ となり(計算間違いしてたらごめんなさい、直してください)、④⑤が$u,v$ についての2元連立方程式になり、これを解いて$u,v$ が得られれば③よりベクトル$s$ が求まります。これは点P2を始点とした位置ベクトルなので、座標に戻すにはP2の各座標を足せばいいです。 文字式のままで④⑤の連立方程式を解くのは大変ではないかと想像しますが、原理的にはこれで高校数学の範囲で求めることができます。 これで大丈夫ですか? コメント欄に返事を書いてください。
    (追記: 2023年1月18日20:17)
    訂正:RSはP3P1に垂直だから は書き間違い RSはP3P2に垂直だから に訂正します。 ごめんなさい。
    三宅 淳司 (id: 1634) (2023年1月17日23:18)
    0 0

    前提条件を詳しく記載していていなくて済みません。 ToFカメラで求めた画像センサー系の座標から、ロボット座標系に変換する するところで行き詰まっています。 何か行列式で可能かとも思うのですが、力業で計算しようとしています。 添え字に関しては、同じような添え字になってしまい申し訳ありません。 適当に替えて頂いても良いです。 センサー系の座標から、P0、P01、P02、P011、P012を求めるとこまでは どうにかできています。 「内分」m:nで求まっていることとします。 ここまでは、センサー座標系。 ロボット座標系でのP1,P2,P3,P4,P5,P6,P7,P8も求まっており、 ここから、P1P2、P2P3 の直線を求め、「内分」m:n から、P011、P012 を 求めるところまではできています。(できていると思っています) そこから逆に、平面P1P2P3上に直線P1P2上のP011から平面P1P2P3上の垂線を出し、 またP012からも垂線を出し、その交点P01を求める。 測定誤差の関係で、交点が出なければ、近似で交点を求めることになります。 また同様に平面P5P6P7から交点P02を求め、 P01P02の直線を求め、そこからP01P02直線の「内分」a:bからロボット座標系の P0(xo,y0,z0)を求めるのが最終ゴールになります。 従って、平面P1P2P3からP01を求め、同様に平面P5P6P7からP02を求め P0を求めていくことになります。 外積は使わなくても、結果が出れば良いです。 宜しくお願い致します。

    くさぼうぼう : (id: 1236) (2023年1月18日15:11)
    0 0

    はい、求めるものは理解しました。もちろん、こちらは数学しかわからないので、なんとか座標系についてはスルーしますね。まったく数学的な考え方を上の回答に書きますが、お役に立つかどうか。最終的な解については、申し訳ないけれどやりません。そうとうな力業になりそうなので。

    三宅 淳司 (id: 1634) (2023年1月18日16:33)
    0 0

    ありがとうございました。 「P01をR」 ではなく 「P01をS」 の間違いかと思いますが、 あとは、頑張ってみます。

    くさぼうぼう : (id: 1236) (2023年1月18日18:09)
    0 0

    あ、書き間違ってました。失礼。 手計算では大変でしょうが、がんばってください。

    回答する