  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.
  Looking ahead to the need to develop software for robots that are ever more
ubiquitous, autonomous, and reliant on complex adaptive components, hardware,
and data, motivated an NSF-sponsored community workshop on the subject of
Software Engineering for Robotics, held in Detroit, Michigan in October 2023.
The goal of the workshop was to bring together thought leaders across robotics
and software engineering to coalesce a community, and identify key problems in
the area of SE for robotics that that community should aim to solve over the
next 5 years. This report serves to summarize the motivation, activities, and
findings of that workshop, in particular by articulating the challenges unique
to robot software, and identifying a vision for fruitful near-term research
directions to tackle them.
