A little bit of context : I want to create an app using C++ (or C#) to handle 3D objects (obj), I will perform some operations on those 3D models to create some robotic trajectories. Then I want to simulate those trajectories showing the Staubli robot (a tx2-90) to the user.

I am totally new in the 3D coding world and so far I've only been using manufacturers softwares (for staubli it's SRS which integrates a powerful simulator) but now I want to create my own app to simulate the behavior of the robot when given different trajectories.

What librairies or 3D engines (considering I have some 3D objects to handle as well) should I use for that? Gazebo (same thing for RoboDk apparently) seemed pretty promising but it seems that you can't modify the interface and I need something I can have the hand on as it's going to be a proprietary interface.

I am struggling to find my starting point for this so if you could guide to some ressources or anything that would be lovely!

Thank you in advance!


3 Answers 3


You should look into Energid's Actin SDK, its a commercial product that allows for this.


Full disclosure I work for Energid, and i work with customers doing similar things

  • $\begingroup$ Hello Bret, sounds interesting! Please contact me on the email cited on my profile to talk more about your solution. $\endgroup$
    – Jack
    Commented Apr 30, 2021 at 7:43

What you're looking for is doable but it is difficult for beginners. There is a plethora of skills you need. The skills are

1- Mathematical modelling: The first step for any project is to derive the mathematical model of your system. This requires expertise in specific fields. For manipulators, you need to apply, for example, Netwon's laws to derive the dynamics equations of your manipulator. Please take a look at these books. These are the most common textbooks in introduction to robotics.

  1. Robot Manipulators by Paul MIT Press
  2. Introduction to Robotics Mechanics and Control 3th by Graig
  3. Robot Modeling and Control by Spong and Et. al.
  4. A mMthematical Introduction to Robotic Manipulation by Murray and Et. al.

2- Numerical Analysis: mathematical models are usually in the form of differential or difference equations. Because these equations are highly nonlinear, the only solution is to utilize numerical methods to solve them.

3- Control Strategy: to move your robot, you need control methods so that your robot follow your commands. Linear and nonlinear techniques are common. Usually for highly nonlinear models like manipulators, you need nonlinear methods.

For linear Control books: (common textbooks in universities)

  1. Control Systems Engineering by Nise (highly recommended)
  2. Automatic Control Systems by Golnaraghi and Et. al.
  3. Modern Control Systems by Dorf (extremely popular but not easy for the first read)
  4. Modern Control Engineering by Ogata

For nonlinear Control books:

  1. Nonlinear Control Systems Analysis and Design by Marquez (highly recommended)
  2. Nonlinear Systems by Khalil (highly recommended).

4- Computer Graphics: to draw and simulate your manipulator, you need a good background in computer graphics. For purely graphics, you may need to learn OpenGL (i.e. for all OSs) or DirectX (i.e. for Windows). You could use any programming languages for this matter. For C++, there are numerous libraries for simplifying graphics such SDL2, Glue, FreeGlut, SMFL, etc. These libraries not for drawing rather they allow the interaction with hardware (e.g. mouse, keyboard) but they are simple so you can learn them very fast.

  • $\begingroup$ Thank you for this full answer and resources! I will definitely take a look at these books. For the first 3 points, doesn't ROS integrate such modules? For the last one what do you think about 3D engines? I have many other operations to deal with 3D objects before simulating with the robot, so maybe these low-level libraries might be too low level to acheive what I want fast enough? $\endgroup$
    – Jack
    Commented May 3, 2021 at 7:35

First I do work for Staubli robotics. Having made that clear, Staubli does have a robot emulator and 3D viewing environment as part of the Staubli Robotics Suite software. The unlicensed version is available for free. It does not allow you to actually create applications, but you can run existing applications on the emulator and see a 3D model of the arm move. Purchasing a developers license allows to create applications using the VAL 3 language and to add objects to 3D environment for a more realistic looking simulation. We do offer academic discounts for educators and students. a e-mail address with a .edu extension is accepted to obtain the academic discount.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.