It is very important to know which tool is to be used at what stage of Robot development. Learning how to use them is just a prerequisite.  The following are some of the most essential tools in Robotics. There always are many alternatives to software tools but these are what I would personally recommend as they have time and again proven to be the best in industry and academia.


SolidWorks® is an amazing GUI-based software for modelling solids, mechanisms and entire products along with tools for mechanical analysis and simulation. It is very easy to learn and is widely used in industry and academia. It enables the user to precisely model mechanical systems using a feature-based approach i.e. building blocks such as sketches, planes, extrusions and patterns to model complicated mechanical systems. Users can also assign define materials for these solids, in order to perform Finite Element Analysis to obtain the stress distribution within the solid under specified loading and other boundary conditions. Apart from a standard static analysis, SolidWorks also gives users the ability to perform dynamic analysis for solid as well as fluid flow environments and has countless toolboxes and add-ins to assist with full product integration and documentation. Most importantly in the context of Robotics, kinematic simulation can also be performed using the Motion Study toolbox and visualized via animations. There are toolboxes to assist with design optimization and equation driven design for applications which are more demanding in objectives and accuracy.

There are many free as well as paid online resources to learn SolidWorks. The most effective way to learn is to practise and do along with the online demonstrator. Slow down the videos if needed. It is natural to start with sketches, solid modelling, assemblies and then move to analysis and simulation.

Free Online Resources:


MATLAB® (MATrix-LABoratory) is a comprehensive development, simulation and visualization environment. It is very powerful as a generic solver for linear, non-linear, differential and most other types of mathematical problem formulations (eg: optimisation formulations). The solutions can be visualized using plots and animations. On top of MATLAB's solver, there exists a large spread of toolboxes that consist of collections of functions and GUI tools to aid in the design and simulation of engineering and other mathematical model-based systems. The Symbolic Toolbox can be used to symbolically (analytically as is generally done by hand) solve equations. The Control Systems Toolbox can be used for compensator design, optimization and simulation. Other than these, the Robotics Toolbox and other tools like System Identification, Data Analysis and the Image Processing Toolboxes are important in the domain of Robotics. Simulink®, another brilliant tool,  is a MATLAB environment developed by MathWorks in order to build and simulate systems using block-diagrams and signal flows (systems approach). This makes the modelling and formulation process much more intuitive. Almost every Roboticist in the world uses MATLAB, as it is the most powerful integrated environment for design and simulation. Although limited, MATLAB also has tools to interface programmes with external hardware devices like microcontrollers.


MathWorks provides comprehensive documentation of all functions and toolboxes. It is so good that you may never really need any third party tutorial series. You can also find courses specifically for MATLAB learning on edX, Coursera and Lynda. A lot of universities also have their own video tutorials as well. Books also exist but most of them are for outdated versions of MATLAB. 


Robotic Operating System (ROS) is a software framework that allows for efficient development, packaging and deployment of algorithms required to control and interface various systems in a Robot. In actuality, it is not an operating system by definition (like Windows or Macintosh) but is middleware that facilitates robotic software development. The basic idea behind the creation of ROS is to provide a convenient way to build, reuse, share and deploy algorithms onto hardware without having to keep 'reinventing the wheel'. For example, ROS 'packages' are generally designed to act as black boxes with known i/o data formats. This stream of data is called a ROS 'topic'. ROS 'nodes' contained inside packages either 'subscribe' or 'publish' to these topics. Nodes are hardware abstractions of devices such as sensors, actuators and other sub-systems in a robot. The beauty of ROS packages are that they can be reused and re-purposed very easily. This makes sense as in general, robots across most domains possess common functions such as motor control, motion planning, trajectory tracking, object detection, object identification, etc. This enables individuals to almost seamlessly integrate packages into larger entities that can be deployed onto a computer that controls low-level hardware devices. Due to these advantages, ROS has become a de-facto standard in research and development.



Arduino is a simple and easy-to-program microcontroller than is widely used in robotics development. It can be used as a stand-alone controller running algorithms or as a low-level interface between hardware like sensors and actuators, and a high-level computer or processor. It runs a 16Mhz processor and has both digital and analog i/o capabilities. It can be easily connected to a laptop and programmed using an IDE provided by Arduino. There are many alternatives to Arduino - like Raspberry Pi or BeagleBone - but Arduino remains the most popular due to its cost, large online community and support system.