This documents the standards and conventions used in RESL for field robotics projects.
Repositories which conform to this should link to this repo in their README.md
All frames should be expressed in East North Up (ENU) coordinate frame. Most IMUs and navigational frames are expressed in North East Down (NED), either convert them to ENU or use the method to deviate from the standard below
x should represent the eastward coordinate, increasing as you go eastward. y should represent the northward coordinate, increasing as you go northward. z should represnt the "up" (Towards space) coordinate as you go upward.
All base units should be expressed as SI Base Units
Temperature is generally expressed in celcius in most repos tho.
Rotations should be expressed as radians of 2pi
All earth coordinates should be represented as UTM in the ENU frame.
When possible, carry the zone number and zone letter. Put the zone number before the letter if using a tuple/list.
When expressing a matrix which is a list of entries, use row major ordering. That is, each row should be an entry and each column should be a component of a vector.
Example:
x | y | z |
---|---|---|
x1 | y1 | z1 |
x2 | y2 | z2 |
.. | .. | .. |
When possible, don't deviate from this standard.
In some situations it is either extremely inconvenient or lossy to convert to this standard in which each method which expects a non-standard argument should be documented.
If possible contain the portion of the program which uses a nonstandard convention to a small portion.
Time stamps should be in ISO 8601, preferably with a PST time or UTC. If using PST include timezone information. ISOtime can be confusing but worth using in most cases.
If you don't want to do that, unix epoch (in seconds) is acceptable, but should be documented as a deviation.
Python: Use PEP 8.
All plots should use the seaborn default stylesheet.