Adjuvo / SenseGlove-API

Sense Glove API for native C++ development
https://senseglove.gitlab.io/SenseGloveDocs/native/core-api-intro.html
MIT License
15 stars 11 forks source link

Inquiry Regarding Customizing BasicHandModel for Nova 1 Gloves #20

Open Joyde-1 opened 6 months ago

Joyde-1 commented 6 months ago

My name is Giovanni, and I am currently working on a project involving the Nova 1 gloves. While exploring your repository, I noticed that to obtain accurate measurements related to hand poses, it's recommended to use a customized BasicHandModel profile tailored to the user's hand geometry.

I would like to understand how to achieve this, as it is not for me very clear from the library documentation, and whether there is a way to automate the process. I kindly request a code snippet to guide me in obtaining accurate measurements.

Thank you in advance for your response.

Best regards, Giovanni

MaxLammers commented 6 months ago

Hi Giovanni,

The BasicHandModel class is mainly used to generate the JointPositions (vectors) and (partially) the HandRotations (quaternions) contained within a HandPose. Its geometry has no influence on the HandAngles that are calculated by the Nova solver(s). Aside from generating a 'default' BasicHandModel, there is currently no way to automate this process within the C++ API.

Are you interested in only measuring the Joint Angles coming from the Nova Glove? If so, adjusting the BasicHandModel will have no effect.

If instead you would like to use the Nova Glove to determine fingertip positions, I should recommend you first take a look at the Nova TroubleShooter that is built into SenseCom Software, specifically the one for the Sensors. This test comes with a visualizer, that can show you roughly the accuracy you can expect of the Nova Glove's finger tracking. Let us know if you indeed want to use the Nova Glove to determine fingertip positions and if this tracking is acceptable for your purposes.