Robotics software is still in its infancy, with many packages growing in features and interoperability. Here is a list of the best APIs for Robotics, by ease of use and popularity:
1. Architecture: ROS
ROS, or Robot Operating System, is a large API that acts as infrastructure for large robotics systems. It utilizes various communication techniques such as publishing and subscribing and server-client services to create a peer-to-peer system of executables, or nodes. They simplify standardization across industries, building through catkin, parametrization through the Parameter Server, logging levels through rosconsole, simulation and modelling through RViz and Gazebo, recording and playing data through rosbags, and support both the C++ and Python languages.
2. Sensing: OpenCV
All robots need to sense their environment in some way. While Lidars, limit switches, ultrasonic, radar, and others are great sensors, image data has recently become one of the cheapest and fastest ways to sense more out of the environment. OpenCV is a Computer Vision library that eases the understanding of data, whether through heatmaps, edge detection, contouring, thresholding, morphology, and blob detection. They also primarly support both C++ and Python.
3. User Interface: Many
UI for robotics is still in development for the most part. One of the most popular is roslibjs. Alternatives include rosbridge_suite for JSON calls, rqt which already has many features, or qt_ros for integration with QML. Right now, it’s better to not focus too much on UI if possible.
4. Fleet Management and Cloud: Many
Fleet management, or the ability to observe what all robots see, analyze their collected data, and operate them remotely, is an extremely challenging task that many companies are just starting to begin. In addition to Formant, some other companies in this space can be found in this listing from Rover Robotics. The majority utilize cloud services, and we recommend AWS, or Amazon Web Services. They have a wide variety of tools to cover all cases from displaying data to storing it.
Whatever your robot project entails, 2019 is a great year for R&D; but remember, that a perfect working prototype probably won’t come as fast as other industries. We recommend doing a lot of research into what tools you will be using before getting started, because robotics subsystems can easily be deprecated as early as in just a few years.