|
|
@ -9,17 +9,18 @@ SvrData* SvrData::single = 0; |
|
|
|
|
|
|
|
SvrData::SvrData(void) |
|
|
|
{ |
|
|
|
velocity = 20; |
|
|
|
accelaration = 10; |
|
|
|
robot.joints = LBR_MNJ; |
|
|
|
|
|
|
|
// these are the default values for the robot
|
|
|
|
double maxVelJnt[] = {110.0,110.0,128.0,128.0,204.0,184.0,184.0}; |
|
|
|
double maxAccJnt[] = {1.0,1.0,1.0,1.0,2.0,1.0,1.0}; |
|
|
|
double maxTrqJnt[] = {176.0,176.0,100.0,100.0,100.0,38.0,38.0}; |
|
|
|
double maxRangeJnt[] = {170.0,120.0,170.0,120.0,170.0,120.0,170.0}; |
|
|
|
|
|
|
|
robot.currentVelocity = 20; |
|
|
|
robot.currentAcceleration = 10; |
|
|
|
robot.joints = LBR_MNJ; |
|
|
|
|
|
|
|
for (int i = 0; i < robot.joints; ++i) |
|
|
|
for (unsigned int i = 0; i < robot.joints; ++i) |
|
|
|
{ |
|
|
|
robot.max.velocity[i] = maxVelJnt[i]; |
|
|
|
robot.max.accelaration[i] = maxAccJnt[i]; |
|
|
@ -71,6 +72,15 @@ int SvrData::getMessuredJointPos(float* data, size_t size) |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
Vec<float,LBR_MNJ> SvrData::getMessuredJointPos() |
|
|
|
{ |
|
|
|
Vec<float,LBR_MNJ> buf ; |
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
buf = messured.jointPos; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return buf; |
|
|
|
} |
|
|
|
|
|
|
|
int SvrData::getMessuredCartPos (float* data, size_t size) |
|
|
|
{ |
|
|
|
if (data == NULL) |
|
|
@ -84,6 +94,15 @@ int SvrData::getMessuredCartPos (float* data, size_t size) |
|
|
|
return 0 ; |
|
|
|
} |
|
|
|
|
|
|
|
Mat<float,LBR_MNJ> SvrData::getMessuredCartPos() |
|
|
|
{ |
|
|
|
Mat<float,LBR_MNJ> buf ; |
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
buf = messured.cartPos; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return buf; |
|
|
|
} |
|
|
|
|
|
|
|
int SvrData::getMessuredJacobian(float* data, size_t size) |
|
|
|
{ |
|
|
|
if (data == NULL) |
|
|
@ -123,7 +142,14 @@ int SvrData::getCommandedJointPos(float* data, size_t size) |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
Vec<float, LBR_MNJ> SvrData::getCommandedJointPos() |
|
|
|
{ |
|
|
|
Vec<float, LBR_MNJ> buff; |
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
buff = commanded.jointPos; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return buff; |
|
|
|
} |
|
|
|
int SvrData::getCommandedCartPos (float* data, size_t size) |
|
|
|
{ |
|
|
|
if (data == NULL) |
|
|
@ -137,6 +163,14 @@ int SvrData::getCommandedCartPos (float* data, size_t size) |
|
|
|
|
|
|
|
return 0; |
|
|
|
} |
|
|
|
Mat<float, LBR_MNJ> SvrData::getCommandedCartPos () |
|
|
|
{ |
|
|
|
Mat<float, LBR_MNJ> buff; |
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
buff = commanded.cartPos; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return buff; |
|
|
|
} |
|
|
|
|
|
|
|
float SvrData::getMaxTorque(unsigned int pos) |
|
|
|
{ |
|
|
@ -194,6 +228,37 @@ Vec<float,LBR_MNJ> SvrData::getMaxAcceleration() |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return buff; |
|
|
|
} |
|
|
|
float SvrData::getMaxVelocity(unsigned int pos) |
|
|
|
{ |
|
|
|
float retval = -1.0f; |
|
|
|
if (pos >= robot.joints) |
|
|
|
return retval; |
|
|
|
|
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
retval = robot.max.velocity[pos-1]; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return retval; |
|
|
|
} |
|
|
|
int SvrData::getMaxVelocity(float* data, size_t size) |
|
|
|
{ |
|
|
|
if (data == NULL) |
|
|
|
return -EINVAL; |
|
|
|
if (size != sizeof(float)* robot.joints) |
|
|
|
return -EINVAL; |
|
|
|
|
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
memcpy(data,robot.max.velocity,size); |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
Vec<float,LBR_MNJ> SvrData::getMaxVelocity() |
|
|
|
{ |
|
|
|
Vec<float,LBR_MNJ> buff; |
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
buff = robot.max.velocity; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return buff; |
|
|
|
} |
|
|
|
|
|
|
|
float SvrData::getMaxRange(unsigned int pos) |
|
|
|
{ |
|
|
@ -219,7 +284,51 @@ int SvrData::getMaxRange(float* data, size_t size) |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
Vec<float, LBR_MNJ> SvrData::getMaxRange() |
|
|
|
{ |
|
|
|
Vec<float, LBR_MNJ> retval ; |
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
retval = robot.max.range; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
int SvrData::setRobotVelocity(float newVelocity) |
|
|
|
{ |
|
|
|
unsigned int retval = 0; |
|
|
|
|
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
robot.currentVelocity = newVelocity; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return retval; |
|
|
|
} |
|
|
|
float SvrData::getRobotVelocity() |
|
|
|
{ |
|
|
|
float retval = 0; |
|
|
|
|
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
retval = robot.currentVelocity; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return retval; |
|
|
|
} |
|
|
|
int SvrData::setRobotAcceleration(float newAcceleration) |
|
|
|
{ |
|
|
|
unsigned int retval = 0; |
|
|
|
|
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
robot.currentAcceleration = newAcceleration; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return retval; |
|
|
|
} |
|
|
|
float SvrData::getRobotAcceleration() |
|
|
|
{ |
|
|
|
float retval = 0; |
|
|
|
|
|
|
|
pthread_mutex_lock(&dataLock); |
|
|
|
retval = robot.currentAcceleration; |
|
|
|
pthread_mutex_unlock(&dataLock); |
|
|
|
return retval; |
|
|
|
} |
|
|
|
unsigned int SvrData::getJoints() |
|
|
|
{ |
|
|
|
unsigned int retval = 0; |
|
|
|