Difference between revisions of "RC08Firmware"

From RoboJackets Wiki
Jump to navigation Jump to search
 
(Tasks)
Line 1: Line 1:
 
The firmware resides on the microcontroller and includes software to implement the protocol, control the motors, and perform closed loop control on the motors and the robot itself.  
 
The firmware resides on the microcontroller and includes software to implement the protocol, control the motors, and perform closed loop control on the motors and the robot itself.  
 
==Tasks==
 
==Tasks==
*[ ] Generate an I/O spec
+
*[X] Generate an I/O spec
*[ ] Evaluate the the current protocol
+
*[X] Evaluate the the current protocol - Currently no changes will be made until after the robot hardware is finished
*[ ] Update if necessary
+
*[X] Update if necessary
*[ ] Add code to interface with FPGA using SPI or serial
+
*[X] Add code to interface with FPGA using SPI or serial
*[ ] Implement closed loop motor control
+
*[X] Implement timer based psuedo-preemptive scheduler
**[ ] PID for first prototype
+
**[ ] Investigate actual preemptive schedulers
**[ ] Possibly switch to state-feedback
+
*[ ] Add transmit channel from robot to base station
*[ ] Implement Kalman filter for accelerometer
+
*[ ] Support base station development
 +
*[ ] Re-map printf to ARM and write RX buffer code as an interrupt
 +
*[ ] Code and test AD function
 +
*[ ] Model motors in Simulink, build a PID controller and find good gains
 +
**[ ] Add wheel slip to model and see if it can be controlled
 +
**[ ] Investigate if a state-estimator can be used in place of PID
 +
***[ ] Investigate if ARM can handle the load and maintain appropriate sample rate
 +
***[ ] See if coding a better scheduler will help
 +
***[ ] See if encoder resolution is enough to even make this work (may not)
 +
*[ ] Write code to determine velocity using counter
 +
**[ ] Extend that code to use accelerometer and Kalman filter
 +
*[ ] Write PID controller for robot and test
  
 
==Specifications==
 
==Specifications==

Revision as of 11:36, 23 January 2008

The firmware resides on the microcontroller and includes software to implement the protocol, control the motors, and perform closed loop control on the motors and the robot itself.

Tasks

  • [X] Generate an I/O spec
  • [X] Evaluate the the current protocol - Currently no changes will be made until after the robot hardware is finished
  • [X] Update if necessary
  • [X] Add code to interface with FPGA using SPI or serial
  • [X] Implement timer based psuedo-preemptive scheduler
    • [ ] Investigate actual preemptive schedulers
  • [ ] Add transmit channel from robot to base station
  • [ ] Support base station development
  • [ ] Re-map printf to ARM and write RX buffer code as an interrupt
  • [ ] Code and test AD function
  • [ ] Model motors in Simulink, build a PID controller and find good gains
    • [ ] Add wheel slip to model and see if it can be controlled
    • [ ] Investigate if a state-estimator can be used in place of PID
      • [ ] Investigate if ARM can handle the load and maintain appropriate sample rate
      • [ ] See if coding a better scheduler will help
      • [ ] See if encoder resolution is enough to even make this work (may not)
  • [ ] Write code to determine velocity using counter
    • [ ] Extend that code to use accelerometer and Kalman filter
  • [ ] Write PID controller for robot and test

Specifications

  • We may want to add an interlever to our wireless system (this may have to go on FPGA and is a function of wireless conroller)
  • We may also want to go for a more advanced encoder scheme
  • Closed-loop control will start out as PID but could go to state-feedback

Links