  Roboy 3.0 is an open-source tendon-driven humanoid robot that mimics the
musculoskeletal system of the human body. Roboy 3.0 is being developed as a
remote robotic body - or a robotic avatar - for humans to achieve remote
physical presence. Artificial muscles and tendons allow it to closely resemble
human morphology with 3-DoF neck, shoulders and wrists. Roboy 3.0 3-DoF joints
are implemented as ball-and-socket joints. While industry provides a clear
solution for 1-DoF joint pose sensing, it is not the case for the
ball-and-socket joint type. In this paper we present a custom solution to
estimate the pose of a ball-and-socket joint. We embed an array of magnets into
the ball and an array of 3D magnetic sensors into the socket. We then, based on
the changes in the magnetic field as the joint rotates, are able to estimate
the orientation of the joint. We evaluate the performance of two neural network
approaches using the LSTM and Bayesian-filter like DVBF. Results show that in
order to achieve the same mean square error (MSE) DVBFs require significantly
more time training and hyperparameter tuning compared to LSTMs, while DVBF cope
with sensor noise better. Both methods are capable of real-time joint pose
estimation at 37 Hz with MSE of around 0.03 rad for all three degrees of
freedom combined. The LSTM model is deployed and used for joint pose estimation
of Roboy 3.0's shoulder and neck joints. The software implementation and PCB
designs are open-sourced under
https://github.com/Roboy/ball_and_socket_estimator
