robotology / human-dynamics-estimation

Software repository for estimating human dynamics
BSD 3-Clause "New" or "Revised" License
83 stars 28 forks source link

Investigate bad Xsens calibration with NposeWalk instead of NPoseWalk #401

Open yeshasvitirupachuri opened 5 years ago

yeshasvitirupachuri commented 5 years ago

While testing xsens calibration with the wired suit, @kouroshD and I noticed that the calibration was very bad. On double checking we noticed that the calibration command used through xsens rpc port is calibrateWithType NposeWalk instead of calibrateWithType NPoseWalk.

Using the calibrateWithType NposeWalk calibration procedure seems to be correct as in it was displaying the standard steps of Standing in NPose, walking front and then walking back and the final result of calibration is shown ok. However, the final result of calibration when visualizing the icub model in rviz was very bad. We ran the calibration again with proper command of calibrateWithType NPoseWalk` and the resulting calibration was good when checked through rviz.

Ideally, we should receive an error when using a wrong command for calibration and we should double check how the calibration calls are being made and fix this issue.

@lrapetti @kouroshD @diegoferigo @claudia-lat @DanielePucci

yeshasvitirupachuri commented 5 years ago

I double checked xsens wearable device configuration file and xsens manual for the calibration options.

The correct format is Npose or NposeWalk. So, the problem may not be what is stated in the comment above https://github.com/robotology/human-dynamics-estimation/issues/401 :confused:

We should double check the calibration a couple of times and see what is the problem.

diegoferigo commented 5 years ago

In any case, if it's not already there, having an error to report that the RPC command is wrong is advisable.

lrapetti commented 5 years ago

The point in which the calibration type string is passed is here. We should check what is the value of the string at this point.

I checked also the documentation of initializeCalibration xsens call, and there is no information regarding what happen in case of wrong/non-existing type

Screenshot 2019-11-18 at 12 02 29

we should check if we can somehow check the label that is passed if is actually valid.