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#
-
In the first frame of the animation, the truck is normally oriented to
face the direction defined by the first two positions in the input
table. If another initial yaw is desired, then it may be specified
with the -a option.
-
-r#
-
Create an animation table for the front wheels. The argument to this
option is the radius of the front wheels. The output table has four
columns: time, swivel, rotation, and a zero-filled column. These
columns represent the orientation of the front wheels in terms of yaw,
pitch, and roll; the table can be piped directly into
anim_script to animate the wheels.
-
-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=18x20
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 and
smoothness of the steering algorithm
are best when the frame rate of the input table is high.
This can lead to a degradation of performance when creating a preview
animation with a small frame rate. In this case, the user should still
use a high frame rate table as input to anim_turn, and decrease the
frame rate of 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 only 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
"BUG REPORTS"
Reports of bugs or problems should be submitted via electronic
mail to <devs@brlcad.org>.