Closed ptriantd-ocado closed 6 years ago
It seems that the broadcasted ifcoWall0
frame has no effect to the MarkerArray after all (but the inconsistency should be fixed).
Changing line 586 of IfcoGrasp.cpp
(Ocado branch) from biggestNormal = tf::Vector3(ifcoRotation(0,2), ifcoRotation(1,2), ifcoRotation(2,2));
to biggestNormal = tf::Vector3(-ifcoRotation(0,2), -ifcoRotation(1,2), -ifcoRotation(2,2));
seems to fix the issue, but it is counter-intuitive because the static ifco frame broadcasted in the case when the TUB ifco detection is bypassed is the same as the one published by ecto when the TUB ifco detection is not bypassed.
I think the ifcoWall0
and ifcoWall1
are debug frames in the TF tree and not in the /geometry_graph_marker
MarkerArray
. Those two frames are old debug frames and they are very specific for our IFCO detection. We didn't apply the bugfix #6 on these two frames.
The correct wall and surface frames (which are also passed through the ECE graph) visualised are in the /geometry_graph_marker
MarkerArray
(only when vision is launched in debug mode).
We need to remove these two frames from ecto.
Ok, then the only issue is why biggestNormal
is different in the two cases. More specifically why the normal of table_fits/bounded_model_biggest
is opposite from the z axis of the ifco tf.
I'm not sure about the biggestNormal
, @JessyVision do you?
However, the original issue is going to be fixed with merge request #19.
Also, have a look at the soma_utils
latest merge #85 and in debug mode please use the ece_graph_markers
topic to visualise the frames.
The issue is that in the Ocado
branch, which is a branch of the ocado_ifco_toMerge_master
the wall frames in the MarkerArray are incorrect (the y is pointing downwards instead of upwards). Initially I assumed that this had to do with the ifcoWall0
tf, but now it is clear that it does not. It has to do with the biggestNormal
which is different when TUB vision is used compared to when our vision is used. I will close this issue and open a new one.
@SoMa-Project/tub We noticed that the master branch is breaking the IFCO frame convention. More specifically, the ifcoWall0 frame has the x axis pointing upwards instead of the y. However, the published MarkerArray is following the convention and so does the wall frame that is acquired from the graph.
In the Ocado branch though, we followed the convention for the ifcoWall0 frame and as a result the produced MarkerArray is incorrect and so is the wall frame of the graph.
I guess we could brake the convention for ifcoWall0 as well, but we believe that the wall frames should be consistent throughout the the tf - MarkerArray - planner level.