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: AX-12A Dynamixel mbed iothub_client EthernetInterface NTPClient ConfigFile SDFileSystem iothub_amqp_transport mbed-rtos proton-c-mbed wolfSSL
Sequences.cpp@5:36916b1c5a06, 2015-12-28 (annotated)
- Committer:
- henryrawas
- Date:
- Mon Dec 28 17:19:37 2015 +0000
- Revision:
- 5:36916b1c5a06
- Child:
- 7:6723f6887d00
Working Robotarm
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| henryrawas | 5:36916b1c5a06 | 1 | #include "mbed.h" |
| henryrawas | 5:36916b1c5a06 | 2 | #include <vector> |
| henryrawas | 5:36916b1c5a06 | 3 | #include <ActionBuf.h> |
| henryrawas | 5:36916b1c5a06 | 4 | |
| henryrawas | 5:36916b1c5a06 | 5 | const float UpPos = 180.0f; |
| henryrawas | 5:36916b1c5a06 | 6 | const float rightPos = 90.0f; |
| henryrawas | 5:36916b1c5a06 | 7 | |
| henryrawas | 5:36916b1c5a06 | 8 | |
| henryrawas | 5:36916b1c5a06 | 9 | vector<ActionSequence> UpDownSeq; |
| henryrawas | 5:36916b1c5a06 | 10 | vector<ActionSequence> UpTwistSeq; |
| henryrawas | 5:36916b1c5a06 | 11 | |
| henryrawas | 5:36916b1c5a06 | 12 | |
| henryrawas | 5:36916b1c5a06 | 13 | void MakeSequences(int partSize, vector<float>& homePositions) |
| henryrawas | 5:36916b1c5a06 | 14 | { |
| henryrawas | 5:36916b1c5a06 | 15 | vector<float> upPositions; |
| henryrawas | 5:36916b1c5a06 | 16 | |
| henryrawas | 5:36916b1c5a06 | 17 | for( int partIx = 0; partIx < partSize; partIx++) |
| henryrawas | 5:36916b1c5a06 | 18 | { |
| henryrawas | 5:36916b1c5a06 | 19 | upPositions.push_back(UpPos); |
| henryrawas | 5:36916b1c5a06 | 20 | } |
| henryrawas | 5:36916b1c5a06 | 21 | |
| henryrawas | 5:36916b1c5a06 | 22 | // define actions |
| henryrawas | 5:36916b1c5a06 | 23 | ActionSequence moveUp(SA_SetGoal, upPositions, 2500); |
| henryrawas | 5:36916b1c5a06 | 24 | ActionSequence report(SA_Status); |
| henryrawas | 5:36916b1c5a06 | 25 | ActionSequence pause2(SA_Delay); |
| henryrawas | 5:36916b1c5a06 | 26 | pause2.SetDelay(2000); |
| henryrawas | 5:36916b1c5a06 | 27 | ActionSequence moveDown(SA_SetGoal, homePositions, 2500); |
| henryrawas | 5:36916b1c5a06 | 28 | ActionSequence rep(SA_Repeat); |
| henryrawas | 5:36916b1c5a06 | 29 | |
| henryrawas | 5:36916b1c5a06 | 30 | // add actions into UpDownSeq |
| henryrawas | 5:36916b1c5a06 | 31 | UpDownSeq.clear(); |
| henryrawas | 5:36916b1c5a06 | 32 | UpDownSeq.push_back(moveUp); |
| henryrawas | 5:36916b1c5a06 | 33 | UpDownSeq.push_back(report); |
| henryrawas | 5:36916b1c5a06 | 34 | UpDownSeq.push_back(pause2); |
| henryrawas | 5:36916b1c5a06 | 35 | UpDownSeq.push_back(moveDown); |
| henryrawas | 5:36916b1c5a06 | 36 | UpDownSeq.push_back(report); |
| henryrawas | 5:36916b1c5a06 | 37 | UpDownSeq.push_back(pause2); |
| henryrawas | 5:36916b1c5a06 | 38 | UpDownSeq.push_back(rep); |
| henryrawas | 5:36916b1c5a06 | 39 | |
| henryrawas | 5:36916b1c5a06 | 40 | vector<float> rightPositions; |
| henryrawas | 5:36916b1c5a06 | 41 | for( int partIx = 0; partIx < partSize; partIx++) |
| henryrawas | 5:36916b1c5a06 | 42 | { |
| henryrawas | 5:36916b1c5a06 | 43 | rightPositions.push_back(UpPos); |
| henryrawas | 5:36916b1c5a06 | 44 | } |
| henryrawas | 5:36916b1c5a06 | 45 | |
| henryrawas | 5:36916b1c5a06 | 46 | // add actions into RightStepsSeq |
| henryrawas | 5:36916b1c5a06 | 47 | // move to vertical, then move each part one at a time, then return to home |
| henryrawas | 5:36916b1c5a06 | 48 | UpTwistSeq.clear(); |
| henryrawas | 5:36916b1c5a06 | 49 | UpTwistSeq.push_back(moveUp); |
| henryrawas | 5:36916b1c5a06 | 50 | |
| henryrawas | 5:36916b1c5a06 | 51 | for( int partIx = 0; partIx < partSize; partIx++) |
| henryrawas | 5:36916b1c5a06 | 52 | { |
| henryrawas | 5:36916b1c5a06 | 53 | vector<float>* rightPositions = new vector<float>(); |
| henryrawas | 5:36916b1c5a06 | 54 | for( int partIy = 0; partIy < partSize; partIy++) |
| henryrawas | 5:36916b1c5a06 | 55 | { |
| henryrawas | 5:36916b1c5a06 | 56 | float val = UpPos; |
| henryrawas | 5:36916b1c5a06 | 57 | if (partIx == partIy) |
| henryrawas | 5:36916b1c5a06 | 58 | val = rightPos; |
| henryrawas | 5:36916b1c5a06 | 59 | rightPositions->push_back(val); |
| henryrawas | 5:36916b1c5a06 | 60 | } |
| henryrawas | 5:36916b1c5a06 | 61 | |
| henryrawas | 5:36916b1c5a06 | 62 | ActionSequence* seq = new ActionSequence(SA_SetGoal, *rightPositions, 1000); |
| henryrawas | 5:36916b1c5a06 | 63 | UpTwistSeq.push_back(*seq); |
| henryrawas | 5:36916b1c5a06 | 64 | UpTwistSeq.push_back(pause2); |
| henryrawas | 5:36916b1c5a06 | 65 | UpTwistSeq.push_back(report); |
| henryrawas | 5:36916b1c5a06 | 66 | UpTwistSeq.push_back(moveUp); |
| henryrawas | 5:36916b1c5a06 | 67 | } |
| henryrawas | 5:36916b1c5a06 | 68 | UpTwistSeq.push_back(pause2); |
| henryrawas | 5:36916b1c5a06 | 69 | UpTwistSeq.push_back(moveDown); |
| henryrawas | 5:36916b1c5a06 | 70 | |
| henryrawas | 5:36916b1c5a06 | 71 | } |