The french academic system requires that people pass yet another diploma higher than the PhD before applying for a full professor position. The diploma is called “Habilitation à Diriger les Recherches” (HDR for short) which stands for “Ability to Supervise Research”. It requires writing a thesis presenting how the candidate co-supervised PhD students and Post-Doc, and the strategy of conducted research.
Today, I’m glad to announce that Dr Luc Fabresse did successfully defended his HDR entitled: “Reflective Languages for Mobile Robotics Applications Development”. You’ll find below keywords and the abstract.
Keywords : Mobile robotics applications, reflective language, components, remote debugging, application- level virtual memory
Abstract
Mobile autonomous robots are progressively entering the mass market. This creates a growing de- mand to develop new service robotics applications. However, the typical development cycle of a mobile robotics application is long and involves several steps : development, (cross-)compilation, deployment and execution. My main objective is to shorten this cycle and support a live programming style by proposing new models, languages, tools and infrastructures to the developers. My researches focus on high-level parts of robotics applications (weaker hardware and time constraints) and advocate the use of dynamic and reflective languages. Indeed, those languages provide a high-level of abstraction and mechanisms to adapt and extend programs. In this context, this manuscript describes the four themes of my research.
In the first theme, we propose component-oriented languages allowing developers to express the architecture of an application directly in its source code as an assembly of components that may be remote or pervasive. Making architectures explicit ease program adaptation.
The second theme is about extending the kernel of a reflective language. Such extensions may require modifying the bootstrap of the language that is often mixed and hidden in its virtual machine code. In this regard, we proposed a higher-level approach based on the co-execution of multiple language runtime environments on the top of the same virtual machine. This infrastructure has been success- fully used to bootstrap multiple language kernels from their self-definitions.
The third theme is about limited resources available on a mobile robot (e.g. memory, computing capa- bilities). We proposed new mechanisms based on reflection to reduce the memory consumption of an object-based application : the first one is a dynamic dead code elimination technique and the second one is an application-level virtual memory that can swap out and in, referenced but unused objects during the execution. We also work on pushing part of the heavy computations to specialized hardware components such as FPGAs.
The fourth and last theme is about tools and infrastructures to improve the development of single and multi-robots applications. We proposed a debugging solution for a remote applications execu- ted on a mobile robot. This solution relies on a mirror-based reflective model and allows developers to interactively program in the context of errors when they occur. Our main application domain is the exploration and mapping of unknown environments using multi-robots systems. To ease the de- velopment but also comparisons of different solutions in this domain, we proposed a benchmarking infrastructure that can simulate exactly the same code as the one that would be deployed on real robots. We also worked on metrics (e.g. exploration time, memory and CPU consumed) to objectively compare different solutions.
Throughout these four themes, our research introduce new solutions with many perspectives to develop, test, deploy, execute and benchmark mobile and autonomous robotics applications.