About Me

I'm apostdoctoral researcher at École Polytechnique Fédérale de Lausanne (EPFL), working on a broad range of topics in robotics and control, including optimization, planning and building agile robots. I'm currently in the Learning Algorithms and Systems Laboratory, working with Prof. Aude Billard. I got my PhD from the same institute but in the BioRobotics Laboratory, advised by Prof. Auke Ijspeert. Please find more information in my CV.


My PhD thesis focused on bipedal walking control, whole-body algorithms for humanoids and studies in biomechanics, investigating how robotic gaits are related to human gaits.


I love building agile robots, and I actively explore state-of-the-art actuator technologies.

0 Finished Projects

My Skills

Engineering skills I've mastered so far ...





Walking Gait Analysis


CAD Design


Data Analysis


Hands-on Experience


Research Theme

This is all my passion: doing complicated things in the simplest way. I ended up doing humanoid robotics as they are probably the hardest robots to control, but there is a good source of inspiration: human.

Robot Control


Balance and Locomotion

Model-Based Control

MPC and Kalman Filtering

Hardware Design


Robotic Actuators

Mechanical Analysis

System Integration



Gait Analysis

Energy Prediction

Mechanical Modeling

I'm Available for research-type jobs

My Projects

A brief overview of what I've done in the past

Actuator Design

We want lightweight and inexpensive actuators that deliver huge amounts of power and torque, yet being back-drivable and safe to operate. I've built one! My actuator uses large-diameter fpv motors, a strong bearing, planetary gears, active cooling and a high-current controller. I'm currently refining the desing, making it less expensive and more powerful. Don't hesitate to contact me if you're interested.



Inverse Dynamics

We are interested in using dynamic equations of our robot to control it for different tasks better. Knowing the system model, we can find only enough actuator inputs to perform the task (e.g., keeping balance against gravity) while using minimal closed-loop gains to account for errors. This makes the system compliant, robust and safe. Our inverse dynamics problem is formulated as a quadratic optimization and solved in less than a millisecond with >100 variables. Reference here and here.



Compliant Balance

Simulating compliant behaviors is easy, but challenging to realize on the real robot. We have developed precise state estimation algorithms and high bandwidth torque controllers to interface our inverse dynamics with the real hardware. This involved identifying a model for the actuators and formulating other optimization problems to fuse the sensory data in the form of a Kalman filter. Reference here.



Model Predictive Control (MPC)

Inverse dynamics makes the robot compliant and robust against perturbations but is not enough to plan locomotion. However, we can simplify the robot model into a single inverted pendulum that is always falling and find footstep locations that capture the motion and create a walking gait. This can be done by an MPC controller which is formulated as a quadratic optimization and solved in less than a millisecond. The controller brings robustness against sensory noises, delays, model errors and external perturbations to some extent (The right movie, for example, shows a robot with a very heavy left foot). Reference here and here



3LP ModelTime-Projection Control

3LP Model: The legs are relatively heavy in our robot which make the single-mass inverted pendulum model too simplistic for faster walking conditions where swing and torso balancing dynamics become important. We developed a similar model called 3LP with three pendulums to account for these effects (shown in dashes below). This model can simulate walking at different frequencies, speeds, double support times, torso angles, step widths and terrain slopes. Reference here.

Time-Projection Control: On top of the 3LP model, we developed a foot-stepping controller very similar to MPC. While taking a step and being pushed at the same time, the robot would adjust the footstep location online to capture the push with a proper stepping. Our MPC could do this but needed a numerical optimization. The time-projecting controller performs the same job using a DLQR controller which is optimal like MPC, but without any optimization. We take the state at each instant and project it back to the beginning of the phase where the DLQR controller (with a sample time equal to step time) suggests footstep adjustments. These adjustments are then used online at each control tick (e.g., millisecond). Reference here.


Download my walking simulation software here:
Executables (v1):
Developers (v2): 

* Note 1: A license-free MATLAB Runtime will be automatically installed for executables.

* Note 2: After installation, you can launch the program by searching "Walking3LP" in your applications.

* Note 3: For development, you need a MATLAB 2014 or above.

Model-Based Walking

The 3LP model and time-projecting controllers are validated on the real hardware. The robot can perform walking gaits, recover pushes and comply with external dragging forces very easily. There are plenty of low-level hardware challenges like sensory noise, actuator backlash, actuator speed saturation and communication delays that the framework can overcome. Reference here .



Model-Free Walking

In this approach, we always commanded the robot to perform in-place walking. The stance hip joint in our robot keeps the torso upright to let the robot naturally fall, and the swing hip joint tracks the desired footstep location. Combined with simple Center of Pressure (CoP) damping rules in the low-level controller, our foot-placement enables the robot to recover from strong pushes and produce periodic walking gaits when subject to persistent sources of disturbance, externally or internally. These gaits are imprecise, i.e., emergent from asymmetry sources rather than precisely imposing a desired velocity to the robot. Also in extreme conditions, restricting linearity assumptions of the 3LP model are often violated, but the system remains robust in our simulations. An extensive analysis of closed-loop eigenvalues, viable regions and sensitivity to push timings further demonstrate the strengths of our simple controller. Reference here.



Molecule Inspired Modeling

Inspired by methods popular in computational chemistry, we can model the robot by Cartesian points instead of joint angles. Each limb is the segment between two points; it has a certain length (holonomic constraint) and dynamic equations. Using nonlinear optimizations, we can find multi-contact optimal static postures in very short time (few milliseconds) and good convergence properties. Reference here.



Multi-Contact Motion Planning

A similar formulation can be used for motion planning which helps to simulate the swing dynamics of robot limbs in fast motions. Our formulation currently allows for contact adjustment and variable timing, but for a fixed sequence. Reference here.


Reinforcement Learning

Inverse dynamics implements virtual compliance and brings robustness in case of perturbations. We used a reinforcement learning algorithm to optimize a foot-stepping controller in this work. We were able to achieve fast locomotion on rough-terrains and slopes with a realistic monopod hopper that had considerable swing dynamics. Reference here.




Planning and control are not trivial in the joint space. Instead of thinking about individual joint angles, we prefer to think about the center of mass or feet positions, and that's why we use template models such as inverted pendulum or 3LP. However, when converting the Cartesian positions into joint-angles via inverse kinematics or task-space inverse dynamics, we might face infeasible conditions. A nonlinear optimization can realize hard constraints like balance (e.g., keeping the center of mass in the middle of the support polygon) or joint limits while finding the closest solutions possible. The following robot, for example, is commanded a very high center of mass position which can't be reached. The robot goes to singular postures (stretched knees) without any numerical difficulty. Reference here.



Force Estimation

Dynamic equations can help identifying external forces. We can take all the sensory data from the robot (joint angles, velocities, torques and contact forces), put them in the equation of motion and find a residual which possibly corresponds to an external force. We have developed closed-form equations that estimate the magnitude and the application point of such a force during robot motion in ideal simulation environments. Reference here.





Journal Articles

S. Faraji; H. Razavi; A. Ijspeert : Push recovery with stepping strategy based on time-projection control; The International Journal of Robotics Research (IJRR). 2019.

N. Kashiri; A. Abate, S. Abram; A. Albu-Schaffer; P. Clary; M. Daley; S. Faraji; R. Furnemont, M. Garabini, H. Geyer, A. Grabowski, J. Hurst, J. Malzahn, G. Mathijssen, D. Remy, W. Roozing, M. Shahbazi, S. Simha, J. Song, N. Smit-Anseeuw, S. Stramigioli, B. Vanderborght, Y. Yesilevskiy, N. Tsagarakis : An overview on principles for energy efficient robot locomotion; Frontiers Robotics AI. 2018.

S. Faraji; A. R. Wu; A. J. Ijspeert : A simple model of mechanical effects to estimate metabolic cost of human walking; Nature Scientific Reports. 2018.

S. Faraji; P. Müllhaupt; A. Ijspeert : Imprecise dynamic walking with time-projection control; Arxiv. 2018.

S. Faraji; A. Ijspeert : Modeling robot geometries like molecules, application to fast multi-contact posture planning for humanoids; IEEE Robotics and Automation Letters. 2018.

S. Faraji; A. Ijspeert : Singularity-tolerant inverse kinematics for bipedal robots: An efficient use of computational power to reduce energy consumption; IEEE Robotics and Automation Letters. 2017.

S. Faraji; A. Ijspeert : 3LP: a linear 3D-walking model including torso and swing dynamics; The International Journal of Robotics Research (IJRR). 2017.

S. Haghzad; S. Bagheri; S. Faraji : Finding Proper Configurations for Modular Robots by Using Genetic Algorithm on Different Terrains; International Journal of Materials, Mechanics and Manufacturing. 2013.

S. Faraji; M. S. Tavazoei : The effect of fractionality nature in differences between computer simulation and experimental results of a chaotic circuit; Central European Journal Of Physics. 2013.

Conference Papers

S. Faraji; A. Ijspeert : Scalable closed-form trajectories for periodic and non-periodic human-like walking. IEEE International Conference on Robotics and Automation (ICRA). 2019.

J. Arreguit; S. Faraji; A. Ijspeert : Fast multi-contact whole-body motion planning with limb dynamics. IEEE-RAS International Conference on Humanoid Robots (Humanoids). 2018.

S. Faraji; A. Ijspeert : Designing a virtual whole body tactile sensor suit for a simulated humanoid robot using inverse dynamics. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). 2016.

S. Faraji; L. Colasanto; A. Ijspeert : Practical considerations in using inverse dynamics on a humanoid robot: torque tracking, sensor fusion and Cartesian control laws. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). 2015.

S. Faraji; S. Pouya; A. Ijspeert : Robust and Agile 3D Biped Walking With Steering Capability Using a Footstep Predictive Approach. Robotics Science and Systems (RSS). 2014.

S. Faraji; S. Pouya; C. G. Atkeson; A. J. Ijspeert : Versatile and robust 3D walking with a simulated humanoid robot (Atlas): A model predictive control approach. IEEE International Conference on Robotics and Automation (ICRA). 2014.

S. Faraji; S. Pouya; R. Moeckel; A. J. Ijspeert : Compliant and adaptive control of a planar monopod hopper in rough terrain. IEEE International Conference on Robotics and Automation (ICRA). 2013.


S. Faraji : Towards Robust Bipedal Locomotion. Lausanne, EPFL, 2018. DOI : 10.5075/epfl-thesis-8760.

S. Faraji : A Model-Based Control Approach for Locomotion of Biped Robots. Lausanne, EPFL, 2013.


S. Faraji; A. Ijspeert : A singularity-tolerant inverse kinematics including joint position and velocity limitations ; Dynamic Walking, Mariehamn, Finland, June 4-9, 2017.

S. Faraji; A. Ijspeert : A virtual tactile sensing suit for humanoids based on dynamic equations and internal sensors ; Dynamic Walking, Holly, Michigan, USA, June 4-7, 2016.

S. Faraji; A. Ijspeert : Time-Projection control on 3LP, a simple idea to deal with intermittent pushes online ; Dynamic Walking, Holly, Michigan, USA, June 4-7, 2016.

S. Faraji; A. Ijspeert : 3LP: A linear model of locomotion including falling, swing and torso dynamics ; Dynamic Walking, Holly, Michigan, USA, June 4-7, 2016.

S. Faraji; S. Pouya; A. Ijspeert : Robust 3D Walking Using Inverse Dynamics And Footstep Planning With Model Predictive Control ; 9th Dynamic Walking Conference (DWC 2014), ETH Zurich, Switzerland, June 10-13, 2014.

S. Pouya; S. Faraji; R. Möckel; A. Ijspeert : Dynamics Modeling and Control Architecture for Efficient, Manoeuvrable and Robust Monoped Hopping over Rough Terrain ; 8th Dynamic Walking Conference (DWC 2013), Pittsburgh, USA, June 2013.

Contact Me

salman [dot] faraji [at] gmail [dot] com