[robotics-worldwide] [news] Tarsim: A Realtime Frontend Integratable and Configurable Robot Kinematics Simulator

Kamran Shamaei shamaei.kamran at gmail.com
Sun Feb 24 17:51:52 PST 2019

I have developed a robot simulator named Tarsim based on my experience in
industry and academia. I would like to share this product with all of my
colleagues. Hope you enjoy it.

Tarsim is a realtime-safe kinematics simulator that can simulate the
kinematics of any open-chain rigid body system. Tarsim can simulate any
robotic arm, robotic hand, humanoid robot, bipedal robot, Cartesian stages,
and any other robot that is composed of an open-chain system of rigid
bodies. The current version of Tarsim cannot simulate closed-chain rigid
bodies such as delta robots, four-bar linkages and other similar
mechanisms. The main features of Tarsim include:
1) Tarsim is a realtime-safe simulator. Setting and getting robot
kinematics parameters takes a few micro seconds and the kinematics engine
can calculate the whole kinematics chain in a few micro seconds. Setting
the robot joint values is non-blocking.
2) Tarsim is integratable. The client of Tarsim can be integrated in any
C++ code running under a POSIX system such as Linux Ubunutu. The service of
Tarsim can be run as a separate process or be integrated in a Qt
3) It is easy to set up a robot in Tarsim. You can set up your robot in
Tarsim in a couple of hours by creating a configuration file and dropping
the STL files of your robot.
4) Tarsim window is configurable. Almost every behavior of Tarsim can be
configured such as its background color, position of buttons, button icons,
and other window properties.
5) Tarsim has a very small foot-print. Tarsim uses very small memory and
cpu. For example under an i7 core it uses ~20 mb of memory and 1-2% cpu.
6) Multiple clients can communicate with Tarsim and move different parts of
the robot or robots.
7) Tarsim simulates collisions, max joint velocity, and max joint
8) Tarsim allows you to simulate the exact commands you send to the robot
while the robot is running or without the robot running. For example, you
can send the position commands that you send to your robot to Tarsim to
display your robot. Also you can create a shadow robot along with your
robot to display where the robot actually is by sending the feedback you
get from your robot.
9) Tarsim keeps track of time and reports if the update rate from the
software deviates from what it actually must be by a settable tolerance.

These features in addition to many other features integrated into Tarsim,
makes it an ideal simulator for roboticists who are developing software and
algorithms for a robot without running their code on the actual robot. This
becomes even more important because robots are inherently expensive to
purchase, develop, and use making it very difficult for many roboticists to
have extensive tests on a robot. Especially, nowadays there are so many
engineers who work off-site and do not have daily access to robots.
Moreover, there are so many engineers who develop software for a robot, but
they don’t really need to test their software on an actual robot but need
to know how the robot would behave such as UI/UX developers. Tarsim
facilitates all these scenarios. Tarsim is available on github:


Kamran Shamaei, PhD

More information about the robotics-worldwide mailing list