# Humanoid design bibliography

[pdf] KNABE, Coleman, LEE, Bryce, et HONG, Dennis. An inverted straight line mechanism for augmenting joint range of motion in a humanoid robot. In : ASME 2014 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference. American Society of Mechanical Engineers, 2014. p. V05BT08A015-V05BT08A015.

[pdf] KNABE, Coleman, LEE, Bryce, OREKHOV, Viktor, et al. Design of a compact, lightweight, electromechanical linear series elastic actuator. In : ASME 2014 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference. American Society of Mechanical Engineers, 2014. p. V05BT08A014-V05BT08A014.

[pdf] KNABE, Coleman, SEMINATORE, John, WEBB, Jacob, et al. Design of a series elastic humanoid for the DARPA Robotics Challenge. In : Humanoid Robots (Humanoids), 2015 IEEE-RAS 15th International Conference on. IEEE, 2015. p. 738-743.

[pdf] NAKANISHI, Yuto, OHTA, Shigeki, SHIRAI, Takuma, et al. Design approach of biologically-inspired musculoskeletal humanoids. International Journal of Advanced Robotic Systems, 2013, vol. 10.

[pdf] LAHR, Derek F., YI, Hak, et HONG, Dennis W. Biologically inspired design of a parallel actuated humanoid robot. Advanced Robotics, 2016, vol. 30, no 2, p. 109-118.

[pdf] LAHR, Derek, OREKHOV, Viktor, LEE, Bryce, et al. Early developments of a parallelly actuated humanoid, SAFFiR. In : ASME 2013 international design engineering technical conferences and computers and information in engineering conference. American Society of Mechanical Engineers, 2013. p. V06BT07A054-V06BT07A054.

[pdf] LEE, Bryce, KNABE, Coleman, OREKHOV, Viktor, et al. Design of a human-like range of motion hip joint for humanoid robots. In : ASME 2014 International Design Engineering Technical Conferences and Computers and Information in Engineering Conference. American Society of Mechanical Engineers, 2014. p. V05BT08A018-V05BT08A018.

# Anatomy bibliography

[pdf] KURZ, Thomas. Stretching scientifically: a guide to flexibility training. Stadion Publishing Company, Inc., 2003.

[pdf] DE LEVA, Paolo. Adjustments to Zatsiorsky-Seluyanov’s segment inertia parameters. Journal of biomechanics, 1996, vol. 29, no 9, p. 1223-1230.

[pdf] DRILLIS, Rudolfs, CONTINI, Renato, et BLUESTEIN, Maurice. Body segment parameters. Artificial limbs, 1964, vol. 8, no 1, p. 44-66.

ZATSIORSKY, V. et SELUYANOV, V. The mass and inertia characteristics of the main segments of the human body. Biomechanics viii-b, 1983, vol. 56, no 2, p. 1152-1159.

[pdf] ANDERSON, Dennis E., MADIGAN, Michael L., et NUSSBAUM, Maury A. Maximum voluntary joint torque as a function of joint angle and angular velocity: model development and application to the lower limb. Journal of biomechanics, 2007, vol. 40, no 14, p. 3105-3113.

[pdf] CALDWELL, Graham E., ADAMS III, William B., et WHETSTONE, Melinda R. Torque/velocity properties of human knee muscles: peak and angle-specific estimates. Canadian journal of applied physiology, 1993, vol. 18, no 3, p. 274-290.

[pdf] YAO, Jie, YANG, Bin, NIU, Wenxin, et al. In vivo measurements of patellar tracking and finite helical axis using a static magnetic resonance based methodology. Medical engineering & physics, 2014, vol. 36, no 12, p. 1611-1617.

[pdf] FERENCZI, Michael A., BERSHITSKY, Sergey Y., KOUBASSOVA, Natalia A., et al. Why muscle is an efficient shock absorber. PloS one, 2014, vol. 9, no 1, p. e85739.

[pdf] ROBERTS, Thomas J. et AZIZI, Emanuel. The series-elastic shock absorber: tendons attenuate muscle power during eccentric actions. Journal of Applied Physiology, 2010, vol. 109, no 2, p. 396-404.

[pdf] DECKER, Michael J., TORRY, Michael R., WYLAND, Douglas J., et al. Gender differences in lower extremity kinematics, kinetics and energy absorption during landing. Clinical biomechanics, 2003, vol. 18, no 7, p. 662-669.

[pdf] LU, Shengnan, ZLATANOV, Dimiter, DING, Xilun, et al. A new family of deployable mechanisms based on the Hoekens linkage. Mechanism and Machine Theory, 2014, vol. 73, p. 130-153.

[pdf] NORTON, Robert L. Design of machinery: an introduction to the synthesis and analysis of mechanisms and machines. 1992.

[pdf] NORTON, Robert L. In search of the “perfect” straight line and constant velocity too. In : Proceedings of the 6th Applied Mechanisms and Robotics Conference. 1999.

# Quaternions and gyroscope

https://www.lucidar.me/en/quaternions/quaternion-and-gyroscope/

A gyroscope measures the angular rate around the three axis $X$, $Y$ and $Z$ of the sensor frame named $\omega_X$, $\omega_Y$ and $\omega_Z$ respectively. By integrating this angular rate, it is theoretically possible to estimate the orientation over time. Let’s define the vector $S_{\omega}$:

$S_{\omega} = \left[ \begin{matrix} 0 && \omega_x && \omega_y && \omega_z \end{matrix} \right]$

Where $\omega_X$, $\omega_Y$ and $\omega_Z$ are expressed in rad/s.

Let’s now consider the quaternion derivative that describes the rate of change of orientation:

$\frac{dQ_k}{dt} = \frac{1}{2}.\hat{Q}_{k-1} \otimes S_{\omega}$

Where :

• $\frac{dQ_k}{dt}$ is the derivative at time step $k$ expressed in the quaternion space.
• $\hat{Q}_{k}$ is the estimated orientation at time step $k$.

By integrating the quaternion derivative it becomes possible to estimate the orientation over time:

$\hat{Q}_k = \hat{Q}_{k-1}+ \Delta_t.\frac{dQ_k}{dt}$

Note that for some applications, the quaternion must be normalized after integration:

$Q_k^n=\frac{\hat{Q}_k}{\| \hat{Q}_k \| }$

## Example

close all;
clear all;
clc;

%% Initial parameters

% Initial quaternion
Q(1,:)=[1 0 0 0];

% Step time
dt=0.1;

% Initial coordinates of the point
P(1,:)=[1,2,3];

%% Main loop
for i=2:500

%% Simulate gyroscope value
% pi/8 rad/s for the 250 first steps
% pi/16 rad/s for the 250 last steps
if (i<250) Sw=[0 pi/8 0 0]; else Sw=[0 0 pi/16 0]; end;

%% Update orientation
% Compute the quaternion derivative
Qdot=quaternProd(0.5*Q(i-1,:),Sw);
% Update the estimated position
Q(i,:)=Q(i-1,:)+Qdot*0.1;
% Normalize quaternion
Q(i,:)=Q(i,:)/norm(Q(i,:));

%% Update point coordinates
% Compute the associated transformation marix
M=quatern2rotMat(Q(i,:));
% Calculate the coordinate of the new point
P(i,:)=(M*P(1,:)')';
end

%% Display point trajectory
plot3 (P(:,1),P(:,2),P(:,3),'r.');
axis square equal;
grid on;
xlabel ('x');
ylabel ('y');
zlabel ('z');