Sarathi Wiki

  1. The Sarathi development blog - No longer available

What is Sarathi?

Sarathi is a software framework designed to move robots among obstacles.

Suppose you have a robot arm in front of you. You need to move it from its current position to some other location, while avoiding obstacles in its workspace. Ideally, you should simply issue a “Move(destination)” style command to some 'software entity', and then see the arm moving to that destination (automagically avoiding obstacles). Sarathi is the 'software entity' that will do this for you.

There are a number of steps Sarathi has to execute from the point it accepts a command, to the point that the robot starts moving. Sarathi is flexible enough to allow you to customize the manner in which each step is executed. As a broad and shallow example, assume that the flow of actions is:

  1. Sarathi accepts a Moveto(destination) command
  2. A path-planner is invoked, which plans a path for the robot among obstacles
  3. The path so generated is fed to a trajectory planner, which imposes timing constraints on the path
  4. A robot motion controller then moves the robot along the trajectory generated by the trajectory planner

As an example of customize-ability, Sarathi will allow you choose the path planner, the trajectory generator and robot motion controller you want to use. Thus you can mix and match different available parts within Sarathi, to create a path-planning and motion control system tuned for your particular application.

Sarathi can also be run in a simulation mode, without a real physical robot. The users will then see a virtual robot moving around on their screen. It is also possible to use the simulation and real robot simultaneously. Users can then check how the robot will move, in the simulation, before allowing the actual robot to move.

Sarathi is functional. The MPK path planner works, and a simple motion controller provides position control for robotic arms. You can follow the progress of the project on the sarathi blog at Design and user documentation can be found on this wiki itself.