Fix quaternion typos.

PiperOrigin-RevId: 453203844
Change-Id: I7d788c21bb00b7746f941fb2cf755f0b046e35f2
This commit is contained in:
Kevin Zakka
2022-06-06 08:23:41 -07:00
committed by Copybara-Service
parent 16baac9353
commit 53d3220fcc
11 changed files with 22 additions and 22 deletions
+5 -5
View File
@@ -543,7 +543,7 @@ mjtSensor
mjSENS_ACTUATORFRC, // scalar actuator force
// sensors related to ball joints
mjSENS_BALLQUAT, // 4D ball joint quaterion
mjSENS_BALLQUAT, // 4D ball joint quaternion
mjSENS_BALLANGVEL, // 3D ball joint angular velocity
// joint and tendon limit sensors, in constraint space
@@ -3162,7 +3162,7 @@ Numeric constants
| | | array sizes which we have not fully settled. There may be reasons to increase them in |
| | | the future, so as to accommodate extra parameters needed for more elaborate |
| | | computations. This is why we maintain them as symbolic constants that can be easily |
| | | changed, as opposed to the array size for representing quaterions for example - which |
| | | changed, as opposed to the array size for representing quaternions for example - which |
| | | has no reason to change. |
+------------------+--------+----------------------------------------------------------------------------------------+
| mjNDYN | 10 | The maximal number of real-valued parameters used to define the activation dynamics of |
@@ -4549,7 +4549,7 @@ mj_normalizeQuat
void mj_normalizeQuat(const mjModel* m, mjtNum* qpos);
Normalize all quaterions in qpos-type vector.
Normalize all quaternions in qpos-type vector.
.. _mj_local2Global:
@@ -6184,7 +6184,7 @@ mju_mat2Quat
void mju_mat2Quat(mjtNum quat[4], const mjtNum mat[9]);
Convert 3D rotation matrix to quaterion.
Convert 3D rotation matrix to quaternion.
.. _mju_derivQuat:
@@ -6206,7 +6206,7 @@ mju_quatIntegrate
void mju_quatIntegrate(mjtNum quat[4], const mjtNum vel[3], mjtNum scale);
Integrate quaterion given 3D angular velocity.
Integrate quaternion given 3D angular velocity.
.. _mju_quatZ2Vec:
+2 -2
View File
@@ -2783,7 +2783,7 @@ subelements. The file format starts with a header of 4 integers: nvertex, ntexco
the same as in meshes, and specify the total number of vertices, texture coordinate pairs, and triangle faces in the
skin. ntexcoord can be zero or equal to nvertex. nbone specifies the number of MuJoCo bodies that will be used as
bones in the skin. The header is followed by the vertex, texcoord and face data, followed by a specification for each
bone. The bone specification contains the name of the corresponding model body, 3D bind position, 4D bind quaterion,
bone. The bone specification contains the name of the corresponding model body, 3D bind position, 4D bind quaternion,
number of vertices influenced by the bone, and the vertex index array and weight array. Body names are represented as
fixed-length character arrays and are expected to be 0-terminated. Characters after the first 0 are ignored. The
contents of the SKN file are:
@@ -5020,7 +5020,7 @@ bodies whose center of mass is of interest.
:at:`objname`: :at-val:`string, required`
Name of the MuJoCo object to which the sensor is attached.
:at:`datatype`: :at-val:`[real, positive, axis, quaternion], required`
The type of output generated by this sensor. "axis" means a unit-length 3D vector. "quat" means a unit quaterion.
The type of output generated by this sensor. "axis" means a unit-length 3D vector. "quat" means a unit quaternion.
These need to be declared because when MuJoCo adds noise, it must respect the vector normalization. "real" means a
generic array (or scalar) of real values to which noise can be added independently.
:at:`needstage`: :at-val:`[pos, vel, acc], required`
+1 -1
View File
@@ -1136,7 +1136,7 @@ the standard convention, we set A_rowadr[r] = r*n. MuJoCo uses sparse matrices i
To represent 3D orientations and rotations, MuJoCo uses unit quaternions - namely 4D unit vectors arranged as q = (w,
x, y, z). Here (x, y, z) is the rotation axis unit vector scaled by sin(a/2), where a is the rotation angle in
radians, and w = cos(a/2). Thus the quaternion corresponding to a null rotation is (1, 0, 0, 0). This is the default
setting of all quaterions in MJCF.
setting of all quaternions in MJCF.
MuJoCo also uses 6D spatial vectors internally. These are quantities in mjData prefixed with 'c', namely cvel, cacc,
cdot, etc. They are spatial motion and force vectors that combine a 3D rotational component followed by a 3D
+1 -1
View File
@@ -282,7 +282,7 @@ typedef enum mjtSensor_ { // type of sensor
mjSENS_ACTUATORFRC, // scalar actuator force
// sensors related to ball joints
mjSENS_BALLQUAT, // 4D ball joint quaterion
mjSENS_BALLQUAT, // 4D ball joint quaternion
mjSENS_BALLANGVEL, // 3D ball joint angular velocity
// joint and tendon limit sensors, in constraint space
+3 -3
View File
@@ -437,7 +437,7 @@ MJAPI void mj_differentiatePos(const mjModel* m, mjtNum* qvel, mjtNum dt,
// Integrate position with given velocity.
MJAPI void mj_integratePos(const mjModel* m, mjtNum* qpos, const mjtNum* qvel, mjtNum dt);
// Normalize all quaterions in qpos-type vector.
// Normalize all quaternions in qpos-type vector.
MJAPI void mj_normalizeQuat(const mjModel* m, mjtNum* qpos);
// Map from body local to global Cartesian coordinates.
@@ -956,13 +956,13 @@ MJAPI void mju_subQuat(mjtNum res[3], const mjtNum qa[4], const mjtNum qb[4]);
// Convert quaternion to 3D rotation matrix.
MJAPI void mju_quat2Mat(mjtNum res[9], const mjtNum quat[4]);
// Convert 3D rotation matrix to quaterion.
// Convert 3D rotation matrix to quaternion.
MJAPI void mju_mat2Quat(mjtNum quat[4], const mjtNum mat[9]);
// Compute time-derivative of quaternion, given 3D rotational velocity.
MJAPI void mju_derivQuat(mjtNum res[4], const mjtNum quat[4], const mjtNum vel[3]);
// Integrate quaterion given 3D angular velocity.
// Integrate quaternion given 3D angular velocity.
MJAPI void mju_quatIntegrate(mjtNum quat[4], const mjtNum vel[3], mjtNum scale);
// Construct quaternion performing rotation from z-axis to given vector.
+3 -3
View File
@@ -2558,7 +2558,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
),
),
),
doc='Normalize all quaterions in qpos-type vector.',
doc='Normalize all quaternions in qpos-type vector.',
)),
('mj_local2Global',
FunctionDecl(
@@ -6049,7 +6049,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
),
),
),
doc='Convert 3D rotation matrix to quaterion.',
doc='Convert 3D rotation matrix to quaternion.',
)),
('mju_derivQuat',
FunctionDecl(
@@ -6104,7 +6104,7 @@ FUNCTIONS: Mapping[str, FunctionDecl] = dict([
type=ValueType(name='mjtNum'),
),
),
doc='Integrate quaterion given 3D angular velocity.',
doc='Integrate quaternion given 3D angular velocity.',
)),
('mju_quatZ2Vec',
FunctionDecl(
+1 -1
View File
@@ -49,7 +49,7 @@ void mj_kinematics(const mjModel* m, mjData* d) {
// normalize all quaternions in qpos
mj_normalizeQuat(m, d->qpos);
// normalize mocap quaterions
// normalize mocap quaternions
for (int i=0; i<m->nmocap; i++) {
mju_normalize4(d->mocap_quat+4*i);
}
+1 -1
View File
@@ -72,7 +72,7 @@ static void add_noise(const mjModel* m, mjData* d, mjtStage stage) {
rnd[0] = mju_standardNormal(rnd+1);
rnd[2] = mju_standardNormal(rnd+3);
// scale angle, normalize axis, make quaterion
// scale angle, normalize axis, make quaternion
rnd[0] *= noise;
mju_normalize3(rnd+1);
mju_axisAngle2Quat(quat, rnd+1, rnd[0]);
+1 -1
View File
@@ -1199,7 +1199,7 @@ void mj_integratePos(const mjModel* m, mjtNum* qpos, const mjtNum* qvel, mjtNum
// normalize all quaterions in qpos-type vector
// normalize all quaternions in qpos-type vector
void mj_normalizeQuat(const mjModel* m, mjtNum* qpos) {
// find quaternion fields and normalize
for (int i=0; i<m->njnt; i++) {
+3 -3
View File
@@ -165,7 +165,7 @@ void mju_quat2Mat(mjtNum res[9], const mjtNum quat[4]) {
// convert 3D rotation matrix to quaterion
// convert 3D rotation matrix to quaternion
void mju_mat2Quat(mjtNum quat[4], const mjtNum mat[9]) {
// q0 largest
if (mat[0]+mat[4]+mat[8]>0) {
@@ -214,7 +214,7 @@ void mju_derivQuat(mjtNum res[4], const mjtNum quat[4], const mjtNum vel[3]) {
// integrate quaterion given 3D angular velocity
// integrate quaternion given 3D angular velocity
void mju_quatIntegrate(mjtNum quat[4], const mjtNum vel[3], mjtNum scale) {
mjtNum angle, tmp[4], qrot[4];
@@ -257,7 +257,7 @@ void mju_quatZ2Vec(mjtNum quat[4], const mjtNum vec[3]) {
return;
}
// make quaterion from angle and axis
// make quaternion from angle and axis
a = mju_atan2(a, mju_dot3(vn, z));
mju_axisAngle2Quat(quat, axis, a);
}
+1 -1
View File
@@ -2548,7 +2548,7 @@ mjModel* mjCModel::Compile(const mjVFS* vfs) {
throw mjCError(0, "could not create mjData");
}
// normalize keyframe quaterions
// normalize keyframe quaternions
for (i=0; i<m->nkey; i++) {
mj_normalizeQuat(m, m->key_qpos+i*m->nq);
}