Robots can be classified by their kinesiology, their mechanical performance specifications, and various types of software they employ. This FAQ will consider robot software environments and motion control architectures. The next FAQ will delve into “Sentient robots and artificial intelligence.” The series will conclude with a review of the major “International performance and safety standards for robots.”
Robot operating system
The Robot Operating System (ROS) is an open source robotics middleware suite. ROS is an open-source, meta-operating system for robots. It provides capabilities similar to an operating system, including hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management. It also provides tools and libraries for obtaining, building, writing, and running code across multiple computers. ROS is one of the most advanced robotics software environments. It is similar in some respects to other ‘robot frameworks,’ such as Player, Open Robotics Control Software (Orocos), CARMEN, Orca, MOOS, and Microsoft Robotics Studio.
ROS is not a real-time operating system, but it can be integrated into real-time code environments. The release of ROS 2.0 has enhanced the ability to support real-time operating environments.
The Qualcomm Robotics RB5 platform is an example of the capabilities of ROS 2.0. The RB5 platform brings together 5G communications and artificial intelligence to enable developers and manufacturers to create the next generation of high-compute, low-power robots and drones for the consumer, enterprise, defense, industrial, and professional service sectors. The Qualcomm Robotics RB5 Development Kit provides flexible software capabilities, including support for Linux, Ubuntu, and ROS 2.0, as well as pre-integrated drivers for various cameras, sensors, and 5G connectivity. It also provides support for OpenCL, OpenGLES, and OpenCV. The Qualcomm Robotics RB5 Development Kit includes support for the Intel® RealSense™ Depth Camera D435i and Panasonic TOF Camera to provide depth-sensing capabilities. The dev kit also includes TDK’s 6-axis, high-performance ICM-42688-P inertial measurement unit, accompanied by an ICP-10111 barometric pressure and a T5818 Digital bottom port microphone.
Robotic Middleware for Healthcare (RoMi-H) is an open-source system built on ROS 2 and simulated using the Gazebo simulator. It allows for uniform communication and monitoring across robot platforms, sensors, and enterprise information systems. For example, RoMi-H can enable food-delivery robots from one vendor to communicate with drug-delivery robots from another vendor. RoMi-H provides an open-source environment to enable interoperability. It supports a unified approach to command and control for all the robots in a facility. And it provides a reliable way to develop and test multi-vendor systems in software simulation prior to deployment.
Under the leadership of Singapore’s Centre for Healthcare Assistive and Robotics Technology (CHART) and collaborators such as IHiS, Hope Technik, GovTech, and other solution providers, Open Robotics has worked since 2018 to develop an open-source software solution. Its goal is to realize the potential of a vendor-agnostic and interoperable communication system for heterogeneous robots, sensors, and information systems in the healthcare space.
Microsoft robotics studio
Developed by Microsoft Research, Microsoft Robotics Studio (MSRS) supports the development of service-based applications for a wide range of hardware devices. The toolkit includes a runtime that should be familiar to Windows® Communication Framework (WCF) developers. It also includes a Visual Programming Language (VPL) tool and Visual Simulation Environment (VSE).
MSRS offers a service-oriented runtime, along with the tools needed to design and deploy robotics-based applications. It includes visual authoring tools, tutorials, and documentation designed to jump-start developers new to the world of robotics. Commercial developers must purchase the toolkit, but hobbyists and academic researchers can download and use it free of charge.
The MSRS runtime is composed of two lower-level runtimes that sit atop the CLR 2.0. These two runtimes are the Decentralized Software Services (DSS) and the Coordination and Concurrency Runtime (CCR). DSS is a lightweight, service-oriented runtime based on the Representation State Transfer (REST) principles, which are used to power the Web. CCR is a Microsoft .NET Framework library that supports asynchronous processing. That is important for robotics applications, as data is constantly being sent and received from numerous sensors and actuators.
Along with the runtime, the MSRS toolkit includes a VPL tool that allows developers to build robotics applications by simply dragging and dropping elements onto a design surface. MSRS also includes a VSE that empowers developers to experiment with complex simulations involving multiple robots and obstacles.
Robot motor control architectures
In robot systems, motor control is often structured as a series of layers. The control loops consist of the torque/current loop, speed loop, position loop, and a higher-level control loop cascaded, with each loop having different real-time processing demands. The torque/current is the fastest loop, and each upstream loop runs at a fraction of the speed of the loop before it and provides inputs to the downstream loop(s).
The blocks outlined above can easily be partitioned across cores in a multicore processor or between several microcontrollers or processors. Simultaneous processing of the various loops can maximize the processing bandwidth available in the respective loops. In each case, as the various processor partitions get control loop input data, it can immediately run the appropriate algorithm quickly and provide the output to the next loop downstream, and then continue other processing needs until the next cycle of input data is received.
Designers can dial in the amount of processing power available for a specific robot design. Higher performance processors can complete the various control algorithms faster and have excess bandwidth available for performing additional functions. In fast 32kHz control loops where cycle times can be as fast as 31.25µs, fast processing is particularly important. Fast processing and high bandwidth are also important when controlling multiple axes of motion nearly simultaneously.
Controlling multiple axes of motion can also involve the use of modular control architectures. One approach combines a series of operator-controller modules (OCMs) with three layers; the controller(s), the reflective operator, and the cognitive operator. The reflective operator receives data from the controllers in the operating loop and decides the configuration in which the controllers are operating, and provides the control inputs needed to have the robot complete the current task(s). The highest layer of the OCM, the cognitive operator, is responsible for optimizing the system’s overall functioning to meet specific operational goals, such as minimizing power consumption. The OCM architecture includes local functions run autonomously on the robot and cloud functions that provide increased computing power for complex algorithms and machine learning activities.
The availability of small single-board computers (SBCs) as a possible computing solution for robotics systems is being used to develop modular and distributed architectures. Modular and distributed computing architectures are expected to enable better computing power availability where it is needed and lead to enhanced system dependability. This approach can also result in adaptable robot designs beginning with one or more SBCs and adding more SBCs as more sensors or actuators are added in the future. Adding sensors and/or actuators would result in a robot with a variable number of axes for performing different functions as circumstances and needs change.
In addition to their physical structure, a number of axes, and kinesiology (which were the subject of the first FAQ in this series), robots can be defined by their software environment and motion control architecture. The next FAQ in this series will consider “Sentient robots and artificial intelligence.” The series will conclude with a review of “International performance and safety standards for robots,” which will focus on industrial, consumer, and medical robot systems.
An Engineer’s Guide to Industrial Robot Designs, Texas Instruments
Concepts of a Modular System Architecture for Distributed Robotic Systems, MDPI
Microsoft robotics studio, Microsoft Corp.
Open Robotics, Open Source Robotics Foundation, Inc
Qualcomm Launches World’s First 5G and AI-Enabled Robotics Platform, Qualcomm
The Robot Operating System, ROS.org