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

Sequences.cpp

Committer:
henryrawas
Date:
2015-12-28
Revision:
5:36916b1c5a06
Child:
7:6723f6887d00

File content as of revision 5:36916b1c5a06:

#include "mbed.h"
#include <vector>
#include <ActionBuf.h>

const float UpPos = 180.0f;
const float rightPos = 90.0f;


vector<ActionSequence> UpDownSeq;
vector<ActionSequence> UpTwistSeq;


void MakeSequences(int partSize, vector<float>& homePositions)
{
    vector<float> upPositions;

    for( int partIx = 0; partIx < partSize; partIx++)
    {
        upPositions.push_back(UpPos);
    }

    // define actions
    ActionSequence moveUp(SA_SetGoal, upPositions, 2500);
    ActionSequence report(SA_Status);
    ActionSequence pause2(SA_Delay);
    pause2.SetDelay(2000);
    ActionSequence moveDown(SA_SetGoal, homePositions, 2500);
    ActionSequence rep(SA_Repeat);  

    // add actions into UpDownSeq
    UpDownSeq.clear();
    UpDownSeq.push_back(moveUp);
    UpDownSeq.push_back(report);
    UpDownSeq.push_back(pause2);
    UpDownSeq.push_back(moveDown);
    UpDownSeq.push_back(report);
    UpDownSeq.push_back(pause2);
    UpDownSeq.push_back(rep);
    
    vector<float> rightPositions;
    for( int partIx = 0; partIx < partSize; partIx++)
    {
        rightPositions.push_back(UpPos);
    }
    
    // add actions into RightStepsSeq
    // move to vertical, then move each part one at a time, then return to home
    UpTwistSeq.clear();
    UpTwistSeq.push_back(moveUp);
    
    for( int partIx = 0; partIx < partSize; partIx++)
    {
        vector<float>* rightPositions = new vector<float>();
        for( int partIy = 0; partIy < partSize; partIy++)
        {
            float val = UpPos;
            if (partIx == partIy)
                val = rightPos;
            rightPositions->push_back(val);
        }

        ActionSequence* seq = new ActionSequence(SA_SetGoal, *rightPositions, 1000);
        UpTwistSeq.push_back(*seq);
        UpTwistSeq.push_back(pause2);
        UpTwistSeq.push_back(report);
        UpTwistSeq.push_back(moveUp);
    }
    UpTwistSeq.push_back(pause2);
    UpTwistSeq.push_back(moveDown);
    
}