Class RemoteRequestPilot
- java.lang.Object
-
- lejos.remote.ev3.RemoteRequestPilot
-
- All Implemented Interfaces:
ArcMoveController,ArcRotateMoveController,MoveController,MoveProvider,RotateMoveController
public class RemoteRequestPilot extends java.lang.Object implements ArcRotateMoveController
-
-
Field Summary
-
Fields inherited from interface lejos.robotics.navigation.MoveController
WHEEL_SIZE_EV3, WHEEL_SIZE_NXT1, WHEEL_SIZE_NXT2, WHEEL_SIZE_RCX
-
-
Constructor Summary
Constructors Constructor Description RemoteRequestPilot(java.io.ObjectInputStream is, java.io.ObjectOutputStream os, java.lang.String leftMotor, java.lang.String rightMotor, double wheelDiameter, double trackWidth)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddMoveListener(MoveListener listener)Adds a MoveListener that will be notified of all movement events.voidarc(double radius, double angle)Moves the NXT robot along an arc with a specified radius and angle, after which the robot stops moving.voidarc(double radius, double angle, boolean immediateReturn)Moves the NXT robot along an arc with a specified radius and angle, after which the robot stops moving.voidarcBackward(double radius)Starts the NXT robot moving backward along an arc with a specified radius.voidarcForward(double radius)Starts the NXT robot moving forward along an arc with a specified radius.voidbackward()Starts the NXT robot moving backwards.voidclose()voidforward()Starts the NXT robot moving forward.doublegetAngularAcceleration()Returns the acceleration at which the robot accelerates at the start of a move and decelerates at the end of a move.doublegetAngularSpeed()Returns the value of the rotation speeddoublegetLinearAcceleration()Returns the acceleration at which the robot accelerates at the start of a move and decelerates at the end of a move.doublegetLinearSpeed()Returns the speed at which the robot will travel forward and backward (and to some extent arcs, although actual arc speed is slightly less).doublegetMaxAngularSpeed()returns the maximum value of the rotation speed;doublegetMaxLinearSpeed()Returns the maximum speed at which this robot is capable of traveling forward and backward.doublegetMinRadius()The minimum steering radius this vehicle is capable of when traveling in an arc.MovegetMovement()Returns the move made since the move started, but before it has completed.booleanisMoving()true if the robot is movingvoidrotate(double angle)Rotates the NXT robot the specified number of degrees; direction determined by the sign of the parameter.voidrotate(double angle, boolean immediateReturn)Rotates the NXT robot the specified number of degrees; direction determined by the sign of the parameter.voidrotateLeft()voidrotateRight()voidsetAngularAcceleration(double acceleration)Sets the acceleration at which the robot will accelerate at the start of a move and decelerate at the end of a move.voidsetAngularSpeed(double speed)sets the rotation speed of the robot (the angular velocity of the rotate() methods)voidsetLinearAcceleration(double acceleration)Sets the acceleration at which the robot will accelerate at the start of a move and decelerate at the end of a move.voidsetLinearSpeed(double speed)Sets the speed at which the robot will travel forward and backward (and to some extent arcs, although actual arc speed is slightly less).voidsetMinRadius(double radius)Set the radius of the minimum turning circle.voidsteer(double turnRate)voidstop()Halts the NXT robotvoidtravel(double distance)Moves the NXT robot a specific distance.voidtravel(double distance, boolean immediateReturn)Moves the NXT robot a specific distance.voidtravelArc(double radius, double distance)Moves the NXT robot a specified distance along an arc of specified radius, after which the robot stops moving.voidtravelArc(double radius, double distance, boolean immediateReturn)Moves the NXT robot a specified distance along an arc of specified radius, after which the robot stops moving.
-
-
-
Method Detail
-
getMinRadius
public double getMinRadius()
Description copied from interface:ArcMoveControllerThe minimum steering radius this vehicle is capable of when traveling in an arc. Theoretically this should be identical for both forward and reverse travel. In practice?- Specified by:
getMinRadiusin interfaceArcMoveController- Returns:
- the radius in degrees
-
setMinRadius
public void setMinRadius(double radius)
Description copied from interface:ArcMoveControllerSet the radius of the minimum turning circle.- Specified by:
setMinRadiusin interfaceArcMoveController- Parameters:
radius- the radius in degrees
-
arcForward
public void arcForward(double radius)
Description copied from interface:ArcMoveControllerStarts the NXT robot moving forward along an arc with a specified radius.If
radiusis positive, the robot arcs left, and the center of the turning circle is on the left side of the robot.
Ifradiusis negative, the robot arcs right, and the center of the turning circle is on the right side of the robot.
Ifradiusis zero, the robot rotates in place.Postcondition: Motor speeds are unpredictable.
Note: If you have specified a drift correction in the constructor it will not be applied in this method.
- Specified by:
arcForwardin interfaceArcMoveController- Parameters:
radius- of the arc path. If positive, the left side of the robot is on the inside of the turn. If negative, the left side of the robot is on the outside of the turn.
-
arcBackward
public void arcBackward(double radius)
Description copied from interface:ArcMoveControllerStarts the NXT robot moving backward along an arc with a specified radius.If
radiusis positive, the robot arcs left, and the center of the turning circle is on the left side of the robot.
Ifradiusis negative, the robot arcs right, and the center of the turning circle is on the right side of the robot.
Ifradiusis zero, the robot rotates in place.Postcondition: Motor speeds are unpredictable.
Note: If you have specified a drift correction in the constructor it will not be applied in this method.
- Specified by:
arcBackwardin interfaceArcMoveController- Parameters:
radius- of the arc path. If positive, the left side of the robot is on the inside of the turn. If negative, the left side of the robot is on the outside of the turn.
-
arc
public void arc(double radius, double angle, boolean immediateReturn)Description copied from interface:ArcMoveControllerMoves the NXT robot along an arc with a specified radius and angle, after which the robot stops moving. This method has the ability to return immediately by using theimmediateReturnparameter.If
radiusis positive, the robot arcs left, and the center of the turning circle is on the left side of the robot.
Ifradiusis negative, the robot arcs right, and the center of the turning circle is on the right side of the robot.
Ifradiusis zero, is zero, the robot rotates in place.The robot will stop when the degrees it has moved along the arc equals
angle.
Ifangleis positive, the robot will turn to the left (anti-clockwise).
Ifangleis negative, the robot will turn to the right (clockwise). Ifangleis zero, the robot will not move and the method returns immediately.Postcondition: Motor speeds are unpredictable.
Note: If you have specified a drift correction in the constructor it will not be applied in this method.
- Specified by:
arcin interfaceArcMoveController- Parameters:
radius- of the arc path. If positive, the left side of the robot is on the inside of the turn. If negative, the left side of the robot is on the outside of the turn.angle- The sign of the angle determines the direction of the robot turns: Positive is anti-clockwise, negative is clockwise.immediateReturn- If immediateReturn is true then the method returns immediately.- See Also:
ArcMoveController.travelArc(double, double, boolean)
-
travelArc
public void travelArc(double radius, double distance, boolean immediateReturn)Description copied from interface:ArcMoveControllerMoves the NXT robot a specified distance along an arc of specified radius, after which the robot stops moving. This method has the ability to return immediately by using theimmediateReturnparameter. The units (inches, cm) fordistanceshould be the same as the units used forradius.If
radiusis positive, the robot arcs left, and the center of the turning circle is on the left side of the robot.
Ifradiusis negative, the robot arcs right, and the center of the turning circle is on the right side of the robot.
Ifradiusis zero, the robot rotates in place.The robot will stop when it has moved along the arc
distanceunits.
Ifdistanceis positive, the robot will move travel forwards.
Ifdistanceis negative, the robot will move travel backwards.
Ifdistanceis zero, the robot will not move and the method returns immediately.Postcondition: Motor speeds are unpredictable.
- Specified by:
travelArcin interfaceArcMoveController- Parameters:
radius- of the arc path. If positive, the left side of the robot is on the inside of the turn. If negative, the left side of the robot is on the outside of the turn.distance- to travel, in same units asradius. The sign of the distance determines the direction of robot motion. Positive drives the robot forward, negative drives it backward.immediateReturn- If immediateReturn is true then the method returns immediately.- See Also:
ArcMoveController.arc(double, double, boolean)
-
forward
public void forward()
Description copied from interface:MoveControllerStarts the NXT robot moving forward.- Specified by:
forwardin interfaceMoveController
-
backward
public void backward()
Description copied from interface:MoveControllerStarts the NXT robot moving backwards.- Specified by:
backwardin interfaceMoveController
-
stop
public void stop()
Description copied from interface:MoveControllerHalts the NXT robot- Specified by:
stopin interfaceMoveController
-
isMoving
public boolean isMoving()
Description copied from interface:MoveControllertrue if the robot is moving- Specified by:
isMovingin interfaceMoveController- Returns:
- true if the robot is moving under power.
-
travel
public void travel(double distance, boolean immediateReturn)Description copied from interface:MoveControllerMoves the NXT robot a specific distance. A positive value moves it forward and a negative value moves it backward.- Specified by:
travelin interfaceMoveController- Parameters:
distance- The positive or negative distance to move the robot, in wheel diameter units.immediateReturn- If immediateReturn is true then the method returns immediately.
-
setLinearSpeed
public void setLinearSpeed(double speed)
Description copied from interface:MoveControllerSets the speed at which the robot will travel forward and backward (and to some extent arcs, although actual arc speed is slightly less). Speed is measured in units/second. e.g. If wheel diameter is cm, then speed is cm/sec.- Specified by:
setLinearSpeedin interfaceMoveController- Parameters:
speed- In chosen units per second (e.g. cm/sec)
-
getLinearSpeed
public double getLinearSpeed()
Description copied from interface:MoveControllerReturns the speed at which the robot will travel forward and backward (and to some extent arcs, although actual arc speed is slightly less). Speed is measured in units/second. e.g. If wheel diameter is cm, then speed is cm/sec.- Specified by:
getLinearSpeedin interfaceMoveController- Returns:
- Speed in chosen units per second (e.g. cm/sec)
-
getMaxLinearSpeed
public double getMaxLinearSpeed()
Description copied from interface:MoveControllerReturns the maximum speed at which this robot is capable of traveling forward and backward. Speed is measured in units/second. e.g. If wheel diameter is cm, then speed is cm/sec.- Specified by:
getMaxLinearSpeedin interfaceMoveController- Returns:
- Speed in chosen units per second (e.g. cm/sec)
-
getMovement
public Move getMovement()
Description copied from interface:MoveProviderReturns the move made since the move started, but before it has completed. This method is used by GUI maps to display the movement of a robot in real time. The robot must be capable of determining the move while it is in motion.- Specified by:
getMovementin interfaceMoveProvider- Returns:
- The move made since the move started.
-
addMoveListener
public void addMoveListener(MoveListener listener)
Description copied from interface:MoveProviderAdds a MoveListener that will be notified of all movement events.- Specified by:
addMoveListenerin interfaceMoveProvider- Parameters:
listener- the move listener
-
rotate
public void rotate(double angle, boolean immediateReturn)Description copied from interface:RotateMoveControllerRotates the NXT robot the specified number of degrees; direction determined by the sign of the parameter. Method returns immediately if immediateReturn flag is true, otherwise returns when rotation is done.- Specified by:
rotatein interfaceRotateMoveController- Parameters:
angle- The angle to rotate in degrees. A positive value rotates left, a negative value right (clockwise).immediateReturn- If true, method returns immediately, otherwise blocks until rotation is complete.
-
steer
public void steer(double turnRate)
-
setAngularSpeed
public void setAngularSpeed(double speed)
Description copied from interface:RotateMoveControllersets the rotation speed of the robot (the angular velocity of the rotate() methods)- Specified by:
setAngularSpeedin interfaceRotateMoveController- Parameters:
speed- in degrees per second
-
getAngularSpeed
public double getAngularSpeed()
Description copied from interface:RotateMoveControllerReturns the value of the rotation speed- Specified by:
getAngularSpeedin interfaceRotateMoveController- Returns:
- the rotate speed in degrees per second
-
getMaxAngularSpeed
public double getMaxAngularSpeed()
Description copied from interface:RotateMoveControllerreturns the maximum value of the rotation speed;- Specified by:
getMaxAngularSpeedin interfaceRotateMoveController- Returns:
- max rotation speed
-
close
public void close()
-
arc
public void arc(double radius, double angle)Description copied from interface:ArcMoveControllerMoves the NXT robot along an arc with a specified radius and angle, after which the robot stops moving. This method does not return until the robot has completed movingangledegrees along the arc.If
radiusis positive, the robot arcs left, and the center of the turning circle is on the left side of the robot.
Ifradiusis negative, the robot arcs right, and the center of the turning circle is on the right side of the robot.
Ifradiusis zero, is zero, the robot rotates in place.Robot will stop when the degrees it has moved along the arc equals
angle.
Ifangleis positive, the robot will turn to the left (anti-clockwise).
Ifangleis negative, the robot will turn to the right (clockwise). Ifangleis zero, the robot will not move and the method returns immediately.Postcondition: Motor speeds are unpredictable.
Note: If you have specified a drift correction in the constructor it will not be applied in this method.
- Specified by:
arcin interfaceArcMoveController- Parameters:
radius- of the arc path. If positive, the left side of the robot is on the inside of the turn. If negative, the left side of the robot is on the outside of the turn.angle- The sign of the angle determines the direction of the robot turns: Positive is anti-clockwise, negative is clockwise.- See Also:
ArcMoveController.travelArc(double, double)
-
travel
public void travel(double distance)
Description copied from interface:MoveControllerMoves the NXT robot a specific distance. A positive value moves it forward and a negative value moves it backward. Method returns when movement is done.- Specified by:
travelin interfaceMoveController- Parameters:
distance- The positive or negative distance to move the robot.
-
travelArc
public void travelArc(double radius, double distance)Description copied from interface:ArcMoveControllerMoves the NXT robot a specified distance along an arc of specified radius, after which the robot stops moving. This method does not return until the robot has completed movingdistancealong the arc. The units (inches, cm) fordistancemust be the same as the units used forradius.If
radiusis positive, the robot arcs left, and the center of the turning circle is on the left side of the robot.
Ifradiusis negative, the robot arcs right, and the center of the turning circle is on the right side of the robot.
Ifradiusis zero, the robot rotates in placeThe robot will stop when it has moved along the arc
distanceunits.
Ifdistanceis positive, the robot will move travel forwards.
Ifdistanceis negative, the robot will move travel backwards.
Ifdistanceis zero, the robot will not move and the method returns immediately.Postcondition: Motor speeds are unpredictable.
- Specified by:
travelArcin interfaceArcMoveController- Parameters:
radius- of the arc path. If positive, the left side of the robot is on the inside of the turn. If negative, the left side of the robot is on the outside of the turn.distance- to travel, in same units asradius. The sign of the distance determines the direction of robot motion. Positive drives the robot forward, negative drives it backward.- See Also:
ArcMoveController.arc(double, double)
-
rotate
public void rotate(double angle)
Description copied from interface:RotateMoveControllerRotates the NXT robot the specified number of degrees; direction determined by the sign of the parameter. Method returns when rotation is done.- Specified by:
rotatein interfaceRotateMoveController- Parameters:
angle- The angle to rotate in degrees. A positive value rotates left, a negative value right (clockwise).
-
setLinearAcceleration
public void setLinearAcceleration(double acceleration)
Description copied from interface:MoveControllerSets the acceleration at which the robot will accelerate at the start of a move and decelerate at the end of a move. Acceleration is measured in units/second^2. e.g. If wheel diameter is cm, then acceleration is cm/sec^2.If acceleration is set during a move it will not be in used for the current move, it will be in effect with the next move.
- Specified by:
setLinearAccelerationin interfaceMoveController- Parameters:
acceleration- in chosen units/second^2
-
getLinearAcceleration
public double getLinearAcceleration()
Description copied from interface:MoveControllerReturns the acceleration at which the robot accelerates at the start of a move and decelerates at the end of a move.- Specified by:
getLinearAccelerationin interfaceMoveController- Returns:
- acceleration in chosen units/second^2
-
rotateRight
public void rotateRight()
- Specified by:
rotateRightin interfaceRotateMoveController
-
rotateLeft
public void rotateLeft()
- Specified by:
rotateLeftin interfaceRotateMoveController
-
setAngularAcceleration
public void setAngularAcceleration(double acceleration)
Description copied from interface:RotateMoveControllerSets the acceleration at which the robot will accelerate at the start of a move and decelerate at the end of a move. Acceleration is measured in units/second^2. e.g. If wheel diameter is cm, then acceleration is cm/sec^2.If acceleration is set during a move it will not be in used for the current move, it will be in effect with the next move.
- Specified by:
setAngularAccelerationin interfaceRotateMoveController- Parameters:
acceleration- in chosen units/second^2
-
getAngularAcceleration
public double getAngularAcceleration()
Description copied from interface:RotateMoveControllerReturns the acceleration at which the robot accelerates at the start of a move and decelerates at the end of a move.- Specified by:
getAngularAccelerationin interfaceRotateMoveController- Returns:
- acceleration in chosen units/second^2
-
-