sam-xl / scancontrol

Micro Epsilon scanCONTROL ROS Driver
10 stars 10 forks source link

reconsider the definition of base_frame and apature_frame #18

Open rtonnaer opened 4 years ago

rtonnaer commented 4 years ago

The definition of the base_frame and apature_frame for the 26x0/29x0 and 27x0 makes that the these frames coincidence. From an "assembly of urdf" point of view it would make sense to position the base_frame central to one of the mounting holes (t.b.d which mounting hole).

I have implemented this for the 30xx variant of the sensor so we can discuss if this makes sense. If the assembly that the sensor is integrated into has a "sensor_mount_link", this would yield a logical position of the sensor. Only some orientation tweaks would be needed (which are application dependent).

gavanderhoorn commented 4 years ago

Could you add a screenshot to illustrate what you are referring to?

The definition of the base_frame and apature_frame

Do you mean base_link?

dave992 commented 4 years ago

Do you mean base_link?

The description contains two links only, ${prefix}base_link and ${prefix}aperture_frame, so it indeed should be base_link.

dave992 commented 4 years ago

Sure, it would make sense to agree upon a logical location of the base_link. Can you post a screenshot of your proposed position/orientation?

Only some orientation tweaks would be needed (which are application dependent).

I would suggest doing this already with the sensor_mount_link you mentioned (or whatever the link will be called).

gavanderhoorn commented 4 years ago

base_link is the canonical link where "all ROS urdf models" start.

So my suggestion would be to use base_link as the start of the model, not sensor_mount_link.

dave992 commented 4 years ago

I assumed there that the sensor_mount_link would be on the bracket/end-effector on which the sensor would be mounted, indeed not the start of the model.

rtonnaer commented 4 years ago

Yeah in my current setup (will share screenshot later) the sensor only has a base_link and apature_link. My suggestion is to move the base_link to a "logical" place. E.g. one of the holes that are used in real life to attach the sensor to a bracket. "Logic" is a relative term in this case, as it will depend on how the sensor mounting is designed.

In turn, my sensor mounting bracket has a base_link as a root and a sensor_mount_link to indicate the place where (one of the holes of) the sensor should go.

If we are really radical we add each of the mounting point locations on the sensor w.r.t. the base link in a comment, so a user can (without opening CAD or the sensor drawing) choose which "hole" to use as their mounting point.

btw the model I am refering to can be found on our internal gitlab for the afp-xs tool

gavanderhoorn commented 4 years ago

Ah, ok, this starts to make sense now.

My suggestion is to move the base_link to a "logical" place. E.g. one of the holes that are used in real life to attach the sensor to a bracket

This would depend a bit on how that bracket is shaped exactly, but good candidates for base_link placement are always "in the middle" of things. So for sensors with mounting flanges, it would be in the middle of the flange. That would make things automatically align when linking up links with fixed joints.

dave992 commented 4 years ago

"In the middle" of things indeed works great for sensors or end-effectors with clear mounting flanges. However, the scanCONTROL sensors feature 3-4 threaded holes accessible from the left or right side. In the middle would then be inside the sensor casing, which would make linking up links with fixed joints a little annoying.

I would suggest to pick a side and use that as the default mounting side. The question then would be, do we define the base link in the middle of the mounting holes or just at the center of one of the holes? I favor using one of the mounting holes as the middle, in this case, does not represent any point of interest that is used outside of the URDF (the mounting points are quite randomly located, whereas flanges most of the time use some pattern or pitch circle (??)).

Would it make sense to create a second xacro for if the sensor is mounted on the non-default side, or even not pick a default side and make a left/right version?