diff --git a/lwrserv/.ycm_extra_conf.pyc b/lwrserv/.ycm_extra_conf.pyc index ebcd88e..a6394c5 100644 Binary files a/lwrserv/.ycm_extra_conf.pyc and b/lwrserv/.ycm_extra_conf.pyc differ diff --git a/lwrserv/include/Robot.h b/lwrserv/include/Robot.h index 95570f4..6d41c02 100644 --- a/lwrserv/include/Robot.h +++ b/lwrserv/include/Robot.h @@ -10,13 +10,12 @@ #include "Trajectroy.h" typedef Vec VecTorque; -#define jointNumber LBR_MNJ -typedef Vec VecJoint; class Robot { public: + static const unsigned int joints = LBR_MNJ; - typedef Vec VecJoint; + typedef Vec VecJoint; static int getJointCount(void) { @@ -51,5 +50,6 @@ class Robot static VecJoint backwardCalc(MatCarthesian, struct RobotConfig config ); static MatCarthesian forwardCalc(VecJoint, struct RobotConfig config ); }; +typedef Vec VecJoint; #endif diff --git a/lwrserv/include/SvrData.h b/lwrserv/include/SvrData.h index 7889241..8a337d8 100644 --- a/lwrserv/include/SvrData.h +++ b/lwrserv/include/SvrData.h @@ -22,7 +22,7 @@ private: VecJoint jointPos; MatCarthesian cartPos; VecTorque forceAndTorque; - float jacobian[FRI_CART_VEC * jointNumber]; + float jacobian[FRI_CART_VEC * Robot::joints]; } messured; struct { VecJoint jointPos; @@ -44,7 +44,7 @@ private: float sampleTimeMs; bool cancel; bool done; - std::queue< Trajectory* > list; + std::queue< Trajectory* > list; enum TrajectoryType type; bool potfieldmode; }trajectory; @@ -113,8 +113,8 @@ public: int setSampleTimeMs(float newSampleTime); bool getTrajectoryCancel(); - class Trajectory* popTrajectory(); - int pushTrajectory(class Trajectory* newFrajectory); + class Trajectory* popTrajectory(); + int pushTrajectory(class Trajectory* newFrajectory); bool cancelCurrentTrajectory(); void trajectoryCancelDone(); @@ -123,10 +123,10 @@ public: enum TrajectoryType getTrajectoryType(); void setTrajectoryType(enum TrajectoryType newType); - class Trajectory* createTrajectory(VecJoint newJointPos); - class Trajectory* createTrajectory(MatCarthesian newJointPos); + class Trajectory* createTrajectory(VecJoint newJointPos); + class Trajectory* createTrajectory(MatCarthesian newJointPos); - class Trajectory* calculateTrajectory( + class Trajectory* calculateTrajectory( VecJoint maxJointVelocity, VecJoint maxJointAcceleration, VecJoint jointStart, diff --git a/lwrserv/src/SvrData.cpp b/lwrserv/src/SvrData.cpp index 97a2a9e..1f0112f 100644 --- a/lwrserv/src/SvrData.cpp +++ b/lwrserv/src/SvrData.cpp @@ -26,7 +26,7 @@ SvrData::SvrData(void) robot.currentVelocityPercentage = 10; robot.currentAccelerationPercentage = 10; - for (unsigned int i = 0; i < jointNumber; ++i) + for (unsigned int i = 0; i < Robot::joints; ++i) { robot.max.velocity(i) = maxVelJnt[i]; robot.max.accelaration(i) = maxAccJnt[i]; @@ -230,7 +230,7 @@ bool SvrData::checkJointRange(VecJoint vectorToCheck) pthread_mutex_unlock(&dataLock); // check if the value is in plus or minus range - for (int i = 0; i abs(maxJointRange(i))) { @@ -317,7 +317,7 @@ unsigned int SvrData::getJoints() unsigned int retval = 0; pthread_mutex_lock(&dataLock); - retval = jointNumber; + retval = Robot::joints; pthread_mutex_unlock(&dataLock); return retval; } @@ -346,9 +346,9 @@ int SvrData::setSampleTimeMs(float newSampleTimeMs) return retval; } -class Trajectory* SvrData::popTrajectory() +class Trajectory* SvrData::popTrajectory() { - class Trajectory* retval = NULL; + class Trajectory* retval = NULL; pthread_mutex_lock(&dataLock); if (!trajectory.list.empty() ) { @@ -363,7 +363,7 @@ class Trajectory* SvrData::popTrajectory() pthread_mutex_unlock(&dataLock); return retval; } -int SvrData::pushTrajectory(class Trajectory* newTrajectory) +int SvrData::pushTrajectory(class Trajectory* newTrajectory) { if (newTrajectory == NULL) return -1; @@ -392,7 +392,7 @@ bool SvrData::cancelCurrentTrajectory() // clear trajectory list while(!trajectory.list.empty()) { - class Trajectory* currentTrajectory = trajectory.list.front(); + class Trajectory* currentTrajectory = trajectory.list.front(); if(currentTrajectory != NULL) delete currentTrajectory; trajectory.list.pop(); @@ -445,11 +445,11 @@ void SvrData::setTrajectoryType(enum TrajectoryType newType) pthread_mutex_unlock(&dataLock); } -class Trajectory* SvrData::createTrajectory(VecJoint newJointPos) +class Trajectory* SvrData::createTrajectory(VecJoint newJointPos) { //set new target for next trajectory VecJoint prevJointPos = getCommandedJointPos(); - class Trajectory* newTrajectory; + class Trajectory* newTrajectory; float sampleTimeMs = getSampleTimeMs(); VecJoint maxJointVelocity = getRobotVelocity(); @@ -457,11 +457,11 @@ class Trajectory* SvrData::createTrajectory(VecJoint newJointPos) enum TrajectoryType type = getTrajectoryType(); //newTrajectory = SvrData::getInstance()->createTrajectory(newJointPos); - newTrajectory = Trajectory::GetTrajectory(type,sampleTimeMs, maxJointVelocity, maxJointAcceleration, prevJointPos, newJointPos); + newTrajectory = Trajectory::GetTrajectory(type,sampleTimeMs, maxJointVelocity, maxJointAcceleration, prevJointPos, newJointPos); return newTrajectory; } -class Trajectory* SvrData::createTrajectory(MatCarthesian newJointPos) +class Trajectory* SvrData::createTrajectory(MatCarthesian newJointPos) { } diff --git a/lwrserv/src/commands.cpp b/lwrserv/src/commands.cpp index 2152240..8e25a2a 100644 --- a/lwrserv/src/commands.cpp +++ b/lwrserv/src/commands.cpp @@ -43,7 +43,7 @@ void moveRobotTo(VecJoint newJointPos) { - Trajectory* newTrajectory = SvrData::getInstance()->createTrajectory(newJointPos); + Trajectory* newTrajectory = SvrData::getInstance()->createTrajectory(newJointPos); // add trajectory to queue for sender thread SvrData::getInstance()->pushTrajectory(newTrajectory); @@ -70,7 +70,7 @@ void getPositionJoints(SocketObject& client, std::string& arg) VecJoint jointPos = SvrData::getInstance()->getMessuredJointPos(); // assemble command feadback - for (int i=0; i< jointNumber; i++) + for (int i=0; i< Robot::joints; i++) { ss.str(""); ss << (jointPos(i)*180/M_PI); @@ -138,7 +138,7 @@ void movePTPJoints(SocketObject& client, std::string& arg) while (ss >> buf) { // to many joint values - if (i>=jointNumber) + if (i>=Robot::joints) { client.Send(SVR_INVALID_ARGUMENT_COUNT); return; @@ -151,7 +151,7 @@ void movePTPJoints(SocketObject& client, std::string& arg) } // to less joint values - if (i!=jointNumber) + if (i!=Robot::joints) { client.Send(SVR_INVALID_ARGUMENT_COUNT); return ; diff --git a/lwrserv/src/main.cpp b/lwrserv/src/main.cpp index be1f29a..8b62c04 100644 --- a/lwrserv/src/main.cpp +++ b/lwrserv/src/main.cpp @@ -17,7 +17,7 @@ void *threadRobotMovement(void *arg) // unused parameters (void) arg; - Trajectory* currentTrajectory = NULL; + Trajectory* currentTrajectory = NULL; enum MovementType currentMovementType = MovementJointBased; VecJoint currentJointPos(0.0f); @@ -36,7 +36,7 @@ void *threadRobotMovement(void *arg) SvrData::getInstance()->setCommandedJointPos(currentJointPos); - float newJointPosToSend[jointNumber] = {0.0f}; + float newJointPosToSend[Robot::joints] = {0.0f}; currentJointPos.getData(newJointPosToSend); if (REAL_ROBOT) friInst->doPositionControl(newJointPosToSend); @@ -119,7 +119,7 @@ end: case MovementJointBased: { // send the new joint values - float newJointPosToSend[jointNumber] = {0.0f}; + float newJointPosToSend[Robot::joints] = {0.0f}; VecJoint newJointPosToSendRad = currentJointPos*(1./180*M_PI); newJointPosToSendRad.getData(newJointPosToSend); if (REAL_ROBOT)