This program is for an autonomous robot for the competition at the Hochschule Luzern. http://cruisingcrepe.wordpress.com/ We are one of the 32 teams. http://cruisingcrepe.wordpress.com/ The postition control is based on this Documentation: Control of Wheeled Mobile Robots: An Experimental Overview from Alessandro De Luca, Giuseppe Oriolo, Marilena Vendittelli. For more information see here: http://www.dis.uniroma1.it/~labrob/pub/papers/Ramsete01.pdf

Dependencies:   mbed

Fork of autonomous Robot Android by Christian Burri

Committer:
chrigelburri
Date:
Sun Apr 07 08:31:51 2013 +0000
Revision:
12:235e318a414f
Parent:
Android/android.h@11:775ebb69d5e1
Child:
14:6a45a9f940a8
Kommentare nochmals verbessert android fehlt noch

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chrigelburri 11:775ebb69d5e1 1 #ifndef _ANDROID_H_
chrigelburri 11:775ebb69d5e1 2 #define _ANDROID_H_
chrigelburri 11:775ebb69d5e1 3
chrigelburri 11:775ebb69d5e1 4 #include "mbed.h"
chrigelburri 11:775ebb69d5e1 5 #include "AndroidAccessory.h"
chrigelburri 11:775ebb69d5e1 6 #include "defines.h"
chrigelburri 11:775ebb69d5e1 7 #include <string>
chrigelburri 11:775ebb69d5e1 8 #include <sstream>
chrigelburri 11:775ebb69d5e1 9 #include <vector>
chrigelburri 11:775ebb69d5e1 10 #include <iostream>
chrigelburri 11:775ebb69d5e1 11 #include <stdlib.h>
chrigelburri 11:775ebb69d5e1 12
chrigelburri 11:775ebb69d5e1 13 /**
chrigelburri 11:775ebb69d5e1 14 * @author Arno Galliker
chrigelburri 11:775ebb69d5e1 15 *
chrigelburri 11:775ebb69d5e1 16 * @subsection LICENSE
chrigelburri 11:775ebb69d5e1 17 *
chrigelburri 11:775ebb69d5e1 18 * Copyright &copy; 2013 HSLU Pren Team #1 Cruising Crêpe
chrigelburri 11:775ebb69d5e1 19 * All rights reserved.
chrigelburri 11:775ebb69d5e1 20 *
chrigelburri 11:775ebb69d5e1 21 * @subsection DESCRIPTION
chrigelburri 11:775ebb69d5e1 22 *
chrigelburri 11:775ebb69d5e1 23 * This class implements communication with the android smartphone
chrigelburri 11:775ebb69d5e1 24 * For more information see the Android ADK Cookbook:
chrigelburri 11:775ebb69d5e1 25 * <a href="http://mbed.org/cookbook/mbed-with-Android-ADK">http://mbed.org/cookbook/mbed-with-Android-ADK</a>
chrigelburri 11:775ebb69d5e1 26 *
chrigelburri 11:775ebb69d5e1 27 * Originally created by p07gbar from work by Makoto Abe
chrigelburri 11:775ebb69d5e1 28 */
chrigelburri 11:775ebb69d5e1 29
chrigelburri 11:775ebb69d5e1 30 #define OUTL 100
chrigelburri 11:775ebb69d5e1 31 #define INBL 100
chrigelburri 11:775ebb69d5e1 32
chrigelburri 11:775ebb69d5e1 33 class AdkTerm : public AndroidAccessory
chrigelburri 11:775ebb69d5e1 34 {
chrigelburri 11:775ebb69d5e1 35
chrigelburri 11:775ebb69d5e1 36 private:
chrigelburri 11:775ebb69d5e1 37
chrigelburri 11:775ebb69d5e1 38 /** Attaches a tick to send messages over the USB buffer in a certain interval */
chrigelburri 11:775ebb69d5e1 39 void AttachTick();
chrigelburri 11:775ebb69d5e1 40
chrigelburri 11:775ebb69d5e1 41 /** Method to call when a tick period is over */
chrigelburri 11:775ebb69d5e1 42 void onTick();
chrigelburri 11:775ebb69d5e1 43
chrigelburri 11:775ebb69d5e1 44 /** Char buffer with a size of OUTL */
chrigelburri 11:775ebb69d5e1 45 char buffer[OUTL];
chrigelburri 11:775ebb69d5e1 46
chrigelburri 11:775ebb69d5e1 47 /** Buffer count ??? */
chrigelburri 11:775ebb69d5e1 48 int bcount;
chrigelburri 11:775ebb69d5e1 49
chrigelburri 11:775ebb69d5e1 50 /** Instance of ticker */
chrigelburri 11:775ebb69d5e1 51 Ticker tick;
chrigelburri 11:775ebb69d5e1 52
chrigelburri 11:775ebb69d5e1 53 //float right,left,rl,ll;
chrigelburri 11:775ebb69d5e1 54 //int tl,tr;
chrigelburri 11:775ebb69d5e1 55
chrigelburri 11:775ebb69d5e1 56 //Timeout n;
chrigelburri 11:775ebb69d5e1 57
chrigelburri 11:775ebb69d5e1 58 /** States if tick is on */
chrigelburri 11:775ebb69d5e1 59 bool settick;
chrigelburri 11:775ebb69d5e1 60
chrigelburri 11:775ebb69d5e1 61 /** States if something is written to the buffer?? */
chrigelburri 11:775ebb69d5e1 62 bool ind;
chrigelburri 11:775ebb69d5e1 63
chrigelburri 11:775ebb69d5e1 64 /** Desired position in meters for x-coordinate, given by android */
chrigelburri 11:775ebb69d5e1 65 float x;
chrigelburri 11:775ebb69d5e1 66
chrigelburri 11:775ebb69d5e1 67 /** Desired position in meters for y-coordinate, given by android */
chrigelburri 11:775ebb69d5e1 68 float y;
chrigelburri 11:775ebb69d5e1 69
chrigelburri 11:775ebb69d5e1 70 /** Desired position in degrees for theta, given by android */
chrigelburri 11:775ebb69d5e1 71 float t;
chrigelburri 11:775ebb69d5e1 72
chrigelburri 11:775ebb69d5e1 73 public:
chrigelburri 11:775ebb69d5e1 74
chrigelburri 11:775ebb69d5e1 75 /**
chrigelburri 11:775ebb69d5e1 76 * Creates a <code>AdkTerm</code> object and initializes all private
chrigelburri 11:775ebb69d5e1 77 * state variables. Constructor
chrigelburri 11:775ebb69d5e1 78 */
chrigelburri 11:775ebb69d5e1 79 AdkTerm();
chrigelburri 11:775ebb69d5e1 80
chrigelburri 11:775ebb69d5e1 81 /**
chrigelburri 11:775ebb69d5e1 82 * Sets initial configurations and clears the buffer
chrigelburri 11:775ebb69d5e1 83 *
chrigelburri 11:775ebb69d5e1 84 */
chrigelburri 11:775ebb69d5e1 85 void setupDevice();
chrigelburri 11:775ebb69d5e1 86
chrigelburri 11:775ebb69d5e1 87 /**
chrigelburri 11:775ebb69d5e1 88 * Returns the desired position in meters for x-coordinate, given by android
chrigelburri 11:775ebb69d5e1 89 * @return x-coordinate,given in [m]
chrigelburri 11:775ebb69d5e1 90 */
chrigelburri 11:775ebb69d5e1 91 float getx();
chrigelburri 11:775ebb69d5e1 92
chrigelburri 11:775ebb69d5e1 93 /**
chrigelburri 11:775ebb69d5e1 94 * Returns the desired position in meters for y-coordinate, given by android
chrigelburri 11:775ebb69d5e1 95 * @return y-coordinate,given in [m]
chrigelburri 11:775ebb69d5e1 96 */
chrigelburri 11:775ebb69d5e1 97 float gety();
chrigelburri 11:775ebb69d5e1 98
chrigelburri 11:775ebb69d5e1 99 /**
chrigelburri 11:775ebb69d5e1 100 * Returns the esired position in degrees for theta, given by android
chrigelburri 11:775ebb69d5e1 101 * @return y-coordinate,given in degrees [°]
chrigelburri 11:775ebb69d5e1 102 */
chrigelburri 11:775ebb69d5e1 103 float gett();
chrigelburri 11:775ebb69d5e1 104
chrigelburri 11:775ebb69d5e1 105 private:
chrigelburri 11:775ebb69d5e1 106
chrigelburri 11:775ebb69d5e1 107 /**
chrigelburri 11:775ebb69d5e1 108 *
chrigelburri 11:775ebb69d5e1 109 *
chrigelburri 11:775ebb69d5e1 110 */
chrigelburri 11:775ebb69d5e1 111 //void AttachTick();
chrigelburri 11:775ebb69d5e1 112
chrigelburri 11:775ebb69d5e1 113 /**
chrigelburri 11:775ebb69d5e1 114 *
chrigelburri 11:775ebb69d5e1 115 *
chrigelburri 11:775ebb69d5e1 116 */
chrigelburri 11:775ebb69d5e1 117 // void onTick();
chrigelburri 11:775ebb69d5e1 118
chrigelburri 11:775ebb69d5e1 119 /**
chrigelburri 11:775ebb69d5e1 120 * Clears the buffer and bcount
chrigelburri 11:775ebb69d5e1 121 *
chrigelburri 11:775ebb69d5e1 122 */
chrigelburri 11:775ebb69d5e1 123 void resetDevice();
chrigelburri 11:775ebb69d5e1 124
chrigelburri 11:775ebb69d5e1 125 /**
chrigelburri 11:775ebb69d5e1 126 * Takes an string, a vector of strings for the delimited tokens, and a with the
chrigelburri 11:775ebb69d5e1 127 * @param str
chrigelburri 11:775ebb69d5e1 128 * @param tokens
chrigelburri 11:775ebb69d5e1 129 * @param delimiters
chrigelburri 11:775ebb69d5e1 130 */
chrigelburri 11:775ebb69d5e1 131 void Tokenize(const string& str, vector<string>& tokens, const string& delimiters = " ");
chrigelburri 11:775ebb69d5e1 132
chrigelburri 11:775ebb69d5e1 133 /**
chrigelburri 11:775ebb69d5e1 134 *
chrigelburri 11:775ebb69d5e1 135 * @param buf
chrigelburri 11:775ebb69d5e1 136 * @param len
chrigelburri 11:775ebb69d5e1 137 */
chrigelburri 11:775ebb69d5e1 138 int callbackRead(u8 *buf, int len);
chrigelburri 11:775ebb69d5e1 139
chrigelburri 11:775ebb69d5e1 140 /**
chrigelburri 11:775ebb69d5e1 141 *
chrigelburri 11:775ebb69d5e1 142 *
chrigelburri 11:775ebb69d5e1 143 */
chrigelburri 11:775ebb69d5e1 144 int callbackWrite();
chrigelburri 11:775ebb69d5e1 145
chrigelburri 11:775ebb69d5e1 146 /**
chrigelburri 11:775ebb69d5e1 147 *
chrigelburri 11:775ebb69d5e1 148 *
chrigelburri 11:775ebb69d5e1 149 */
chrigelburri 11:775ebb69d5e1 150 void serialIRQ();
chrigelburri 11:775ebb69d5e1 151
chrigelburri 11:775ebb69d5e1 152 };
chrigelburri 11:775ebb69d5e1 153
chrigelburri 11:775ebb69d5e1 154 #endif