odometry

Committer:
zatakon
Date:
Thu Sep 10 07:37:48 2015 +0000
Revision:
1:1765665581cc
Parent:
0:402f8c75d394

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zatakon 0:402f8c75d394 1 #ifndef Odometry_H
zatakon 0:402f8c75d394 2 #define Odometry_H
zatakon 0:402f8c75d394 3
zatakon 0:402f8c75d394 4 #include <vector>
zatakon 0:402f8c75d394 5 #include "mbed.h"
zatakon 0:402f8c75d394 6 #include "math.h"
zatakon 0:402f8c75d394 7 #define M_PI 3.14159265358979323846 /* pi */
zatakon 0:402f8c75d394 8
zatakon 0:402f8c75d394 9
zatakon 0:402f8c75d394 10 class Robot
zatakon 0:402f8c75d394 11 {
zatakon 0:402f8c75d394 12 public:
zatakon 1:1765665581cc 13 Robot(float width, float countPerMeter);
zatakon 0:402f8c75d394 14
zatakon 0:402f8c75d394 15 /* returns radius in [m]. When turning right, radius is negativ
zatakon 0:402f8c75d394 16 * left is positive
zatakon 0:402f8c75d394 17 */
zatakon 1:1765665581cc 18 float getRadius(float v1, float v2);
zatakon 1:1765665581cc 19 void countRadius(float v1, float v2);
zatakon 0:402f8c75d394 20
zatakon 0:402f8c75d394 21 /* returns speed in format
zatakon 0:402f8c75d394 22 * [0] = linear x
zatakon 0:402f8c75d394 23 * [1] = linear y
zatakon 0:402f8c75d394 24 * [2] = angular z
zatakon 0:402f8c75d394 25 *
zatakon 0:402f8c75d394 26 * function needs actual R
zatakon 0:402f8c75d394 27 */
zatakon 0:402f8c75d394 28 std::vector<float> getSpeed(std::vector<int> encoders);
zatakon 0:402f8c75d394 29
zatakon 1:1765665581cc 30 std::vector<float> getMotorRatio(float x, float z);
zatakon 0:402f8c75d394 31
zatakon 0:402f8c75d394 32 private:
zatakon 0:402f8c75d394 33 float _w; // width
zatakon 0:402f8c75d394 34 float _R;
zatakon 0:402f8c75d394 35 uint32_t _countPerMeter;
zatakon 0:402f8c75d394 36
zatakon 0:402f8c75d394 37 std::vector<float> _odom;
zatakon 0:402f8c75d394 38 std::vector<float> _ratio;
zatakon 0:402f8c75d394 39 };
zatakon 0:402f8c75d394 40
zatakon 0:402f8c75d394 41 #endif