Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed X_NUCLEO_PLC01A1 ros_lib_melodic
wheel.cpp@3:ea5cfd721b53, 2020-08-30 (annotated)
- Committer:
- yamadola
- Date:
- Sun Aug 30 06:39:43 2020 +0000
- Revision:
- 3:ea5cfd721b53
- Parent:
- 0:43eb9ccc1583
This code includes all functions for Amabie.; However, I have never debugged it with the real body.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| yamadola | 0:43eb9ccc1583 | 1 | #include "wheel.h" |
| yamadola | 0:43eb9ccc1583 | 2 | |
| yamadola | 0:43eb9ccc1583 | 3 | /** |
| yamadola | 0:43eb9ccc1583 | 4 | * @brief Constractor of Wheel class |
| yamadola | 0:43eb9ccc1583 | 5 | * @param pCanController: Address of CAN controller |
| yamadola | 0:43eb9ccc1583 | 6 | * @param pPlcController: Address of PLC controller |
| yamadola | 0:43eb9ccc1583 | 7 | */ |
| yamadola | 0:43eb9ccc1583 | 8 | Wheel::Wheel(CANController *pCanController, PLCController *pPlcController ) |
| yamadola | 0:43eb9ccc1583 | 9 | :_leftWheel( lWheelID, pCanController ), _rightWheel( rWheelID, pCanController ), |
| yamadola | 0:43eb9ccc1583 | 10 | _brake(brakePin, pPlcController), |
| yamadola | 0:43eb9ccc1583 | 11 | _brakeState(0) |
| yamadola | 0:43eb9ccc1583 | 12 | {} |
| yamadola | 0:43eb9ccc1583 | 13 | |
| yamadola | 0:43eb9ccc1583 | 14 | /** |
| yamadola | 0:43eb9ccc1583 | 15 | * @brief Initialize wheels |
| yamadola | 0:43eb9ccc1583 | 16 | * @param None |
| yamadola | 0:43eb9ccc1583 | 17 | * @retval None |
| yamadola | 0:43eb9ccc1583 | 18 | */ |
| yamadola | 0:43eb9ccc1583 | 19 | void Wheel::init(){ |
| yamadola | 0:43eb9ccc1583 | 20 | _leftWheel.motorInit(); |
| yamadola | 0:43eb9ccc1583 | 21 | _rightWheel.motorInit(); |
| yamadola | 0:43eb9ccc1583 | 22 | } |
| yamadola | 0:43eb9ccc1583 | 23 | |
| yamadola | 0:43eb9ccc1583 | 24 | /** |
| yamadola | 0:43eb9ccc1583 | 25 | * @brief Drive wheels |
| yamadola | 0:43eb9ccc1583 | 26 | * @param None |
| yamadola | 0:43eb9ccc1583 | 27 | * @retval None |
| yamadola | 0:43eb9ccc1583 | 28 | */ |
| yamadola | 0:43eb9ccc1583 | 29 | void Wheel::drive(){ |
| yamadola | 0:43eb9ccc1583 | 30 | if( _brakeState == 1 ){ |
| yamadola | 0:43eb9ccc1583 | 31 | _brake = 0; |
| yamadola | 0:43eb9ccc1583 | 32 | _brakeState = 0; |
| yamadola | 0:43eb9ccc1583 | 33 | wait(0.5); |
| yamadola | 0:43eb9ccc1583 | 34 | } |
| yamadola | 0:43eb9ccc1583 | 35 | _leftWheel.drive(); |
| yamadola | 0:43eb9ccc1583 | 36 | _rightWheel.drive(); |
| yamadola | 0:43eb9ccc1583 | 37 | } |
| yamadola | 0:43eb9ccc1583 | 38 | |
| yamadola | 0:43eb9ccc1583 | 39 | /** |
| yamadola | 0:43eb9ccc1583 | 40 | * @brief Stop wheels |
| yamadola | 0:43eb9ccc1583 | 41 | * @param None |
| yamadola | 0:43eb9ccc1583 | 42 | * @retval None |
| yamadola | 0:43eb9ccc1583 | 43 | */ |
| yamadola | 0:43eb9ccc1583 | 44 | void Wheel::stop(){ |
| yamadola | 0:43eb9ccc1583 | 45 | _leftWheel.stop(); |
| yamadola | 0:43eb9ccc1583 | 46 | _rightWheel.stop(); |
| yamadola | 0:43eb9ccc1583 | 47 | } |
| yamadola | 0:43eb9ccc1583 | 48 | |
| yamadola | 0:43eb9ccc1583 | 49 | /** |
| yamadola | 0:43eb9ccc1583 | 50 | * @brief Sets angular velocities of wheels |
| yamadola | 0:43eb9ccc1583 | 51 | * @param lVelocity: Anguglar velocity of the left wheel [rpm] |
| yamadola | 0:43eb9ccc1583 | 52 | * @param rVelocity: Anguglar velocity of the right wheel [rpm] |
| yamadola | 0:43eb9ccc1583 | 53 | * @retval None |
| yamadola | 0:43eb9ccc1583 | 54 | */ |
| yamadola | 0:43eb9ccc1583 | 55 | void Wheel::setVelocity( float lVelocity, float rVelocity ){ |
| yamadola | 0:43eb9ccc1583 | 56 | _leftWheel.setAngularVelocity( lVelocity ); |
| yamadola | 0:43eb9ccc1583 | 57 | _rightWheel.setAngularVelocity( rVelocity ); |
| yamadola | 0:43eb9ccc1583 | 58 | } |
| yamadola | 0:43eb9ccc1583 | 59 | |
| yamadola | 0:43eb9ccc1583 | 60 | /** |
| yamadola | 0:43eb9ccc1583 | 61 | * @brief Stop wheels and Turn on the wheels' brake |
| yamadola | 0:43eb9ccc1583 | 62 | * @param None |
| yamadola | 0:43eb9ccc1583 | 63 | * @retval None |
| yamadola | 0:43eb9ccc1583 | 64 | */ |
| yamadola | 0:43eb9ccc1583 | 65 | void Wheel::brake(){ |
| yamadola | 0:43eb9ccc1583 | 66 | Wheel::stop(); |
| yamadola | 0:43eb9ccc1583 | 67 | wait(0.1); |
| yamadola | 0:43eb9ccc1583 | 68 | _brake = 1; |
| yamadola | 0:43eb9ccc1583 | 69 | _brakeState = 1; |
| yamadola | 3:ea5cfd721b53 | 70 | } |
| yamadola | 3:ea5cfd721b53 | 71 | |
| yamadola | 3:ea5cfd721b53 | 72 | float Wheel::getBatteryVoltage(){ |
| yamadola | 3:ea5cfd721b53 | 73 | return _leftWheel.getInputVoltage()*0.1; |
| yamadola | 0:43eb9ccc1583 | 74 | } |