rock-core / base-types

C/C++ and Ruby definition of the base types in Rock
6 stars 40 forks source link

base/samples/RigidBodyState - NEU convention?? #50

Closed leifole closed 9 years ago

leifole commented 9 years ago

Since we use ROS REP 103 as convention, we use x forward, y left and z up for body fixed frames. But then our documentation is talking about world-fixed frames, that should be aligned to North-East-Up.

That seems to be a mistake, and I have never heard of such a NEU convention (which would also switch from right-handed-rule to left-handed-rule).

In accordance with ROS REP 103 we should use either ENU or NED for world fixed frames.

doudou commented 9 years ago

You're right ... it should be NWU. The original idea was to stick to zero-heading pointing north.

leifole commented 9 years ago

Am 08.06.2015 um 16:20 schrieb Sylvain Joyeux:

You're right ... it should be NWU. The original idea was to stick to zero-heading pointing north.

— Reply to this email directly or view it on GitHub https://github.com/rock-core/base-types/issues/50#issuecomment-110011143.

If we want to have zero-heading pointing north, shouldn't it be NED (North-East-Down) then? At least according to ROS REP 103. And NWU is quite uncommon (without having proper statistical data on that ;-) ).

Leif

doudou commented 9 years ago

Having Z down is really shitty. I know it's a common convention in aerospace, but in robotics it's close to unused (no real statistical data on that either). In any case, there's no way we change the actual convention actually used so far. So, we'll have to break with ROS REP 103 and stick with NWU

Disclaimer: I am biased, I really think that the only convention that makes sense is heading == 0 => pointing north)

leifole commented 9 years ago

If we would design from scratch, I would have favored NED, but thats just me. And since NWU is already in use, I would also avoid changing that. But we shouldn't refer to ROS REP 103 anymore, or at least mention it.

doudou commented 9 years ago

:+1:

leifole commented 9 years ago

I mentioned the deviation from ROS REP 103 on https://rock.opendfki.de/wiki/WikiStart/Standards. Can / should I close this issue?

rafaelsaback commented 9 years ago

Well, I agree with what has been said so far, but I'd like to bring to light a reference manual that has been used for underwater robotics, at least in the control field. The document's name is "Nomenclature for treating the motion of a submerged body through a fluid" and it indicates the use of NED axis convention. It can be found on the following link (pages 5 to 7 for axes convetions):

http://www.itk.ntnu.no/fag/gnc/papers/Sname%201950.PDF

I really appreciate when the conventions are based on some reference manual, since we can walk on the same ground as other systems and researchers when it come to conventions. But I'm sure you guys know what is best considering that currently the system is based on a different frame, and changing that could be costly.

doudou commented 9 years ago

Nomenclature for treating the motion of a submerged body through a fluid

The problem is that each engineering domain decided that it would be smart to use their own convention[1]. Fortunately for us, robot software is very much cross-domain, which makes it necessary to pick one. It so happens that Z up has been pretty universal in the robotic domain. Where things have differed is about X or Y forward. I've been taken off-guard by the ROS convention as I was used to have bodies point north when heading=0 (meaning that the two different conventions I saw when I was at LAAS was either Yforward and WNU or Xforward and NEU)

I can't remember why we picked a different reference than ROS (i.e. if it was intended or just a mistake), but if I was to redo this decision today I would definitely try to get the ROS one accepted.

[1] AFAIK, in aerospace engineering, the Z down was there because they wanted X forward and pitch>0=>moving up. Which makes sense for humans doing control laws (computers really could not care less), but really for nothing else. Robotics work a lot in cartesian coordinates and mostly stopped using euler angles as internal representations for rotations, which makes Z positive=up the most intuitive.

doudou commented 9 years ago

Can / should I close this issue?

I guess so, no ?