|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectrp1.rossum.RsComponent
rp1.rossum.RsBodyPart
rp1.rossum.RsActuator
rp1.rossum.RsWheelSystem
rp1.rossum.RsAckermanSteering
public class RsAckermanSteering
An actuator class representing the Ackerman steering locomotion systems. Ackerman steering is the systen used on virtually all automobile implementations. This class presents a very high level of such a system, ignoring the mechanical details of the steering apparatus and focussing on its general effects.
Constructor Summary | |
---|---|
RsAckermanSteering(double trackWidth,
double wheelBase,
double driveWheelRadius,
double maxAbsInnerWheelSteeringAngle,
boolean dualSteering)
Creates and initializes an object representing an Ackerman steering system.. |
Method Summary | |
---|---|
void |
addDefaultWheels(double wheelRadius,
double wheelWidth,
double stubLength,
double stubWidth)
Adds default wheels of requested size with stub axle (supply values of zero for stub axle to suppress its creation and just draw a simple wheel). |
RsActuatorControlRequest |
getControlRequestForWheelRotationAndSteeringAngle(double driveRotationalVelocity,
double steeringAngle)
|
double |
getMaxAbsSteeringAngle()
Returns the maximum absolute value of the central steering angle for the actuator based on the steering geometry and maximum inner wheel steering angle specified in the constructor. |
double |
getMinTurnRadius()
Returns minimum allowable turn radius based on steering geometry and the maximum inner wheel steering angle specified in the constructor. |
RsMotionRequest |
getMotionRequest(double x,
double y,
double speed)
TO DO: Not implemented at this time. |
RsMotionRequest |
getMotionRequestForPivot(double x,
double y,
double speed)
The request for a pivot method always returns a null because the real-world Ackerman steering system does not support a pivot |
RsMotionRequest |
getMotionRequestUsingVelocityAndSteeringAngle(double velocity,
double steeringAngle,
double duration)
|
RsMotionRequest |
getMotionRequestUsingWheelRotationalVelocityAndSteeringAngle(double rotationalVelocity,
double steeringAngle,
double duration)
|
double |
getTurnRadiusForSteeringAngle(double steeringAngle)
|
double |
mapVelocityToWheelRotationalVelocity(double velocity)
|
double |
mapVelocityToWheelRPM(double velocity)
|
double |
mapWheelRPMToVelocity(double rpm)
|
void |
setSteeringAngle(double steeringAngle)
Sets steering angle to be used for depiction |
Methods inherited from class rp1.rossum.RsWheelSystem |
---|
addDefaultCasterWheel, addDefaultWheels, addWheel, applyMotion, computeMotion, copyStateData, getDriveWheelRadius, getTrackWidth, getWheelBase, getWheelForID, getWheels, paint, resetStateData, setFillColor, setLineColor |
Methods inherited from class rp1.rossum.RsActuator |
---|
getPartsArray |
Methods inherited from class rp1.rossum.RsBodyPart |
---|
getFillColor, getHot, getID, getLineColor, getName, isASensor, searchForCollisions, setHot, setHotFillColor, setHotLineColor, setName |
Methods inherited from class rp1.rossum.RsComponent |
---|
clone |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public RsAckermanSteering(double trackWidth, double wheelBase, double driveWheelRadius, double maxAbsInnerWheelSteeringAngle, boolean dualSteering)
trackWidth
- the width of the wheel system, measured wheel center-to-center.wheelBase
- the wheel base (length of wheel system), measured from wheel center-to-center.driveWheelRadius
- the radius of the drive wheels (used for converting rotational velocities).maxAbsInnerWheelSteeringAngle
- is the absolute value of the maximum angle the inner wheel may be turned.dualSteering
- indicates that the system has steering on both the front and rear axles.
TO DO: fix the bounds computation to include wheel definitions
and account for the swing of the steering wheels.Method Detail |
---|
public double getMinTurnRadius()
public double getMaxAbsSteeringAngle()
public void addDefaultWheels(double wheelRadius, double wheelWidth, double stubLength, double stubWidth)
wheelRadius
- the tire radius of all four wheels (for depiction purposes)wheelWidth
- the tire width for all four wheelsstubLength
- length of a stub axlestubWidth
- width of a stub axlepublic void setSteeringAngle(double steeringAngle)
public double getTurnRadiusForSteeringAngle(double steeringAngle)
public double mapVelocityToWheelRotationalVelocity(double velocity)
public double mapVelocityToWheelRPM(double velocity)
public double mapWheelRPMToVelocity(double rpm)
public RsMotionRequest getMotionRequestUsingVelocityAndSteeringAngle(double velocity, double steeringAngle, double duration)
public RsMotionRequest getMotionRequestUsingWheelRotationalVelocityAndSteeringAngle(double rotationalVelocity, double steeringAngle, double duration)
public RsActuatorControlRequest getControlRequestForWheelRotationAndSteeringAngle(double driveRotationalVelocity, double steeringAngle)
public RsMotionRequest getMotionRequest(double x, double y, double speed)
getMotionRequest
in class RsWheelSystem
x
- x coordiante of goal in robot's frame of reference (meters)y
- y coordinate of goal in robot's frame of reference (meters)speed
- speed at which robot is requested to travel (meters/sec)public RsMotionRequest getMotionRequestForPivot(double x, double y, double speed)
getMotionRequestForPivot
in class RsWheelSystem
x
- x coordiante of goal in robot's frame of reference (meters)y
- y coordinate of goal in robot's frame of reference (meters)speed
- rotational speed at which robot is requested to pivot (radians/sec)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |