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
Fork of autonomous Robot Android by
Diff: AndroidADKTerm/android.h
- Revision:
- 18:306d362d692b
- Parent:
- 16:b5d949136a21
- Child:
- 19:b2f76b0fe4c8
--- a/AndroidADKTerm/android.h Fri Apr 26 06:36:57 2013 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -#ifndef _ANDROID_H_ -#define _ANDROID_H_ - -#include "RobotControl.h" -#include "mbed.h" -#include "AndroidAccessory.h" -#include "defines.h" -#include <string> -#include <sstream> -#include <vector> -#include <iostream> -#include <stdlib.h> - -/** - * @author Arno Galliker - * - * @copyright Copyright © 2013 HSLU Pren Team #1 Cruising Crêpe - * All rights reserved. - * - * @brief - * - * This class implements communication with the android smartphone - * For more information see the Android ADK Cookbook: - * <a href="http://mbed.org/cookbook/mbed-with-Android-ADK">http://mbed.org/cookbook/mbed-with-Android-ADK</a> - * - * Originally created by p07gbar from work by Makoto Abe. - */ - -class AdkTerm : public AndroidAccessory, public Task -{ - -private: - - /** @brief Instance of RobotControl*/ - RobotControl* robotControl; - - float period; - - /** @brief Char buffer with a size of OUTL */ - char buffer[OUTL]; - - state_t* s; - - /** @brief Buffer count ??? */ - int bcount; - - /** @brief States if something is written to the buffer?? */ - bool ind; - - /** @brief Desired position in meters for x-coordinate, given by android */ - float desiredX; - - /** @brief Desired position in meters for y-coordinate, given by android */ - float desiredY; - - /** @brief Desired position in degrees for theta, given by android */ - float desiredTheta; - -public: - - /** - * @brief Creates a <code>AdkTerm</code> object and initializes all private - * state variables. Constructor - * @param robotControl RobotControl obejct reference - * @param s referenz to the state struct. - * @param period length of a period in seconds - */ - AdkTerm(RobotControl* robotControl, state_t* s, float period); - - /** - * @brief Sets initial configurations and clears the buffer - */ - void setupDevice(); - - /** - * @brief Returns the desired position in meters for x-coordinate, given by android - * @return x-coordinate,given in [m] - */ - float getDesiredX(); - - /** - * @brief Returns the desired position in meters for y-coordinate, given by android - * @return y-coordinate,given in [m] - */ - float getDesiredY(); - - /** - * @brief Returns the desired position in degrees for theta, given by android - * @return y-coordinate,given in degrees [°] - */ - float getDesiredTheta(); - - /** @brief Method to call when a tick period is over */ - void onTick(); - -private: - - /** - * @brief Clears the buffer and bcount - */ - void resetDevice(); - - /** - * @brief Takes an string, a vector of strings for the delimited tokens, and a with the - * @param str - * @param tokens - * @param delimiters - */ - void Tokenize(const string& str, - vector<string>& tokens, - const string& delimiters = " "); - - /** - * @brief Read and cast incomming messages. - * @param buf - * @param len - * @return success - */ - int callbackRead(u8 *buf, int len); - - /** - * @brief To send the buffer over the USB-Connection - * @return success - */ - int callbackWrite(); - - /** - * @brief Generating messages via serial interface for debuging. - */ - void serialIRQ(); - - /** - * @brief Run method actualize every period - */ - void run(); - -}; - -#endif