Closed chinahuangyong closed 2 years ago
1.when i simualte mini_cheetah xml file in mujoco,and use mj_name2id to get the sensor, but i get the same id. mini_cheetah.zip
void updatePositionSensorId(void) { int i = 0; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "fr_abad_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "fr_thigh_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "fr_knee_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "fl_abad_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "fl_thigh_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "fl_knee_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "hr_abad_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "hr_thigh_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "hr_knee_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "hl_abad_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "hl_thigh_pos"); i++; _jointPosId[i] = mj_name2id(m, mjOBJ_SENSOR, "hl_knee_pos"); i++; } void updateVelocitySensorId(void) { int i = 0; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "fr_abad_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "fr_thigh_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "fr_knee_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "fl_abad_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "fl_thigh_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "fl_knee_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "hr_abad_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "hr_thigh_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "hr_knee_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "hl_abad_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "hl_thigh_vel"); i++; _jointVelId[i] = mj_name2id(m, mjOBJ_SENSOR, "hl_knee_vel"); i++; } void updateInterialUnitSensorId(void) { _bodyAccId = mj_name2id(m, mjOBJ_SENSOR, "body_acc"); _bodyGyroId = mj_name2id(m, mjOBJ_SENSOR, "body_gyro"); _bodyPosId = mj_name2id(m, mjOBJ_SENSOR, "body_pos"); _bodyQuatId = mj_name2id(m, mjOBJ_SENSOR, "body_quat"); } void updateMotorActuatorId(void) { int i = 0; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "fr_abad_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "fr_thigh_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "fr_knee_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "fl_abad_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "fl_thigh_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "fl_knee_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "hr_abad_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "hr_thigh_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "hr_knee_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "hl_abad_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "hl_thigh_motor"); i++; _jointMotorId[i] = mj_name2id(m, mjOBJ_ACTUATOR, "hl_knee_motor"); i++; } void updateData(void) { // std::cout << "updateData is Running\n" <<std::endl; updatePositionSensorId(); updateVelocitySensorId(); updateInterialUnitSensorId(); for(int i=0; i<12; i++) { std::cout << "joint Position Id: " << _jointPosId[i] <<std::endl; } for(int i=0; i<12; i++) { std::cout << "joint Vel Id: " << _jointVelId[i] <<std::endl; } std::cout << "Body Acc Id:\t" << _bodyPosId << std::endl; std::cout << "Body Gyro Id:\t" << _bodyGyroId << std::endl; std::cout << "Body Pos Id:\t" << _bodyPosId << std::endl; std::cout << "Body Quat Id:\t" << _bodyQuatId << std::endl; std::cout << "Num of Sensor:\t" << m->nsensor << std::endl; std::cout << "Num of SensorData:\t" << m->nsensordata << std::endl; }
sorry, it is my mistake, when i printf, i use the corrent var.
std::cout << "Body Acc Id:\t" << _bodyPosId << std::endl;
1.when i simualte mini_cheetah xml file in mujoco,and use mj_name2id to get the sensor, but i get the same id. mini_cheetah.zip