Mass Estimation for Manipulators using Sliding Mode Observer

This project is developed in the context of the Robocup@Home competition. We propose to estimate the mass of a grasped object using fault reconstruction techniques. Considering the weight of the object as a disturbance causing a faulty behavior, such weight can be estimated using an Sliding Mode Observer. The estimation of the grasped object mass can be used to improve manipulation tasks when visual information is not enough to correctly identify an object (e.g., an empty and a full can).

The overall system was designed and tested using Simulink Toolboxes and this repository contains the files and instructions to reproduce the results obtained using two different manipulators: Katana ( and Justina’s left arm (a robot developed in the Biorobotics Laboratory, UNAM

For technical details, please refer to

GitHub Repository:

MathWorks File Exchange:

Overview of the system

The proposed system is composed by the following main modules:

  • Manipulator: a module to simulate the system dynamics (to be replaced by a real manipulator)
  • SMO: A Sliding Mode Observer to reconstruct the fault signal (used to estimate the object’s weight)
  • EKF: An Extended Kalman Filter, used to estimate joint speeds for control purposes.
  • ControlPD: A PD control plus gravity compensation.

The following figure shows the interconnection of these four modules:

Running Justina's manipulator using Simulink

Joint Positions.

Mass Estimation.

Running Justina's manipulator with stand-alone ROS nodes

RViz showing Justina’s manipulator.

A GUI, which allows you to set the goal position, the simulated mass of the grasped object, and to see the current position and the current estimated mass.

Running Katana manipulator using Simulink

Joint Positions.

Mass Estimation.