Claire Le Goues,Sebastian Elbaum,David Anthony,Z. Berkay Celik,Mauricio Castillo-Effen,Nikolaus Correll,Pooyan Jamshidi,Morgan Quigley,Trenton Tabor,Qi Zhu
Abstract:Robots are experiencing a revolution as they permeate many aspects of our daily lives, from performing house maintenance to infrastructure inspection, from efficiently warehousing goods to autonomous vehicles, and more. This technical progress and its impact are astounding. This revolution, however, is outstripping the capabilities of existing software development processes, techniques, and tools, which largely have remained unchanged for decades. These capabilities are ill-suited to handling the challenges unique to robotics software such as dealing with a wide diversity of domains, heterogeneous hardware, programmed and learned components, complex physical environments captured and modeled with uncertainty, emergent behaviors that include human interactions, and scalability demands that span across multiple dimensions.
What problem does this paper attempt to address?
The paper attempts to address the issue that, with the development and popularization of robotics, the existing software development processes, technologies, and tools can no longer meet the unique needs of robotic software development. Specifically, the paper discusses the following challenges:
1. **Deployment in Physical Environments**: When robots operate in physical environments, they encounter various factors such as noise in sensor data, uncertainty in actuator dynamics, coordination of different reference frames, and performance variations due to manufacturing variations and wear and tear. These factors pose challenges to the design and verification of robotic software.
2. **Human-Robot Interaction and Other Dynamic Behaviors**: As robots increasingly participate in daily life tasks, they need to interact with humans and other dynamic agents. This requires robotic software to handle unpredictable emerging behaviors during long-term deployments and to establish and predict human behavior models.
3. **Sim-to-Real Gap**: Although simulation platforms provide virtual environments for robots, these virtual environments are still approximations of the real world, leading to the so-called "sim-to-real gap." This gap causes robots to potentially fail during actual deployment despite extensive simulation testing.
4. **Layered, Leaky Heterogeneity**: Robotic systems are multi-layered and heterogeneous, composed of diverse software and hardware components, including programming and machine learning components. Maintaining contracts between these components is challenging, and integration issues may arise, making the composition, analysis, debugging, and maintenance of robotic software very difficult.
5. **Integration of Learning Components**: Machine learning technologies have made significant progress in areas such as environmental perception, planning, control, and decision-making, but they also bring issues such as the cost of data collection and annotation, and the interpretability of component decisions. Ensuring that learning components generalize and are robust in the expected physical environment is particularly important.
6. **Breaking Scalability Principles in Robotic Software Pipelines**: The use of high-bandwidth sensors improves the robot's environmental perception capabilities but also increases the load on the software data pipeline, breaking the assumption that "communication delays can be ignored" between software components.
7. **Diverse and Isolated Development**: The diversity in robotic development (including development environments, processes and tools, software and hardware, assurance requirements and regulations, developer backgrounds, etc.) poses challenges to the choice of software engineering practices and tools, making it difficult to unify and integrate technologies, abstractions, processes, and tools within the robotics ecosystem.
To address the above challenges, the paper proposes several research directions, including but not limited to:
- **Modern Resource Abstractions to Middleware and Libraries**: Developing new middleware and libraries capable of handling the complexity of advanced robotic systems, with a particular focus on resource management and optimization.
- **Full-Stack Multi-View Architecture Description Language for Robotics**: Developing an architecture description language that can describe and analyze the full stack of robotic software across multiple levels and perspectives to bridge the gaps between different specialized fields.
- **Large-Scale Simulation Ecosystem**: Building a large-scale simulation ecosystem that can work collaboratively across multiple simulators and complex simulation environments.
- **Models, Estimators, and Analyses for Human-Robot Interaction**: Developing methods to guide robotic systems and their developers in achieving safety in complex deployments.
- **Evidence-Based Processes and Assurance**: Systematizing knowledge to provide a solid assurance foundation for industry and practice.
- **Courses to Prepare Future SE-Robotics Developers**: Cultivating foundational skills in robotic software engineering for future developers.
- **Multi-Dimensional Quality Assurance**: Addressing the specific needs of the robotics field, handling component heterogeneity and interaction, the complexity of configuration spaces, adversarial threats, and the richness and uncertainty of the environment.
These research directions aim to drive innovation and development in the field of robotic software engineering to address current and future challenges.