In-class Examples List
CS 444 - Robotics
Spring 2015
Last modified: Sunday, May 10, 2015
Important Notes:
- This is merely a selection of files and examples, most of which were
mentioned or used in the class (lectures and labs). It is not a
comprehensive
list, nor are all lectures and labs included. Formatting is generally
minimal.
- Week 15, Lab, May 8, 2015 - SumoBot matches!
- Week 15, Lecture 2, May 7, 2015
Week 15, Lecture 1, May 5, 2015
Week 14, Lab, May 1, 2015
Week 14, Lecture 2, April 30, 2015
Week 14, Lecture 1, April 28, 2015 - continuing work on
Project 5 - SumoBot Project
- Week 13, Lab, April 24, 2015 - continuing work on Project 5 -
SumoBot Project
- Week 13, Lecture 2, April 23, 2015 - announcement of Project 5 -
SumoBot Project teams; starting work on SumoBot Project
- Week 13, Lecture 1, April 21, 2015 - setting the groundwork for
Project 5 -
SumoBot Project
- for Week 12, Lecture 2, April 16, 2015 and Week 12, Lab, April 17, 2015 -
next part of PROJECT 4 -
using PID control with a light sensor to try to balance!
- STEP 1 - BUILD our version of Philo Hurbain's NXTway
robot
- NXTway
robot: parts for each step
- photos to accompany the above parts-for-each-step:
start here -
(click on a photo to enlarge it)
- SHOW completed robot to David Tuttle, have him CHECK
your team off on the "BUILT NXTway" list
- STEP 2 - Try Brian Bagnall's Sejway program on our version of
the NXTway robot -
- Sejway.java - adapted
from Brian Bagnall's version at
http://legolab.cs.au.dk/DigitalControl.dir/NXT/Lesson5.dir/Lesson5Programs/Sejway.java
- ADD the NAMES of team members present
in an:
@author implemented by: <names>
comment-line in the class' javadoc comment!
- SHOW Sejway code running on your robot to David Tuttle, have him CHECK
your team off on the "SHOWED Sejway RUNNING" list
- STEP 3 - perform multiple runs of this code on your robot -
try to *informally*
TIME how long it is able to balance - then SUBMIT
the following as HW number 51:
- your version of
Sejway.java
, including
participating team members' names
- a file
initial-tests.txt
that includes
names of all participating team members, the last-modified
date, and your informally-measured longest time
it was able to balance
- STEP 4 - if TIME permits - demos/measured trials with the class
watching/participating of 3 runs each
of the final versions of each team's robot, recording the
LONGEST balancing time of the 3 runs
- Week 12, Lecture 1, April 14, 2015 - discussion of control and
robots; simple and feedback controllers; control loop;
PID controllers; robot
control "architectures"; trends in robot control
- Week 11, Lab, April 10, 2015 - Quiz 3; working on Project 4 -
Stage 3; demos of Blighbot2 and BlightbotCompass2
- Week 11, Lecture 2, April 9, 2015 - working on Project 4 - Stages 2 and 3,
BUT now with maybe-working compass-sensor-calibration!
- Week 11, Lecture 1, April 7, 2015 - working on Project 4 - Stages 2 and 3
- Week 10, Lab, April 3, 2015 - Project 4 - Stages 2 and 3 -
attempting to try out the Hi Technic
Compass Sensor with course text's Chapter 17 version of
carpet rover
- Week 10, Lecture 2, April 2, 2015 - working on Project 4 -
shambler robot
- Week 10, Lecture 1, March 31, 2015 - no class - HSU holiday -
Cesar Chavez holiday
- Week 9, Lab, March 27, 2015 - Started Project 4 - attempting
course text Ch. 18 - Walking Robot's shambler robot
- Week 9, Lecture 2, March 26, 2015 - finished Project 3 - Stage 3
measured trials on left-edge of standard thick black path
on white paper; post-project-3 robot kit inventories
- Week 9, Lecture 1, March 24, 2015 - working on Project 3 - Stage 3;
started measured trials on left-edge of standard thick black path
on white paper
- Week 8, Lab, March 13, 2015 - Quiz 2; working on Project 3 -
Stage 3
- Week 8, Lecture 2, March 12, 2015 - working on Project 3 - Stage 3 -
practicing using a light sensor, and then working on
a 3-or-more-behaviors behavior-based program
using a downward-facing light sensor
to follow along the left edge of a thick black line
on a white background
- Week 8, Lecture 1, March 10, 2015 - working on Project 3 - Stage 2 -
coming up with a 3-or-more-behaviors behavior-based program
for traversing a features-course in BSS 315, followed by
measured trials
- Week 7, Lab, March 6, 2015 - Two-behavior example of behavior-based robotics
using
lejos.robotics.subsumption
- Week 7, Lecture 2, March 5, 2015 - working on Project 3 - Stage 1
team version (or possibly another team version) of
GuideMe.java
, followed by
measured trials on a different features-course in BSS 315
- Week 7, Lecture 1, March 3, 2015 - working on Project 3 - Stage 1
team version of
GuideMe.java
, followed by
measured trials on the features-course in BSS 315
- Week 6, Lab, February 27, 2015 - Quiz 1; announcement of new teams
for Project 3; working on Project 3 - Stage 1:
implementing team members' individual versions of
GuideMe.java
from Individual Assignment 3
- Week 6, Lecture 2, February 26, 2015 - a few additional points on
feature detection in leJOS; intro to Java
try-catch
for exception-handling; intro to behavior-based robotics/
subsumption architecture
- Week 6, Lecture 1, February 24, 2015 - working on Project 2;
Project 2- Stage 5 demos
- Week 5, Lab, February 20, 2015 - working on Project 2
(see also Project 2
handout, in tagged PDF)
- Week 5, Lecture 2, February 19, 2015 - working on Project 2
(see also Project 2
handout, in tagged PDF)
- Week 5, Lecture 1, February 17, 2015 - working on Project
2, trying out and then extending these applications
(see also Project 2
handout, in tagged PDF)
-
ButtonEventPlay.java - source code file for
a leJOS application class that adds event handling
to the NXT brick's four buttons so they identify
themselves to the screen when pressed and released;
also includes a private inner class implementing the
ButtonListener
interface
-
SquareTracer.java - source code file for
a leJOS application class including another
DifferentialPilot
example
-
TravelTest.java - source code file for
a leJOS application class including a first
DifferentialPilot
example
-
ObjectDetectPlay.java - source code file for
a leJOS application class including features from
package
lejos.robotics.objectdetection
- Week 4, Lab, February 13, 2015 - discussion of the types of
a Java object variable; intro to Java interfaces; intro to
the Java 1.1 event handling model; intro to
DifferentialPilot
class in package
lejos.robotic.navigation
-
Week 4 Lab projected notes
-
ButtonEventPlay.java - source code file for
a leJOS application class that adds event handling
to the NXT brick's four buttons so they identify
themselves to the screen when pressed and released;
also includes a private inner class implementing the
ButtonListener
interface
-
TravelTest.java - source code file for
a leJOS application class including a first
DifferentialPilot
example
- four more versions of
ButtonEventPlay
, to test
a few things
(see projected notes for a bit more discussion of these)
-
ButtonEventPlay2.java - uses four anonymous
inner classes for the buttons' button listeners
-
ButtonEventPlay3.java - uses four private
inner classes for the buttons' button listeners
-
ButtonEventPlay4.java - UGLY proof of concept:
removing ALL comments, to verify that comments
have no effect on final compiled-and-linked .nxj
file size
-
ButtonEventPlay5.java - UGLY proof of concept:
removing ALL blank lines and indentation, and smushing each
{
and }
on the previous line,
also to verify that these in the source code have no
effect on the final compiled-and-linked .nxj file
size
- Week 4, Lecture 2, February 12, 2015 - quick example of
a Java class,
GameDie
, that is not
also an application class; making use of such a user-written
class in a leJOS application, TryDie
-
Week 4 Lecture 2 projected notes
-
GameDie.java - source code file for
a simple Java non-application class representing
a game die (can be "rolled" to get a somewhat-random
integer in a given range)
-
TryDie.java - source code file for
a leJOS application class that uses
GameDie
-
GameDieTest.java - bonus example - source code file for
a set of JUnit tests for class
GameDie
- Week 4, Lecture 1, February 10, 2015 -
more discussion of regulating NXT motor rotation,
quick example of
NXTMotor
(that does NOT
include a regulator thread -- this motor instance isn't
regulated by a regulator thread)
-
Week 4 Lecture 1 projected notes
-
GoStraight1.java - source code file for
a leJOS application class demonstrating
the regulator threads for two NXTRegulatorMotor
instances synchronizing to the system clock (so
the two-wheeled robot goes relatively straight)
-
NXTMotorTest.java - source code file for
a leJOS application class demonstrating
an example of an
NXTMotor
instance
and its setPower
method (no regulator
thread, so no rotate/rotateTo
methods
- Week 3, Lab, February 6, 2015 -
more discussion of regulating NXT motor rotation
-
Week 3 Lab projected notes
-
TachoPlay.java - source code file for
the complete version of a leJOS application
class playing with an NXT motor's tachometer
-
RotatePlay.java - source code file for
a leJOS application
class playing with the
NXTRegulatedMotor
class' rotate
and rotateTo
methods
-
EndRotatePlay.java - source code file for
a leJOS application
class showing how a caller can prematurely halt
motor rotation (being controlled by the separate
regulator thread)
- Week 3, Lecture 2, February 5, 2015 - team demos of their
Project 1 - Stage 5 robots; some discussion of an NXT
motor's tachometer (and setting a motor's speed)
- Week 3, Lecture 1, February 3, 2015 - teams working on Project 1 -
Stages 4 and 5
- Week 2, Lab, January 30, 2015 - brief introduction to a few
methods in package
lejos.nxt
class
NXTRegulatedMotor
and to a few
useful named constants in class Motor
; then,
teams working on Project 1 - Stages 3 and 4
- Week 2, Lecture 2, January 29, 2015 - brief discussion about
Lego-building in general; then, teams working on Project 1 - Stages 2
and 3
- Week 2, Lecture 1, January 27, 2015 - enough leJOS to run
our first leJOS program on a Lego Mindstorms NXT brick; then,
teams working on Project 1 - Stage 1
- Week 1, Lab, January 23, 2015 - intro to Java
for leJOS, continued
- Week 1, Lecture 2, January 22, 2015 - intro to Java
for leJOS
Back to Course Home Page