-
Notifications
You must be signed in to change notification settings - Fork 19
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigation on wrong 3D computation when head (or torso) is moving #14
Comments
The global variable is HL_root, which involves in
in here, here and here. They belong to method get3DPointsAndDisp, get3DPoints and get3DPointMatch respectively. However, the HL_root is only updated once periodically by calling the getCameraHGazeCtrl in updateModule. I plan to introduce the getCameraHGazeCtrl to update the value of HL_root before conducting computation with it. By the way, I don't have permission with this repo 😄 |
Hi @towardthesea |
As a step to isolate the source of the bug, we conducted the following experiment, experiment 0. Experiment 0:In this experiment:
Bottle cmd,reply;
cmd.addString("Rect");
cmd.addInt(point.x-3);
cmd.addInt(point.y-3);
cmd.addInt(7);
cmd.addInt(7);
cmd.addInt(2);
mutexResourcesSFM.lock();
rpcGet3D.write(cmd,reply);
mutexResourcesSFM.unlock(); Please have look on following video for details of experiment. The 3 red boxes in the video have the 3D coordinates obtained from SFM, while their sizes were estimated and fixed. As we got from this experiment, during and after the motion of an iCub part (neck/torso), the 3 boxes move accordingly. Data:These are the dumped data used for the experiment: 💽 Quick conclusion:
|
Another result: the disparity computation takes about 50-60ms to complete; during the computation, the module is blocked by mutex. Is this result acceptable @GiuliaP @pattacini |
@towardthesea 50 ms corresponds to 20 fps, which is the rate we've been experiencing with SFM, hence we're in the expected range. If that call needs to be protected against race conditions (likely yes) and what this implies for the remaining code and, specifically, for our investigations is to be determined 😉 |
@Tobias-Fischer a problem that I mentioned yesterday! |
@towardthesea: I see. I'm sure we can investigate this together. I am not too familiar with the One quick observation: The |
I will take a note and consider your point when I can come back to this issue 👍 @Tobias-Fischer |
@towardthesea's preliminary analyses show that the source of the problem is likely due to a missing call to update the global matrix that accounts for the current kinematic configuration of the head.
@towardthesea, could you please report here on the piece of code under inspection?
Eventually, please open a PR to fix the problem.
The text was updated successfully, but these errors were encountered: