10

Within robotics programming, orientation is primarily given in terms of x, y, & z coordinates, from some central location. However x, y, z coordinates aren't convenient for rapid human understanding if there are many locations from which to select (e.g., {23, 34, 45}, {34, 23, 45}, {34, 32, 45}, {23, 43, 45} is not particularly human friendly, and is highly prone to human error). Yet more common English orientation descriptors are frequently either too wordy or too imprecise for rapid selection (e.g., "front-facing camera on robot 1's right front shoulder" is too wordy; but "front"/ "forward" is too imprecise - is the camera on the leading edge or is it pointing forward?)

In the naval and aeronautical fields vehicle locations are generically talked about as fore, aft (or stern), port, and starboard. While, direction of movement that is relative to the vehicle is frequently given in reference to a clockface (e.g., forward of the the fore would be "at 12", rear of the aft would be "at 6", while right of starboard and left of port would be "at 3" and "at 9", respectively). This language supports rapid human communication that is more precise than terms such as "front" and "forward". Are there equivalent terms within mobile robotics?

Ian
  • 11,013
  • 2
  • 23
  • 65
  • 2
    This question has changed significantly since I answered it. Instead of re-answering it, I'll simply leave my answer in case someone needs an example. – Josh Vander Hook Mar 18 '13 at 14:55
  • @Josh - Thank you. It is definitely still very useful information! – Recursive Self Optimization Mar 19 '13 at 18:40
  • Why do you require descriptions to be "human-friendly"? Mathematical descriptions make things both PRECISE and CONCISE. "Human-friendly" is not well defined here, and needs some clarification. – Paul Dec 22 '15 at 03:30

4 Answers4

10

Typically, a coordinate frame is placed at the robot center. The x-axis points forward, the y-axis points left, and the z-axis points up. Then, we measure angles with respect to the x-axis. So, a 90 degree angle would mean along the y-axis, as shown,

Coordinate Frames for Mobile Robots

So, "12" corresponds to 0 yaw, or straight forward. "9" corresponds to 90 degree yaw, or along the y-axis. 6 corresponds to 180 degree yaw, or straight back along the minus x-axis, etc.

You are asking "How do I describe an object relative to the robot", which is the same as "how do I describe the location of the object in the robot's coordinate frame" By necessity, we consider the both to be the same, so the "driver's side" wheel is the "front left". Front because it is +X, and left because it is +Y. The cans are in "front" of the robot because they have a +X coordinate. They are "below" the robot because they have a -Z coordinate.

It's the same as "Port", "Aft", "Starboard", because these are described with respect to the vehicle, not with respect to the observer. This is the basic definition of a Frame of Reference.

Josh Vander Hook
  • 5,362
  • 20
  • 40
  • 1
    I would agree with yaw, pitch and roll being used quite often. But even if the answer is limited to ground vehicles I am not sure the rest holds. I for example would always prefer y-forward instead of x-forward. Also, the center of your robot may not always be a good choice to place the body frame of your system. – Jakob Mar 12 '13 at 18:36
  • @Josh - That's good information on terminology for a robot's direction.

    I'm actually looking for (a) on-vehicle relative locations & (b) non-vehicle relative locations. For example, in the image, (a) how would you refer to the location of each tire (e.g., front driver's side, rear port) & (b) how would you refer to the direction of the sodas (e.g., "at 12" or 0 yaw)? I'm specifically looking for generic, human-friendly, terms that can be used a range of robot configurations including 6-wheeled, boat, & biped robots (e.g., I can't use driver's & passenger's for the on-vehicle relative).

    – Recursive Self Optimization Mar 12 '13 at 19:11
  • If you were trying to describe to your grandmother which specific leg, wheel, track, etc. of your robot was moving in which specific direction, how would you do it? – Recursive Self Optimization Mar 12 '13 at 19:17
  • Put my comment in the answer – Josh Vander Hook Mar 12 '13 at 22:03
  • 1
    @Jacob, These are the conventions I'm familiar with and which I've seen in literature. I'm sure there are others, and any is equally valid. – Josh Vander Hook Mar 12 '13 at 22:08
  • Yes, I'm with you. :) Please work with me one moment more. Imagine putting a dozen cameras on a robot at key locations with each one pointing in a preset direction. Now imagine giving your grandmother a drop-down list to select which camera she wants to view (she can only view one feed at a time). How would you name each camera? (i.e., a traditional x-y-z coordinate system isn't as human friendly as left rear; but, if a camera was named "center front", does that mean the camera is centered left-right or front-back, & for that matter is "front" in relation to its location or direction?) – Recursive Self Optimization Mar 12 '13 at 22:18
  • I'd name them cam 1, cam 2, cam 3, .. etc then show a picture of how they are positioned on the robot. I don't know what you are getting at, and this is not constructive, objective, or even answerable. You are asking my opinion, when I've already said that "usually" things are specified w.r.t. a coordinate frame, as above. – Josh Vander Hook Mar 13 '13 at 00:12
  • Sorry folks, but comments should not be used for extended discussions, they are here to help improve an answer or question. If you wish to discuss this further, could I suggest that you talk over on [chat]. – Mark Booth Mar 13 '13 at 11:19
  • @Josh - The positional picture is an ideal solution, but isn't a possibility for several iterations. I'm doing UI design for a system with multiple robot configs all logged in simultaneously. The current solution has been cam 1, cam 2, etc for each bot, but that started confusing the engineers (currently 4 bots each with up to 12 cameras; "which camera was on the walker's left shoulder pointing backwards?"). The engineers asked me to identify short robotic terms they could use, because they kept tripping over "forward" & "front" (is the camera on the leading edge or is it pointing forward?) – Recursive Self Optimization Mar 13 '13 at 13:41
  • @Josh - (continued) Despite much research, the only standardized approaches I've seen have been numeric coordinate systems (precise, but not human friendly), nautical/aeronautical (not robotic in nature), and clockface for direction. Obviously, my engineers aren't familiar with robotic specific terms, but they believe there are standards. Not being a roboticist, I've searched all the places I know and am now seeking assistance myself. – Recursive Self Optimization Mar 13 '13 at 13:42
  • @Mark - I'm really just trying to clarify my original answer. I understand the desire for brief questions and answers in this forum, but at present (a) I'm clearly still struggling with the terminology to even ask the question, yet alone ask it clearly and (b) I don't even have enough reputation to post to Robotics Chat. Heck, I don't even have enough credit to give Josh & Jacob thumbs up for their helpful attempts to steer me to the answer I'm seeking. :( – Recursive Self Optimization Mar 13 '13 at 13:47
  • 1
    Sorry @RecursiveSelfOptimization I hadn't spotted that you were below 20 rep. Feel free to ask about your problems with terminology with new questions, it shouldn't take long for you to gain the 9 more rep that you need to chat. Also, the best way to clarify your question is to edit your question. That way all of the information future answerers need is in your question rather than scattered through comments to the answers. The same goes for answers, which is why Josh edited his answer, to keep the relevant information in his answer rather than being scattered through these comments. – Mark Booth Mar 13 '13 at 14:09
  • Are the rotation arrows in the image correctly oriented? They appear to be left-handed for roll and pitch (but right-handed for yaw). – RLH Mar 06 '20 at 02:42
2

I think you could use bearing (or azimuth or right ascension) and mark (or altitude or declination). For example 0 mark 0 is straight ahead and on the horizon. 30 mark 30 is 30 degrees to the right and 30 degrees above the horizon. -90 mark -90 would be 90 degrees to the left and then face down into the ground. These could be relative to your current position and orientation or relative to some reference such as true north or magnetic north and the horizon.

This is the system astronomer's use.

Octopus
  • 1,047
  • 1
  • 6
  • 13
0

Roll, pitch and yaw and they could be understood by following images

Explanation 1

Explanation 2

Explanation 3

karfkars
  • 101
  • 1
0

I prefer to use anatomical terms for this. I'm slightly biased because I often do biomimetic and rehabilitation work. However, there are a few nice things about using them discussing or describing a (vehicle) body.

  1. The terminology is rich. There are unambiguous terms for location (left right anterior posterior dorsal ventral), the cross section planes (sagital transverse coronal), and relative positioning on the body (proximal distal).
  2. The terminology is shared. Roboticists doing medical, walking, and manipulation use these terms and the fact that biologists and medical scientists can instantly understand you creates opportunities for scientific cross-pollination.
hauptmech
  • 4,425
  • 15
  • 20