Welcome to project UGCSbot!
The goal of this project is to construct a robot which can maneuver around
the UGCS lab at Caltech and deliver printouts to the appropriate user.
Team members
-
David Stafford, Electrical Engineering and Computer Programming.
- Rohit Thomas, Navigation.
- Laura Rogers, Mechanical Engineering.
- Alan Somers, Accelerometers (no credit).
Original project proposal
Detailed project description
Software
project schedule
parts
Final report as of 3rd term 2002-2003
Contact: robot@ugcs.caltech.edu
Progress reports for Fall 2003
NOTE: I was unable to do very much work for the first
two weeks because my lab book was lost in the mail (I have it now).
Week 1
- Selected and purchased on board computer.
- Designed new drive system.
- Mounted and tested new motors.
- Re-resetup electronics
- fixed AI bugs
Week 2
- Setup on board computer and built its power supply
- Found a bug in the charging circuits
- Integrated all electronics and motors and computer nto the frame
- Fixed bugs in the control software
- One of the voltage regulators self-destructed; the temperature sensors are offline until it is repaired.
- redesign: mounted the computer with the electronics and put the battery
below the electronics
-
Week 3
- Integrated axels, gars, and tachometers, and bearings for the drive system.
- Finished the main loop
- Learned much prolog
- Fabricated wheel mounts.
- Designed (at a high level) the new AI system.
- Finished the outline of the new vision code
Week 4
- Negative progress. A screw got loged in the motor controller board's power
regulator. This melted the insulation on the 5 and 12v lines, shorting them together. Smoke and flames ensued. Repairs are underway.
- Repairs complete. The Sensors board was unsalvagable, I will rebuild it
when I actually need it.
- Finished system integration: the drive system, electronics and batteries
are now integrated onto the robot. It can move reliably under its own weight
- Designed and started coding the vision system.
- Due to this weeks failures, I was unable to integrate the mainloop
- Started calibrarint the tachometers
Week 5
Week 6
- Rebuilt and installed, and callibrated the right tachometer.
- Tested the mainloop but my local path planning algorithm is faulty.
I'll have to redesign it
- Finished the deadreconing software
- Worked more on the vision system, but its still not complete
- Added reinforcement bars to the robot.
- Setup the new power supply
- Installed the new casters. Mechanical performance has improved a lot.
Week 7
- Finished and debugged the mainloop/local pathfinder.
Although the principal behind this code is simple, gettingn it right
is a lot harder than it sounds but it is working now.
- Integrated the robots case, neck, antenna and fan.
- Designed slip-detection software.
- Characterized EMI and power consumption.
- Added timing information to the low-level C code.
- Tested the servo motors on the neck.
Progress reports
Spring break
- Cardboard mockup completed, but the robot is too low to the ground.
- The parallel port and ADC board was constructed a long time ago and
still work.
- New microcontroller based motor control output sections built.
(feedback sections not constructed yet). Only channel B tested.
- Debugger board for the SX28 microcontrollers built, and tested.
- Navigation literature survey completed.
Week 1 (Note: we did not intend to accomplish very much this week)
- Motor control board feedback hardware built and tested (both channels). feedback software
designed, but not written. Need to address some issues with the current sensors.
- Accelerometer selection and basic design completed.
- Dremmel tool broken while on loan.
- Laptop selection complete.
- Addressed the problem with the robot being too low to the ground. (didn't
update mockup).
Week 2
- Power supply and battery charger completed and tested.
- Aquired materials for robot construction.
- Dremmel tool partially repaired. Need to order new brushings.
- Designed the sensor board.
- Aquired LCD display panel and datasheet. Started work on an LCD
test board.
Week 3
- Sensor board built tested and debugged.
- Fixed a bug on the debugger board.
- Servo motors aquired, power train plan completed.
- Built the electronics bay and mounted the boards in it.
- Case construction started
- High level software design completed. (See the new software link)
- Got more hardware.
- Designed the task-manager. (still trying to prove correctness)
- Completed navigation code rough outline. (This will be online shortly).
Week 4
- Designed and started construction of the UI/servo/reset board.
- Proved incorrectness of the task-manager.
- Measured the torque/speed curve for the motors.
- C/Lisp interface code written. Some debugging left.
- Fixed a bug in the motor microcontroller code.
- Preliminary drive system testing.
- Started some documentation.
Week 5
- Frame construction complete.
- C/LISP interface debugged.
- Servo motor, laser, and emergency-stop hardware and software complete.
- Fixed a bug in the computer interface board.
- Drive couplers started.
- Feedback microcontroller code and dead-reconning code written.
- We decided to scrap the LCD display.
- Laptop purchased and setup. Parallel port compatability problem fixed.
week 6
- Quick and dirty versions of the mainloop, navigation, control and scheduler
code completed. But not yet tested.
- The world tracker module has been integrated into the navigation system.
- More mechanical parts purchased.
- C/LISP code now avaliable here . Microcontroller code comming soon.
- Drive system complete and integrated onto the robot.
- The robot appears to be able to move it's own weight.
- Vision system designed.
week 7
- Decided to rebuild the drive system.
- Found bugs in the original framegrabber code.
- Wrote and tested image pre-processing and feature detector code.
-
- Wrote gradient descent and image transformation functions (untested).
- Decided to rewrite the entire AI subsystem.
week 8
- New AI subsystem designed. About 15% implementead
- Wrote more documentation.
Week 9
- Wrote supervised learning code.
- Wrote more documentation.
- Finished camera neck.
- Started callibrating the camera (This takes a LONG time).
- Fixed bug in the servo motor circuit.
- New AI system about 40% completed.
Week 10
- Fixed bugs in the camera code
- Presented the vision system to the CS148 class
- Integrated and talibrated the tachometers.
- Integrated motor temperature sensors.
- Fixed bug in the motor controller.
- Found bug in the sensors board.
- Nem code posted here .
Rest of the year
- Build DC motor test board.
- Finish vision code.
Summer
- Navigation system desing and implementation.
- Finish ALL mechanics and electronics.
- LCD display. (microcontroller programming)
- E-stop system. (microcontroller programming)
- Charging station.
- On-board computer. (buy it)
- Laser power supply. (built, but deosn't work for some reason)
- New drive system.
- Bump sensors.
- Camera mounting.
Next year
- First 2 weeks: finish hardware and some software integration issues.
- Next 7 weeks: Finish all remaining computer software.
- 2 weeks: write main loop and realtime feedback code.
- 2 weeks: finish STRIPS algorithm.
- 1 week: write reduction rules.
- 1 week: state processor code.
- 1 week: software integration.
- Last 2 weeks: Final testing, documentation, and demonstration.
Pictures
Cardboard mockup:
Electronics:
Top left: microcontroller debugger board.
Top right: Computer interface board.
Middle right: Motor controller board.
Bottom left: Optical sensor test unit.
Bottom right: Power supply board.
Finished electronics board
Robot base with casters and completed drive system.
Camera with neck.
Motors, computer, frame, and electronics all integrated.