に1つの空間から点群の変換私は、ロボットアームとMicrosoftのKinect 2.0を持っています。 Kinectは、Kinectの原点と回転によってオフセットされた3D点群を出力できます。ロボットアームは、最も外側の手首をXYZ位置(および回転)mmで移動できます。別
は、Kinectのは、腕に装着されていることを想像してみてください。 ロボットはX:0、Y:570、Z:-950の位置に移動し、Kinectが真下を指すように(Z軸の周りに-90度回転して)手首を回転させます。
私はKinectのからColorMeshを取得する場合、どのように私は回転し、それがロボットスペースの代わりに、3Dカメラ空間であるようにメッシュをオフセットでしょうか?私はこれについてあまり知らないので、どんな助けもありがたいです。ここで
は心の中で現実のセットアップの実例です: 球が腕のワークスペースの範囲を示しています。
は、私はこのような何か見てクラスを把握した
public class CameraToRobotCalibrator
{
//offset in mm compared to robot origo
public const float x_offset = 0f;
public const float y_offset = 570f;
public const float z_offset = -950f;
//camera rotated around its own origo
public const float x_rotation = 0f;
public const float y_rotation = 0f;
public const float z_rotation = -90f;
public ColorMesh ConvertToRobospace(ColorMesh mesh)
{
//?
}
}
それはあまりにもハードではないでしょう1ポイントのためだった場合、私は推測しているが、私は知りません。頂点と面を持つメッシュ全体?
私は行列を使用して非常に少ない経験を持っていることは、マトリクス状になり値が4x4の行列、だ場合、私はそれらを使用した最後の時間は、2013年 にありました位置に対応し、どちらを回転させるか? –
これでもう一度それらを使用する時間です。ほとんどのロボットAPIは 'E'を計算する関数を提供しています。左上の3x3行列は回転に対応し、最後の列または行は位置に対応する。 –
軸の1つがミラーリングされている場合はどうすればよいですか? Y軸がミラーリングされているとします。 XとZが1でYが-1の「スケール行列」を使用していますか? –