Software for Robotics & Unmanned Systems
A wide variety of software is available to aid in the development of robotics systems and vehicles, including UAVs (unmanned aerial vehicles), UGVs (unmanned ground vehicles), USVs (uncrewed surface vessels) and UUVs (unmanned underwater vehicles). Robotics software may help with the design of these systems, or provide crucial abilities such as autonomy and decision-making.
Software Development Kits
Robotics SDK (software development kits) allow developers to create applications for particular robotic platforms, and accelerate development by doing away with the need to create all software from scratch. SDKs may provide pre-written building blocks or APIs that simplify control of particular features of the robot such as arms or propulsion systems, and may also provide algorithms for capabilities such as perception, navigation, and AI (artificial intelligence).
Robotics middleware is software that makes it easier for developers to manage the complexity of robotics systems, often providing a framework or architecture that abstracts away some of these complexities such as low-level communications. Much of the commonly-used middleware, such as ROS (Robot Operating System), is open-source.
Robotics and automation software may provide vehicles with abilities such as path-following and obstacle detection, as well as more advanced navigation capabilities such as SLAM (simultaneous localization and mapping), which allows a vehicle to operate within a previously unknown environment, creating and updating a map while successfully navigating and localizing itself within the area. AI software can also be used to provide a range of advanced capabilities, including computer vision, image recognition and classification, and self-driving.
Design & Modelling
A wide range of software packages for designing and modeling robotic systems hardware are also available, including 3D CAD software. These packages may include in-depth simulation capabilities with complex physics, allowing designs to be tested for mechanical operation and under different simulated environmental conditions such as varying fluid dynamics, terrain and weather.