In robot assembly, accurate contact detection is critical for ensuring precise positioning, force-controlled assembly, and adaptability to variations in object alignment and surface properties. Unlike quadruped robots that switch between swing and stance phases, an assembly robot switches between free motion and constrained contact with its environment. To reliably detect contact, robots integrate contact force measurements and vision-based localization using sensor fusion and probabilistic inference.
A robotic manipulator or end-effector alternates between two key phases:
To accurately detect contact, robots integrate multiple sensors:
By fusing these measurements, the system improves contact detection accuracy:
Extended Kalman Filter (EKF)
Bayesian Inference
Machine Learning / Neural Networks
Since sensor data is noisy and contact conditions vary, probabilistic models help infer whether the robot is in free motion or contact.
HMM State Transition Matrix Example:
\[P(S_t | S_{t-1}) =
\begin{bmatrix}
P(\text{contact}|\text{contact}) & P(\text{free}|\text{contact}) \\
P(\text{contact}|\text{free}) & P(\text{free}|\text{free})
\end{bmatrix}\]
To determine whether the robot is in contact, we compute:
\[P(\text{contact} | O_t) = \frac{P(O_t | \text{contact}) P(\text{contact})}{P(O_t)}\]
Where:
Decision Rule:
Here’s a MATLAB example using Extended Kalman Filter (EKF) for contact detection:
function contact_state = contact_detection(Force, VisionError, Torque)
% Define prior probabilities
P_contact = 0.7;
P_free = 0.3;
% Define mean and standard deviation for contact and free motion. Typically, the data are obtained by statistics from experiments
mu_Force_contact = 50; sigma_Force_contact = 10;
mu_Force_free = 5; sigma_Force_free = 2;
mu_Vision_contact = 0.5; sigma_Vision_contact = 0.2;
mu_Vision_free = 2.0; sigma_Vision_free = 0.5;
mu_Torque_contact = 8; sigma_Torque_contact = 3;
mu_Torque_free = 2; sigma_Torque_free = 1;
% Compute Gaussian PDF using normpdf
L_contact = normpdf(Force, mu_Force_contact, sigma_Force_contact) * ...
normpdf(VisionError, mu_Vision_contact, sigma_Vision_contact) * ...
normpdf(Torque, mu_Torque_contact, sigma_Torque_contact);
L_free = normpdf(Force, mu_Force_free, sigma_Force_free) * ...
normpdf(VisionError, mu_Vision_free, sigma_Vision_free) * ...
normpdf(Torque, mu_Torque_free, sigma_Torque_free);
% Compute posterior probabilities
P_contact_given_O = (L_contact * P_contact) / (L_contact + L_free);
P_free_given_O = (L_free * P_free) / (L_contact + L_free);
% Decision rule
if P_contact_given_O > P_free_given_O
contact_state = 'Contact';
else
contact_state = 'Free Motion';
end
end
% Example usage
Force = 55; VisionError = 0.4; Torque = 9;
contact_state = contact_detection(Force, VisionError, Torque);
disp(['Predicted state: ', contact_state]);
✅ Sensor Fusion: Combines force sensors, vision, and torque feedback for accurate contact detection.
✅ Probability Models: Uses HMM, Bayesian Inference, and GMM to infer contact likelihood.
✅ Adaptive Control: Machine Learning or Reinforcement Learning adjusts force during assembly.
✅ Practical Use: Implemented in ABB YuMi, KUKA iiwa, and Universal Robots for high-precision tasks.
With sensor fusion and probabilistic models, robotic assembly systems achieve stable, precise, and efficient contact detection, crucial for automation in manufacturing and assembly. 🚀🔧