[REP Index][REP Source]
| REP: | 103 |
|---|---|
| Title: | Standard Units of Measure and Coordinate Conventions |
| Author: | Tully Foote, Mike Purvis |
| Status: | Active |
| Type: | Informational |
| Content-Type: | text/x-rst |
| Created: | 07-Oct-2010 |
| Post-History: | 31-Dec-2014 |
- Documentation Explore this comprehensive resource for the Unity Editor Search it or browse it – the Unity User Manual is the definitive repository for in-depth and procedural information on all of Unity’s features, UI, and workflows.
- Find this & other Physics options on the Unity Asset Store. Get the ROS# package from ROS# Project Team and speed up your game development process. Find this & other Physics options on the Unity Asset Store. Sprint into Spring Sale is on: Get 50% off top assets and score extra savings with coupon code SPRING2021.
- Special thanks to the Siemens ROS# Project Team for driving the ROS-Unity Integration Open Source since 2017. This repo is a fork of ROS# and was a great starting point for our development.
- Simulating robots with ROS and Unity Learn how to achieve the necessary precision and accuracy for your simulations using a combination of ROS (Robotics Operating System) and Unity.
Getting a Unity Project with ROS2 support¶ Navigate to /UnityRos2/Assets and run python3 starteditor.py. This script sets environment variables and starts the Unity Editor. This is only way to start the Editor with ROS2 support at the moment. Opening the project through Unity Hub is not supported yet.
Contents
- Units
- Coordinate Frame Conventions
This REP provides a reference for the units and coordinate conventionsused within ROS.
Inconsistency in units and conventions is a common source ofintegration issues for developers and can also lead to softwarebugs. It can also create unnecessary computation due to dataconversion. This REP documents the standard conventions for ROS inorder to lessen these issues.
The scope of potential robotics software is too broad to require allROS software to follow the guidelines of this REP. However, choosing differentconventions should be well justified and well documented.
For example, there are domains where the default conventions are notappropriate. Interstellar lengths are not appropriately measured inmeters, and space-oriented libraries may wish to choose a differentconvention. There are other exceptions that different domains may wishto address.
We have chosen to standardize on SI units. These units are the mostconsistent international standard. SI units are maintained by BureauInternational des Poids et Mesures. [1] There is good documentationon Wikipedia for International System Of Units[2]

Base Units
These are the base units which are commonly used
| Quantity | Unit |
|---|---|
| length | meter |
| mass | kilogram |
| time | second |
| current | ampere |
Derived Units
SI defines seven base units and many derived units. If you are not usingSI base units, you should use SI-derived units.
Good documentation can be found on Wikipedia about SI derived units[3] Need for speed 2015 for mac os.
Commonly used SI-derived units in ROS are:
| Quantity | Unit |
|---|---|
| angle | radian |
| frequency | hertz |
| force | newton |
| power | watt |
| voltage | volt |
| temperature | celsius |
| magnetism | tesla |
Crack for adobe acrobat mac os. All coordinate frames should follow these conventions.
Chirality
All systems are right handed. This means they comply with the right hand rule[4].
Axis Orientation
In relation to a body the standard is:
- x forward
- y left
- z up
For short-range Cartesian representations of geographic locations, use theeast north up[5] (ENU) convention:
- X east
- Y north
- Z up
To avoid precision problems with large float32 values, it is recommended tochoose a nearby origin such as your system's starting position.
Suffix Frames
In the case of cameras, there is often a second frame defined with a'_optical' suffix. This uses a slightly different convention:
- z forward
- x right
- y down

For outdoor systems where it is desirable to work under thenorth east down[6] (NED) convention, define an appropriately transformedsecondary frame with the '_ned' suffix:
- X north
- Y east
- Z down
Rotation Representation
There are many ways to represent rotations. The preferred order is listed below, along with rationale.
- quaternion
- Compact representation
- No singularities
- rotation matrix
- No singularities
- fixed axis roll, pitch, yaw about X, Y, Z axes respectively
- No ambiguity on order
- Used for angular velocities
- euler angles yaw, pitch, and roll about Z, Y, X axes respectively
- Euler angles are generally discouraged due to having 24 'valid'conventions with different domains using different conventions bydefault.
By the right hand rule, the yaw component of orientation increases as the child framerotates counter-clockwise, and for geographic poses, yaw is zero when pointing east.
This requires special mention only because it differs from a traditional compass bearing,which is zero when pointing north and increments clockwise. Hardware drivers should makethe appropriate transformations before publishing standard ROS messages.
Covariance Representation
Linear
Angular
Six Dimensional
| [1] | Bureau International des Poids et Mesures(http://www.bipm.org/en/home/) |
| [2] | http://en.wikipedia.org/wiki/International_System_of_Units |
| [3] | http://en.wikipedia.org/wiki/SI_derived_units |
| [4] | http://en.wikipedia.org/wiki/Right-hand_rule |
| [5] | http://en.wikipedia.org/wiki/Geodetic_datum#Local_east.2C_north.2C_up_.28ENU.29_coordinates |
| [6] | http://en.wikipedia.org/wiki/North_east_down |
This document has been placed in the public domain.
The ZED stereo camera reproduces the way human binocular vision works. Human eyes are horizontally separated by about 65 mm on average. Thus, each eye has a slightly different view of the world around. By comparing these two views, our brain can infer not only depth but also 3D motion in space.
Likewise, Stereolabs stereo cameras have two eyes separated by 6 to 12 cm which allow to capture high-resolution 3D video of the scene and estimate depth and motion by comparing the displacement of pixels between the left and right images.
Depth Map
Unity Ros
Depth maps captured by the ZED store a distance value (Z) for each pixel (X, Y) in the image. The distance is expressed in metric units (meters for example) and calculated from the back of the left eye of the camera to the scene object.
Depth maps cannot be displayed directly as they are encoded on 32 bits. To display the depth map, a monochrome (grayscale) 8-bit representation is necessary with values between [0, 255], where 255 represents the closest possible depth value and 0 the most distant possible depth value.
3-D Point Cloud
Another common way of representing depth information is by a 3-D point cloud. A point cloud can be seen as a depth map in three dimensions. While a depth map only contains the distance or Z information for each pixel, a point cloud is a collection of 3D points (X,Y,Z) that represent the external surface of the scene and can contain color information.
Unity Roswell
For more information on Depth Sensing, see the Using the API page.
Copyright © 2021 Stereolabs Inc. 