|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.lang.Thread lejos.robotics.navigation.Ballbot
public class Ballbot
This class dynamically stabilizes a ballbot type of robot. The ballbot robot uses two motors to drive a ball with a similar configuration to a mechanical mouse.
A ballbot needs good motors, sensors, a grippy ball/rollers (wheels) and should be as symmetrical as possible in all directions (like a circle) to optimize stability. If using a billiard ball or LEGO ball, it is recommended to apply a layer of rubber glue to the tires to add grip.
To start the robot balancing:
This code is based on the Segoway class.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class java.lang.Thread |
---|
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler |
Field Summary | |
---|---|
protected EncoderMotor |
my_motor
|
Fields inherited from class java.lang.Thread |
---|
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY |
Constructor Summary | |
---|---|
Ballbot(EncoderMotor xMotor,
Gyroscope xGyro,
EncoderMotor yMotor,
Gyroscope yGyro,
double rollerDiameter)
|
Method Summary | |
---|---|
void |
impulseMove(int x_axisPower,
int y_axisPower)
Causes movement along either the xaxis or y axis. |
void |
run()
|
Methods inherited from class java.lang.Thread |
---|
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected EncoderMotor my_motor
Constructor Detail |
---|
public Ballbot(EncoderMotor xMotor, Gyroscope xGyro, EncoderMotor yMotor, Gyroscope yGyro, double rollerDiameter)
xMotor
- The first motor, such as an NXTMotor.xGyro
- The gyro accompanying xMotor. Monitors the x-axisyMotor
- The second motor, such as an NXTMotor.yGyro
- The gyro accompanying xMotor. Monitors the y-axisrollerDiameter
- The diameter of the motorized rollers. Usually NXT 2.0 wheels (4.32 cm)Method Detail |
---|
public void run()
run
in interface java.lang.Runnable
run
in class java.lang.Thread
public void impulseMove(int x_axisPower, int y_axisPower)
Causes movement along either the xaxis or y axis. Normally power for each of these values is zero in order to keep the ballbot roughly stationary.
This method does not actually apply direct power to the roller wheels. Control is filtered through to each wheel, allowing the robot to move. Higher values are faster. Negative values cause movement in the opposite direction. Values between -200 and 200 are acceptable. If values are too high it can make the robot balance unstable. Try starting with values around 10 or so. A ballbot needs good motors, sensors, a grippy ball/roller and be extremely symmetrical if you want to use higher values.
x_axisPower
- y_axisPower
-
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |