NHK2017 octopus robot
Dependencies: 2017NHKpin_config mbed FEP ikarashiMDC PID jy901 omni HMC6352 omni_wheel
Fork of KANI2017v2 by
bot/wheel_unit/wheel_unit.cpp@26:7258d5ad0bff, 2017-10-25 (annotated)
- Committer:
- number_key
- Date:
- Wed Oct 25 03:25:06 2017 +0900
- Revision:
- 26:7258d5ad0bff
- Parent:
- 25:d199d621ecca
no message
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
number_key |
23:37bb9afe9fdc | 1 | #include "wheel_unit.h" |
number_key |
23:37bb9afe9fdc | 2 | |
number_key |
23:37bb9afe9fdc | 3 | WheelUnit::WheelUnit(DigitalOut* RS485Controller, Serial* RS485) : |
number_key |
26:7258d5ad0bff | 4 | omni(4), |
number_key |
23:37bb9afe9fdc | 5 | wheels({ |
number_key |
26:7258d5ad0bff | 6 | ikarashiMDC({RS485Controller, 0, 1, SM, RS485}), |
number_key |
26:7258d5ad0bff | 7 | ikarashiMDC({RS485Controller, 0, 2, SM, RS485}), |
number_key |
26:7258d5ad0bff | 8 | ikarashiMDC({RS485Controller, 0, 3, SM, RS485}), |
number_key |
26:7258d5ad0bff | 9 | ikarashiMDC({RS485Controller, 0, 0, SM, RS485}) |
number_key |
23:37bb9afe9fdc | 10 | }) |
number_key |
23:37bb9afe9fdc | 11 | { |
number_key |
26:7258d5ad0bff | 12 | omni.wheel[0].setRadian(PI / 4.0 * 5.0); |
number_key |
26:7258d5ad0bff | 13 | omni.wheel[1].setRadian(PI / 4.0 * 7.0); |
number_key |
26:7258d5ad0bff | 14 | omni.wheel[2].setRadian(PI / 4.0 * 1.0); |
number_key |
26:7258d5ad0bff | 15 | omni.wheel[3].setRadian(PI / 4.0 * 3.0); |
number_key |
23:37bb9afe9fdc | 16 | for(int i = 0; i < 4; i++) { |
number_key |
23:37bb9afe9fdc | 17 | wheels[i].braking = true; |
number_key |
23:37bb9afe9fdc | 18 | } |
number_key |
23:37bb9afe9fdc | 19 | } |
number_key |
23:37bb9afe9fdc | 20 | |
number_key |
23:37bb9afe9fdc | 21 | void WheelUnit::moveXY(float X, float Y, float moment) |
number_key |
23:37bb9afe9fdc | 22 | { |
number_key |
26:7258d5ad0bff | 23 | omni.computeXY(X, Y, moment); |
number_key |
23:37bb9afe9fdc | 24 | for(int i = 0; i < 4; i++) { |
number_key |
26:7258d5ad0bff | 25 | wheels[i].setSpeed(omni.wheel[i]); |
number_key |
26:7258d5ad0bff | 26 | } |
number_key |
26:7258d5ad0bff | 27 | } |
number_key |
26:7258d5ad0bff | 28 | |
number_key |
26:7258d5ad0bff | 29 | void WheelUnit::moveXY(float X, float Y, float gX, float gY, float moment) |
number_key |
26:7258d5ad0bff | 30 | { |
number_key |
26:7258d5ad0bff | 31 | omni.computeXY(X, Y, gX, gY, moment); |
number_key |
26:7258d5ad0bff | 32 | for(int i = 0; i < 4; i++) { |
number_key |
26:7258d5ad0bff | 33 | wheels[i].setSpeed(omni.wheel[i]); |
number_key |
23:37bb9afe9fdc | 34 | } |
number_key |
23:37bb9afe9fdc | 35 | } |
number_key |
23:37bb9afe9fdc | 36 | |
number_key |
23:37bb9afe9fdc | 37 | void WheelUnit::moveCircular(float r, float radian, float moment) |
number_key |
23:37bb9afe9fdc | 38 | { |
number_key |
26:7258d5ad0bff | 39 | omni.computeCircular(r, radian, moment); |
number_key |
23:37bb9afe9fdc | 40 | for(int i = 0; i < 4; i++) { |
number_key |
26:7258d5ad0bff | 41 | wheels[i].setSpeed(omni.wheel[i]); |
number_key |
23:37bb9afe9fdc | 42 | } |
number_key |
23:37bb9afe9fdc | 43 | } |
number_key |
26:7258d5ad0bff | 44 | |
number_key |
26:7258d5ad0bff | 45 | void WheelUnit::moveCircular(float r, float radian, float gX, float gY, float moment) |
number_key |
26:7258d5ad0bff | 46 | { |
number_key |
26:7258d5ad0bff | 47 | omni.computeCircular(r, radian, gX, gY, moment); |
number_key |
26:7258d5ad0bff | 48 | for(int i = 0; i < 4; i++) { |
number_key |
26:7258d5ad0bff | 49 | wheels[i].setSpeed(omni.wheel[i]); |
number_key |
26:7258d5ad0bff | 50 | } |
number_key |
26:7258d5ad0bff | 51 | } |