Add tendon actuator force limits and tendon actuator force sensor.
PiperOrigin-RevId: 745096883 Change-Id: Ib9acb727fbbfc6b0b0323ee6a889053a7a878056
This commit is contained in:
committed by
Copybara-Service
parent
16e49f2761
commit
96dda6ea75
@@ -698,8 +698,8 @@ void mj_sensorVel(const mjModel* m, mjData* d) {
|
||||
// acceleration/force-dependent sensors
|
||||
void mj_sensorAcc(const mjModel* m, mjData* d) {
|
||||
int rootid, bodyid, objtype, objid, adr, nusersensor = 0;
|
||||
int ne = d->ne, nf = d->nf, nefc = d->nefc;
|
||||
mjtNum tmp[6], conforce[6], conray[3];
|
||||
int ne = d->ne, nf = d->nf, nefc = d->nefc, nu = m->nu;
|
||||
mjtNum tmp[6], conforce[6], conray[3], frc;
|
||||
mjContact* con;
|
||||
|
||||
// disabled sensors: return
|
||||
@@ -825,6 +825,16 @@ void mj_sensorAcc(const mjModel* m, mjData* d) {
|
||||
d->sensordata[adr] = d->qfrc_actuator[m->jnt_dofadr[objid]];
|
||||
break;
|
||||
|
||||
case mjSENS_TENDONACTFRC: // tendonactfrc
|
||||
frc = 0.0;
|
||||
for (int j=0; j < nu; j++) {
|
||||
if (m->actuator_trntype[j] == mjTRN_TENDON && m->actuator_trnid[2*j] == objid) {
|
||||
frc += d->actuator_force[j];
|
||||
}
|
||||
}
|
||||
d->sensordata[adr] = frc;
|
||||
break;
|
||||
|
||||
case mjSENS_JOINTLIMITFRC: // jointlimitfrc
|
||||
d->sensordata[adr] = 0;
|
||||
for (int j=ne+nf; j < nefc; j++) {
|
||||
|
||||
Reference in New Issue
Block a user