From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,d923bb34ea827f56 X-Google-Attributes: gid103376,public From: mbk@caffeine.engr.utk.edu (Matt Kennel) Subject: Re: Ada / Boeing 777 Date: 1996/03/22 Message-ID: <4iv1id$dlm@gaia.ns.utk.edu>#1/1 X-Deja-AN: 143750661 references: <199603181348.IAA08669@bb.iu.net> organization: University of Tennessee, Knoxville and Oak Ridge National Laboratory reply-to: kennel@msr.epm.ornl.gov newsgroups: comp.lang.ada Date: 1996-03-22T00:00:00+00:00 List-Id: Sam Harbaugh (harbaugh@ACUSYS.COM) wrote: : Tim Rowe wrote: : >As an example, there was a known fault on one of the Airbus range (which : >has been flying total fly-by-wire for *many* years before the 777!) that : >meant that when flying a heading of 00 degrees, if the pilot commanded : >the aircraft to turn a bit one way, the aircraft could actually turn the : >other way. It was turning to the correct heading, but it was going the : >359 degree route, not the 1 degree route. Now, there are not many runways : >in the world that are close to north-south, but there are a few, and when : >that bug showed itself on a final approach I bet the pilots pants turned : >brown. : Point of order: heading zero is invalid in the user space. north-south : runways are marked 36 for 360 degrees, not zero. Pilots and ATC speak of : 360 degrees, not zero degrees. : I wouldn't suggest that this point has anything to do with the malfunction : but maybe, just maybe, if the programmer had a pilot's license he/she would : have known this and then maybe, just maybe, he/she would have known to turn : in the proper direction. : Just maybe, just possibly maybe, if the code was written in a strongly typed : language, using human readable names, and a pilot attended a code : walkthrough, the pilot would have picked up on type heading_type being from : 0..359 instead of 1..360 and started a conversation that would have lead to : discovery of the worong way turn. The representation (aka implementation) of angle is wrong. It should be a complex number of unit magnitude. Rotations in any direction can be implemented as complex multiplication without any discontinuities, wrap around errors or problems at 0 or 180 or 360 degrees. This is an easy 2-d representation of the rotation group. 3-d is trickier: either Euler angles or quaternions. Don't just hack on the problem: transcend it. See, sometimes physicists *can* be useful. ;-)