SORU
26 Mayıs 2015, Salı


Kinect depolamak, hareket 2.0 dosya BVH için sdk

Kinect 2'den hareket yakalama dosyası bvh için saklamak istiyorum. Hareket bvh için yakalama ama kinect 1 here bulunan dosya uygulayan bir kod buldum. Ama ben anlayamıyorum Birkaç şey buldum kodu çalışma. Öncelikle orada hareket kinect 2.0 bvh dosya depolamak için herhangi bir uygulamasıdır. Söz kodda ikincisi tam olarak kod içinde çeşitli yerlerde bulunan İskelet iskelet nesnenin ne olduğunu kavramak için çalışıyorum. Bu konuda bir fikriniz var mı?

Vücut İskeleti skel değiştirmeye çalıştım skel kinect SDK 2.0 correspondant nesne olduğunu düşünüyorum. EDİT: Ancak vücut pozisyonu almayı denediğimde hata aldım:

tempMotionVektor[0] = -Math.Round( skel.Position.X * 100,2);
tempMotionVektor[1] = Math.Round( skel.Position.Y * 100,2)   120;
tempMotionVektor[2] = 300 - Math.Round( skel.Position.Z * 100,2);

Vücut fonksiyonu Pozisyonu skel çağırırken errros aldım. Nasıl X almak, sdk iskeletin Y Z 2.0 miyim? Yukarıdaki üç satırı değiştirmeye çalıştım:

tempMotionVektor[0] = -Math.Round(skel.Joints[0].Position.X * 100, 2);
tempMotionVektor[1] = Math.Round(skel.Joints[0].Position.Y * 100, 2)   120;
tempMotionVektor[2] = 300 - Math.Round(skel.Joints[0].Position.Z * 100, 2);

EDİT: Temelde bodyBasicsWPF ve kinect2bvh birleştirerek sonra bir bvh dosya deposu başardı. Ancak saklama ben iskelet verimli değil gibi görünüyor. Dirsek garip hareketleri vardır. Eğer dosyanın içinde bir şey değiştirmek zorunda kalırsam anlamaya çalışıyorum kinectSkeletonBVH.cp. Daha spesifik olarak ne kinect 2 sürüm için ortak eksen yönünü değiştirir. Nasıl aşağıdaki satırı değiştirebilirim: skel.JointOrientations[JointType.ShoulderCenter].Orientation ile değiştirmeye çalıştım skel.BoneOrientations[JointType.ShoulderCenter].AbsoluteRotation.Quaternion;. Haksız mıyım? Aşağıdaki kodu BVHBone nesneleri için ortak eklemek için kullanıyorum:

BVHBone hipCenter = new BVHBone(null, JointType.SpineBase.ToString(), 6, TransAxis.None, true);
BVHBone hipCenter2 = new BVHBone(hipCenter, "HipCenter2", 3, TransAxis.Y, false);
BVHBone spine = new BVHBone(hipCenter2, JointType.SpineMid.ToString(), 3, TransAxis.Y, true);
BVHBone shoulderCenter = new BVHBone(spine, JointType.SpineShoulder.ToString(), 3, TransAxis.Y, true);

BVHBone collarLeft = new BVHBone(shoulderCenter, "CollarLeft", 3, TransAxis.X, false);
BVHBone shoulderLeft = new BVHBone(collarLeft, JointType.ShoulderLeft.ToString(), 3, TransAxis.X, true);
BVHBone elbowLeft = new BVHBone(shoulderLeft, JointType.ElbowLeft.ToString(), 3, TransAxis.X, true);
BVHBone wristLeft = new BVHBone(elbowLeft, JointType.WristLeft.ToString(), 3, TransAxis.X, true);
BVHBone handLeft = new BVHBone(wristLeft, JointType.HandLeft.ToString(), 0, TransAxis.X, true);

BVHBone neck = new BVHBone(shoulderCenter, "Neck", 3, TransAxis.Y, false);
BVHBone head = new BVHBone(neck, JointType.Head.ToString(), 3, TransAxis.Y, true);
BVHBone headtop = new BVHBone(head, "Headtop", 0, TransAxis.None, false);

Kodu her Ortak için eksen hesaplamak nerede olduğunu bir türlü anlamıyorum.

CEVAP
16 Kasım 2013, CUMARTESİ


Yöntem 5 yukarıdaki kod analiz sonra, oryantasyon verileri aşağıdaki gibi, atama

resultingAngles[1] = orientationData[0]; // orientation z axis to y axis
resultingAngles[2] = orientationData[1]; // orientation x axis to z axis 
resultingAngles[0] = orientationData[2]; // orientation y axis to x axis

Y z x şekilde dönüş yaptım. Oryantasyon.. değiştirmeye çalışın

Kontrol edin ve bana haber ver.. orada sorun olabilir

Lütfen etkinlik değerleri için belgelerine bakın http://developer.android.com/guide/topics/sensors/sensors_position.html

Sıkı çalışmanız için teşekkürler..

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Brandon McCrary

    Brandon McCr

    15 Ocak 2012
  • LimeFire

    LimeFire

    2 ŞUBAT 2012
  • MrDevin521

    MrDevin521

    18 Temmuz 2010