Robotics software is used to program robots, instructing the machine to perform certain autonomous tasks. Specifically, it is the coded commands that control a robot's actions and movements in order to complete a task. Robotics software can perform functions and automate functions to be performed. With robot manufacturers typically providing their own software, there are many different robotic software packages in existence with a lack of programming standardization for robots. However, manufacturer-agnostic systems and frameworks have also been developed.
There are similarities between the different proprietary systems, with most robotics software programs consisting of four major parts:
- Declarations and variables—files outlining variables and defining constants in the program
- Subroutines and functions—the creation of blocks of code to minimize errors of repetition
- Initialization—the starting point of the main routine
- The main loop—awaits the sensor, timer, and other inputs and initializes the proper reaction/movement of the robot
Robotic software platforms are packages that simplify robot programming. Often these platforms are applicable to multiple kinds of robotic devices through the creation of a unified programming and service execution environment and a library of reusable components. Typically platforms also provide debugging and simulation modules and a package of drivers for common robotic hardware to maximize integration.
Robotics are generally programmed using simulations—virtual models emulating real-world processes, conditions, and environments. This means generating a model of the robot that includes both the physical design and the programming code often using 3D modeling and rendering. With a virtual model, a complete set of input variables can be cycled to present loading and other scenarios of concern. Simulation provides advantages:
- Costs can be reduced for new robot designs
- Code can be tested to specifications
- Modifications can be made without costs
- Individual components can be tested
- Projects can be separated into manageable chunks
- A virtual model that is not as robust as the real world
- Limitations of simulation and their programming