roboticslab-uc3m / yarp-devices

A place for YARP devices
https://robots.uc3m.es/yarp-devices/
9 stars 7 forks source link

Integrate most of Leap Motion's capabilities into the acquisition device #202

Open PeterBowman opened 5 years ago

PeterBowman commented 5 years ago

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 that yarp::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 a std::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.

PeterBowman commented 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.

PeterBowman commented 4 years ago

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).

PeterBowman commented 3 years ago

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.