Monday, October 25, 2010

Milestone 2 Report

Milestone 2 Report (Prepared by: Joshua Burkhart)

Intended Progress: Describe the features/components you wanted to complete by this milestone.

By this point in time, we had intended to research parts, order parts, receive parts, assemble the GPS shield, interface the GPS Shield with an arduino, and begin interfacing the motor driver and motors with an arduino.

Progress To Date: Describe what the team have been doing towards completing the tasks involved in realizing the current milestone objectives.

Progress to date is 4 days ahead of schedule according to our initial gantt chart. We have successfully interfaced the motor driver / motors with an arduino. We are currently in the process of building a mobile power source and plan to begin implementing navigation logic soon.

Projected Progress: What will you do in the next project phase in terms of code development, testing, integration and debugging. How will the team adjust its workload in order to compensate for current rates of progress in the chosen development areas, and how will work towards the next milestone be organised.

According to our gantt chart, the current project phase involves interfacing the motor driver and motors with the arduino microcontroller. This has been achieved ahead of schedule and we have moved on to building a mobile power source and will soon begin implementing navigation logic. Code development will be in the C-like ‘Processing’ language with special regard payed to minimal resource use. Testing our mobile power source will consist of using a multimeter to determine correct voltage (9vDC-12vDC) and current (500mA-670mA) is delivered to the unit. Testing the gps navigation logic will include walking around campus with the device, logging print statements and errors. Debugging the mobile power source may include rearranging batteries / wiring. Debugging the navigation logic will include examining logged errors, editing the code, and retesting the device. The current rate of progress is 4 days ahead of schedule. No scheduling adjustments are required at this milestone. Work will continue as planned towards the next milestone.

Problems Encountered: Comment on any significant problems with technical progress or group management. This is a chance to get input from the team's instructor on fruitful avenues for addressing technical problems or group management issues.

The gps shield does not seem to be able to determine orientation. A digital compass was ordered and will be integrated with the vehicle as device orientation is required.

Conclusion: Brief overview of the status of the group and project overall.

In conclusion, though yet another part was required, we remain on schedule.

Saturday, October 2, 2010

Milestone 1 Report

Milestone 1 Report (Prepared by: Joshua Burkhart)

Intended Progress: Describe the features/components you wanted to complete by this milestone.

By this point in time, we had intended to research parts, order parts, receive parts, assemble the GPS shield, and begin interfacing the GPS Shield with an arduino.

Progress To Date: Describe what the team have been doing towards completing the tasks involved in realizing the current milestone objectives.

Progress to date is on schedule with our goals. Currently, we are configuring a virtual machine in the eos lab that will enable us to interface with the arduino microcontroller.

Projected Progress: What will you do in the next project phase in terms of code development, testing, integration and debugging. How will the team adjust its workload in order to compensate for current rates of progress in the chosen development areas, and how will work towards the next milestone be organised.

The current project phase involves interfacing the GPS unit with the arduino microcontroller. Code development will be in C with special regard payed to minimal resource use. Testing our work will consist of using a multimeter to test power is going from arduino to correct pins on GPS unit. Debugging may include resoldering resistors, capacitors, or integrated circuits on the GPS shield; reconfiguring virtual usb, serial, or other ports for the guest vm in the eos lab; or correctly configuring proprietary compilers for use with the arduino microcontroller. The current rate of progress is on-schedule. No scheduling adjustments are required at this milestone. Work will continue as planned towards the next milestone.

Problems Encountered: Comment on any significant problems with technical progress or group management. This is a chance to get input from the team's instructor on fruitful avenues for addressing technical problems or group management issues.
  • The electric motors and chassis did not include a voltage controller, foreseeably  making variable speed difficult.
  • The physical lab computers in both arch and eos labs include a c compiler that is incompatible with the arduino microcontroller. Because the system administrator is weary of installing a compatible c compiler, we will use a virtual machine.
Conclusion: Brief overview of the status of the group and project overall.

In conclusion, though some difficulties have been encountered, we remain on schedule.

Thursday, September 16, 2010

Design Document

Design Document

The next requirement is a design document. You should produce a document that describes how you are going to implement your application. You should describe things such as...
  • What language(s) will be used.
    • Arduino microcontrollers understand C (with the addition of special libraries)



  • What libraries/API's will be used. \item What version control system will be used?


    • Special arduino libraries will be used. One library will be used for interfacing with a GPS unit and another will be used for interfacing with servos



  • Will you be using a database to store information.


    • No



  • What is the basic organization of the system (client/server)


    • Coordinates will be sent to the robot to process over USB (latitude and longitude), however, after receiving these instructions, the robot will navigate by itself to its destination.



  • What protocol(s) will be used between the system components.


    • C



  • For your two areas of technical achievement (e.g., graphics, AI, multi-threading, etc.), how will you actually do these?


    • API's: We will study Arduino microcontroller interfaces and implement them in our system.
    • Memory Management: We will keep track of each function's memory usage, freeing as soon as we are able.



  • Where will you be doing the development.


    • Both at school and at our homes

  •  What environment(s) will you use?


    • Arduino code has an IDE available. We will use the IDE or vim, along with the Arduino C compiler.
  • What is the division of labor -- who is going to do what.


    • We will collaborate on most features of the vehicle, as a commonly agreed upon software interface is needed. If a special focus is required, Joshua Burkhart will focus on the servo interface code and Greg Braman will focus on the GPS interface code.

  • What design methodologies will you use? Agile, waterfall, hybrid, etc.
    • Agile
Projected Project Schedule

    Tuesday, September 7, 2010

    Prospectus

    The prospectus should fully describe who is on your team,

    Joshua Burkhart
    Greg Braman

    the technical strengths of each team member,

    Joshua Burkhart: software engineering, C programming, web programming, java, documentation, bash scripting
    Greg Braman: leadership skills, C programming, java, bash scripting, ruby, python, web development

    and what application/system you are going to produce.

    We are going to produce an autonomous vehicle based on an Arduino micro controller

    Completely describe the project you want to create. I should have a very clear picture of the application you are going to produce. Don't worry too much about how you're going to do it. Provide a list of all intended features. Your prospectus should describe the vapor-ware that you will create. The prospectus is not a contract. It is a road-map that outlines what you will try to create. It is not necessary for you to implement every feature.

    Hardware: Arduino micro controller
    several small electric motors
    digital compass / *GPS device/ Rotation Sensor
    data recorder / storage device (SD card reader)
    tracks or wheels attached to some sort of chassis


    * GPS module may not be an option depending on pricing; most modules seem rather expensive

    Software: Arduino code to connect and manage peripherals and
    Arduino code to drive device. Many software libraries exist for popular arduino modules, and may be used from time to time. However, the code for the guidance of the vehicle will be custom made.

    Description of Operation: The device we will construct should take a list of locations as parameters and be able to navigate itself to those locations autonomously.

    Programming Style: The code that is understood by the Arduino micro controller is similar to C in syntax. There is also an existing Arduino development environment that will be used to develop and push code to the device.

    Additional Opportunities: If time allows, we will add features to the vehicle that will increase autonomy. These features include image recognition and range-finding lasers to assist in collision avoidance and path- finding.

    Project technical requirements are based on your team's technical abilities and interests. You should design an application that draws on the technical abilities and interests of all the team members. For example, if you have team members that took graphics (and have an interest in graphics) then you might consider a graphical game.


    You should also describe two areas of technical innovation -- two technical areas in which you will demonstrate your expert technical knowledge, and your ability to learn new things on your own. These two areas should be ones that you want to spend a great deal of time researching new techniques, implementing algorithms, etc. Later on, you will be evaluated on the complexity of these innovations (see section on grading).

    Area 1: Working in an environment with strict memory and storage constraints. Storing many data points and log files will require unusually good memory management and code structure.

    Area 2: Integration of motors with a micro controller will present many opportunities to become familiar with new data structures and functions without the luxury of a fully featured IDE.

    When complete, post your prospectus on your web site (I will assume you do this for all documents from now on).

    Getting Started

    have been working on generating some websites for the project, now we have: