Name

anim_turn — make animation table for vehicle with front-wheel steering.

Synopsis

anim_turn -l length [-a angle] [-r radius] [-f factor] [-p integer] < in.table > out.table

DESCRIPTION

The motion of a front wheel steered vehicle is not simple - the instantaneous velocity of the front wheels is in the direction they are pointed, while the instantaneous velocity of the back wheels is the direction the vehicle is pointed. The purpose of anim_turn is to produce a complete animation table for such a vehicle, given a table specifying the desired position of the front axle at each relevant time step. The input table should contain four columns, specifying the time and 3D position of the center of the front axle. Actually, the path is assumed to be confined to an x-y plane, but the three columns are included for consistency with other animation routines.

The output is normally a seven-column table which is a copy of the input table with three extra columns specifying the yaw, pitch, and roll of the truck at each time. The pitch and roll are always zero, since the motion is assumed be in an x-y plane.

The -l# option is not optional, and is used to specify the length of the wheelbase (from the front axle to the rear axle).

OPTIONS

-a#

anim_turn assumes that the truck should initially be oriented along the line defined by the first two positions in the input table. Otherwise, the desired initial yaw of the truck can be specified with the -a# option.

-r#

Specify the radii of the front wheels. If this option is selected, anim_turn will create an animation script to animate the front wheels. The output table would contain four columns: time, swivel-angle, roll, and a zero channel. These represent the orientation of the front wheels, in terms of yaw, pitch, and roll, and the table can be piped directly to anim_script.

-f#

Specify a factor to be used to animate a steering wheel. If this option is selected, the output table will contain four columns: time, swivel, and two zero columns. This table can be used directly by anim_script to make an animation script for a steering wheel. The argument to the option should be the factor by which to exaggerate the swiveling of the wheels. For example, on a typical truck, you may need to turn the steering wheel 360 degrees in order for the wheels to swivel 20 degrees. To model this effect, a factor of 18 would be used.

-p#

Specify the ratio of input rows to output rows, which must be an integer. The default, of course, is one. The accuracy of the output depends on having a large number of input lines, which is not usually a problem in animations, which require a large number of frames per second. However, if a test animation with a small number of frames per second is being created, the user should give an input table with a high number of input rows and reduce the output with the -p# option. For example, if in.table contains 30 rows for each second of the animation, then the command

anim_turn -l 3000 -p10 < in.table > out.table

would produce an animation table containing 3 rows for each second of the animation.

BUGS

The algorithm used only works for motion in an x-y plane.

AUTHOR

Carl J. Nuzman

COPYRIGHT

This software is Copyright (c) 1994-2016 by the United States Government as represented by U.S. Army Research Laboratory.

BUG REPORTS

Reports of bugs or problems should be submitted via electronic mail to <devs@brlcad.org>.