Inertial navigation peripheral/System design: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
(5 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
== Software Systems == |
== Software Systems == |
||
[[Image:OlinInertialNavigationSoftwareOverview.png]] |
|||
=== Microcontroller === |
=== Microcontroller === |
||
The PIC device will connect to the laptop via USB and provide position/bearing values when requested. It will perform onboard numeric integration, and return values in meters and percent of circles. |
|||
=== Python "Driver" Class === |
=== Python "Driver" Class === |
||
The driver class for the Locograph will be a Python class called "Locograph". Locograph will handle connecting to the USB device using libusb, meaning a user of this class merely needs to instantiate one and start asking it for values. |
|||
Here is something like a UML diagram for Locograph: |
|||
'''Locograph''' |
|||
A Locograph has the following attributes: |
|||
* '''position''': A tuple of length three - (x, y, z) - expressing coordinate change relative to the laptop in the global Cartesian space. |
|||
* '''bearing''': A number - 0 to 1 - expressing how much of a rotation the laptop has completed in the global Cartesian space. |
|||
A Locograph offers the following methods: |
|||
* '''getPosition()''': returns self.position |
|||
* '''getBearing()''': returns self.bearing |
|||
* '''_updateFromDevice()''': polls the USB device for new values. |
|||
* '''_mapDevice()''': sets up the USB device originally. |
|||
* '''reset()''': client asks for coordinate reset. |
|||
* '''_reset()''': ask USB device for coordinate reset. |
|||
=== Python "Game" App === |
=== Python "Game" App === |
||
An application using a Locograph can instantiate one, and ask it for values. |
|||
== Form factor == |
== Form factor == |
Latest revision as of 23:49, 4 November 2008
System schematics
note: Greg fails at typing "inertial"
Software Systems
Microcontroller
The PIC device will connect to the laptop via USB and provide position/bearing values when requested. It will perform onboard numeric integration, and return values in meters and percent of circles.
Python "Driver" Class
The driver class for the Locograph will be a Python class called "Locograph". Locograph will handle connecting to the USB device using libusb, meaning a user of this class merely needs to instantiate one and start asking it for values.
Here is something like a UML diagram for Locograph:
Locograph
A Locograph has the following attributes:
- position: A tuple of length three - (x, y, z) - expressing coordinate change relative to the laptop in the global Cartesian space.
- bearing: A number - 0 to 1 - expressing how much of a rotation the laptop has completed in the global Cartesian space.
A Locograph offers the following methods:
- getPosition(): returns self.position
- getBearing(): returns self.bearing
- _updateFromDevice(): polls the USB device for new values.
- _mapDevice(): sets up the USB device originally.
- reset(): client asks for coordinate reset.
- _reset(): ask USB device for coordinate reset.
Python "Game" App
An application using a Locograph can instantiate one, and ask it for values.
Form factor
(insert sketches)
(include sketch model picture)