Open PeterBowman opened 5 years ago
The server/client YARP device implementation of frame transform stuff (BTW compatible with ROS, hence it might have been designed in this way for such reason) doesn't follow the usual network wrapper + client device architecture. Instead, it forces a client-server-client communication as explained in https://github.com/robotology/yarp/pull/1958. I'm prone to reuse the frame transform interfaces (either the current or the proposed one), not having to design my own, heavily Leap-specific class. At best, we'll have this new architecture available in YARP 3.2. Marking as blocked for now.
At best, we'll have this new architecture available in YARP 3.2.
Sadly, YARP folks rejected that PR. For future reference: https://github.com/robotology/yarp/compare/b15ec0f...1f13091 (I also forked the branch, just in case: https://github.com/PeterBowman/yarp/compare/b15ec0f...1f13091).
It looks like it is being revived for YARP 3.5 or later: https://github.com/robotology/yarp/pull/2611, https://github.com/robotology/yarp/pull/2626.
Our current implementation of the LeapMotionSensor device extracts palm center data only, exposed in a 6-value bottle conveniently wrapped and published by YARP's analogServer. The Leap Motion API goes far beyond that, therefore I'd like to exploit its capabilities.
After finding out that the old OpenNI/NiTE skeleton device was removed (https://github.com/robotology/yarp/issues/690) and no standard YARP skeleton interface is available (however, mind the
yarp::sig::Skeleton
proposal mentioned at https://github.com/robotology/assistive-rehab/pull/2#issuecomment-377492395), we noticed thatyarp::dev::IFrameTransform
may suit our needs. All necessary identifiers (e.g. "distal bone of the index finger of the left hand") could be encoded into astd::string
which is then fed into this interface's methods as an input frame id. Also, base-to-finger frames can be obtained in this manner without resorting to other APIs.