robot arm demo team / Mbed 2 deprecated RobotArmDemo Featured

Dependencies:   AX-12A Dynamixel mbed iothub_client EthernetInterface NTPClient ConfigFile SDFileSystem iothub_amqp_transport mbed-rtos proton-c-mbed wolfSSL

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?

UserRevisionLine numberNew 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 }