198 research outputs found

    TZC: Efficient Inter-Process Communication for Robotics Middleware with Partial Serialization

    Full text link
    Inter-process communication (IPC) is one of the core functions of modern robotics middleware. We propose an efficient IPC technique called TZC (Towards Zero-Copy). As a core component of TZC, we design a novel algorithm called partial serialization. Our formulation can generate messages that can be divided into two parts. During message transmission, one part is transmitted through a socket and the other part uses shared memory. The part within shared memory is never copied or serialized during its lifetime. We have integrated TZC with ROS and ROS2 and find that TZC can be easily combined with current open-source platforms. By using TZC, the overhead of IPC remains constant when the message size grows. In particular, when the message size is 4MB (less than the size of a full HD image), TZC can reduce the overhead of ROS IPC from tens of milliseconds to hundreds of microseconds and can reduce the overhead of ROS2 IPC from hundreds of milliseconds to less than 1 millisecond. We also demonstrate the benefits of TZC by integrating with TurtleBot2 that are used in autonomous driving scenarios. We show that by using TZC, the braking distance can be shortened by 16% than ROS

    An Optimized, Data Distribution Service-Based Solution for Reliable Data Exchange Among Autonomous Underwater Vehicles

    Get PDF
    Major challenges are presented when managing a large number of heterogeneous vehicles that have to communicate underwater in order to complete a global mission in a cooperative manner. In this kind of application domain, sending data through the environment presents issues that surpass the ones found in other overwater, distributed, cyber-physical systems (i.e., low bandwidth, unreliable transport medium, data representation and hardware high heterogeneity). This manuscript presents a Publish/Subscribe-based semantic middleware solution for unreliable scenarios and vehicle interoperability across cooperative and heterogeneous autonomous vehicles. The middleware relies on different iterations of the Data Distribution Service (DDS) software standard and their combined work between autonomous maritime vehicles and a control entity. It also uses several components with different functionalities deemed as mandatory for a semantic middleware architecture oriented to maritime operations (device and service registration, context awareness, access to the application layer) where other technologies are also interweaved with middleware (wireless communications, acoustic networks). Implementation details and test results, both in a laboratory and a deployment scenario, have been provided as a way to assess the quality of the system and its satisfactory performanceEuropean Commission H2020. SWARMs European project (Smart and Networking Underwater Robots in Cooperation Meshes), under Grant Agreement No. 662107-SWARMs-ECSEL-2014-1, partially supported by the ECSEL JU, the Spanish Ministry of Economy and Competitiveness (Ref: PCIN-2014-022-C02-02)

    A distributed architecture for unmanned aerial systems based on publish/subscribe messaging and simultaneous localisation and mapping (SLAM) testbed

    Get PDF
    A dissertation submitted in fulfilment for the degree of Master of Science. School of Computational and Applied Mathematics, University of the Witwatersrand, Johannesburg, South Africa, November 2017The increased capabilities and lower cost of Micro Aerial Vehicles (MAVs) unveil big opportunities for a rapidly growing number of civilian and commercial applications. Some missions require direct control using a receiver in a point-to-point connection, involving one or very few MAVs. An alternative class of mission is remotely controlled, with the control of the drone automated to a certain extent using mission planning software and autopilot systems. For most emerging missions, there is a need for more autonomous, cooperative control of MAVs, as well as more complex data processing from sensors like cameras and laser scanners. In the last decade, this has given rise to an extensive research from both academia and industry. This research direction applies robotics and computer vision concepts to Unmanned Aerial Systems (UASs). However, UASs are often designed for specific hardware and software, thus providing limited integration, interoperability and re-usability across different missions. In addition, there are numerous open issues related to UAS command, control and communication(C3), and multi-MAVs. We argue and elaborate throughout this dissertation that some of the recent standardbased publish/subscribe communication protocols can solve many of these challenges and meet the non-functional requirements of MAV robotics applications. This dissertation assesses the MQTT, DDS and TCPROS protocols in a distributed architecture of a UAS control system and Ground Control Station software. While TCPROS has been the leading robotics communication transport for ROS applications, MQTT and DDS are lightweight enough to be used for data exchange between distributed systems of aerial robots. Furthermore, MQTT and DDS are based on industry standards to foster communication interoperability of “things”. Both protocols have been extensively presented to address many of today’s needs related to networks based on the internet of things (IoT). For example, MQTT has been used to exchange data with space probes, whereas DDS was employed for aerospace defence and applications of smart cities. We designed and implemented a distributed UAS architecture based on each publish/subscribe protocol TCPROS, MQTT and DDS. The proposed communication systems were tested with a vision-based Simultaneous Localisation and Mapping (SLAM) system involving three Parrot AR Drone2 MAVs. Within the context of this study, MQTT and DDS messaging frameworks serve the purpose of abstracting UAS complexity and heterogeneity. Additionally, these protocols are expected to provide low-latency communication and scale up to meet the requirements of real-time remote sensing applications. The most important contribution of this work is the implementation of a complete distributed communication architecture for multi-MAVs. Furthermore, we assess the viability of this architecture and benchmark the performance of the protocols in relation to an autonomous quadcopter navigation testbed composed of a SLAM algorithm, an extended Kalman filter and a PID controller.XL201

    Avances en sistemas software para robótica con atributos de calidad de servicio adaptativos

    Get PDF
    En esta Tesis se presenta Nerve, un middleware para sistemas distribuidos y robótica basado en la librería de comunicaciones multiplataforma ACE y el en estándar the Data Distribution Service (DDS). Nerve garantiza la escalabilidad y las calidades de servico (QoS) necesarias para sistemas de tiempo real, pero también permite a los desarrolladores reutilizar la mayoría del código existente y ofrecerles los mecanismos necesarios para desplegar partes de dicho código en tareas distribuidas. Además, Nerve ofrece una infraestructura de monitorización y adaptación. La infraestructura de monitorización permite tener acceso a las métricas del sistema (CPU, memoria, etc.) y a las métricas de usuario (QoS, variables utilizadas en algoritmos, etc.). Para ello se describe un mecanismo de instrumentación automática de código utilizando las herramientas basadas en los compiladores LLVM. Con respecto a la infraestructura de adaptación, ésta se encarga de modificar las QoS para obtener el mejor comportamiento posible del robot con los recursos disponibles en tiempo de ejecución. También se describen la implementación e integración en Nerve de un mecanismo de comunicaciones basado en petición/respuesta que, junto al original basado en la publicación/suscripción, permite dar soporte al modelo cliente/servidor. Este modelo clásico de comunicaciones se ha utilizado con éxito para integrar Nerve en otros frameworks existentes para robótica. Finalmente, los beneficios del uso de Nerve se verán reflejados a través de su aplicación en sistemas robóticos reales.Los robots sociales son robots autónomos que trabajan en entornos sociales reales donde tienen que interactuar con seres humanos e incluso con otros robots. La implementación de estos sistemas robóticos está moviendose hacia el uso de frameworks basados en componentes, los cuales se centran en la reusabilidad y en la evolución del software. De esta manera, el software de un robot está compuesto por entidades binarias (componentes) distribuidos que se comunican entre sí utilizando un middleware de comunicaciones, que permite abstraer al desarrollador de los detalles de bajo nivel y comunicar sistemas heterogéneos. Si embargo, el uso de estos frameworks basados en componentes y middleware para robótica implica una curva de aprendizaje muy pronunciada, además de introducir nuevos desafíos a los desarrolladores para poder satisfacer los requisitos de alto rendimiento y otras calidades de servicio. El análisis y la verificación de esas propiedades no funcionales debe incluir formas de monitorizar los diferentes valores del sistema. Normalmente, las herramientas de monitorización para robótica incluyen sólo información sobre el estado de los componentes y la acción típica a realizar, en caso de detectar que no se satisface algún requisito, es parar el software, lo que suele implicar parar el robot. Obviamente, este escenario no es la mejor opción para los robots sociales, a menos que introduzcamos un mecanismo que garantice que el sistema de control del robot se autoadaptará y reparará él mismo si es necesario (y posible). De esta forma, aparece un nuevo requisito: un sistema de control de un robot debe de ser tolerante a fallos, permitiendo auto-adaptarse, es decir: detectar cambios significativos, decidir cómo reaccionar, y actuar para ejecutar tales decisiones

    AGNI: an API for the control of automomous service robots

    Get PDF
    With the continuum growth of Internet connected devices, the scalability of the protocols used for communication between them is facing a new set of challenges. In robotics these communications protocols are an essential element, and must be able to accomplish with the desired communication. In a context of a multi-­‐‑agent platform, the main types of Internet communication protocols used in robotics, mission planning and task allocation problems will be revised. It will be defined how to represent a message and how to cope with their transport between devices in a distributed environment, reviewing all the layers of the messaging process. A review of the ROS platform is also presented with the intent of integrating the already existing communication protocols with the ServRobot, a mobile autonomous robot, and the DVA, a distributed autonomous surveillance system. This is done with the objective of assigning missions to ServRobot in a security context

    Comparison of DDS, MQTT, and Zenoh in Edge-to-Edge and Edge-to-Cloud Communication for Distributed ROS 2 Systems

    Full text link
    The increased data transmission and number of devices involved in communications among distributed systems make it challenging yet significantly necessary to have an efficient and reliable networking middleware. In robotics and autonomous systems, the wide application of ROS\,2 brings the possibility of utilizing various networking middlewares together with DDS in ROS\,2 for better communication among edge devices or between edge devices and the cloud. However, there is a lack of comprehensive communication performance comparison of integrating these networking middlewares with ROS\,2. In this study, we provide a quantitative analysis for the communication performance of utilized networking middlewares including MQTT and Zenoh alongside DDS in ROS\,2 among a multiple host system. For a complete and reliable comparison, we calculate the latency and throughput of these middlewares by sending distinct amounts and types of data through different network setups including Ethernet, Wi-Fi, and 4G. To further extend the evaluation to real-world application scenarios, we assess the drift error (the position changes) over time caused by these networking middlewares with the robot moving in an identical square-shaped path. Our results show that CycloneDDS performs better under Ethernet while Zenoh performs better under Wi-Fi and 4G. In the actual robot test, the robot moving trajectory drift error over time (96\,s) via Zenoh is the smallest. It is worth noting we have a discussion of the CPU utilization of these networking middlewares and the performance impact caused by enabling the security feature in ROS\,2 at the end of the paper.Comment: 19 pages, 8 figures. Submitted to the Journal of Intelligent & Robotic Systems. Under revie

    Service Oriented Robotic Architecture for Space Robotics: Design, Testing, and Lessons Learned

    Get PDF
    This paper presents the lessons learned from six years of experiments with planetary rover prototypes running the Service Oriented Robotic Architecture (SORA) developed by the Intelligent Robotics Group (IRG) at the NASA Ames Research Center. SORA relies on proven software engineering methods and technologies applied to space robotics. Based on a Service Oriented Architecture and robust middleware, SORA encompasses on-board robot control and a full suite of software tools necessary for remotely operated exploration missions. SORA has been eld tested in numerous scenarios of robotic lunar and planetary exploration. The experiments conducted by IRG with SORA exercise a large set of the constraints encountered in space applications: remote robotic assets, ight relevant science instruments, distributed operations, high network latencies and unreliable or intermittent communication links. In this paper, we present the results of these eld tests in regard to the developed architecture, and discuss its bene ts and limitations

    FastCycle: A Message Sharing Framework for Modular Automated Driving Systems

    Full text link
    Automated Driving Systems (ADS) have rapidly evolved in recent years and their architecture becomes sophisticated. Ensuring robustness, reliability and safety of performance is particularly important. The main challenge in building an ADS is the ability to meet certain stringent performance requirements in terms of both making safe operational decisions and finishing processing in real-time. Middlewares play a crucial role to handle these requirements in ADS. The way middlewares share data between the different system components has a direct impact on the overall performance, particularly the latency overhead. To this end, this paper presents FastCycle as a lightweight multi-threaded zero-copy messaging broker to meet the requirements of a high fidelity ADS in terms of modularity, real-time performance and security. We discuss the architecture and the main features of the proposed framework. Evaluation of the proposed framework based on standard metrics in comparison with popular middlewares used in robotics and automated driving shows the improved performance of our framework. The implementation of FastCycle and the associated comparisons with other frameworks are open sourced

    Distributed Robotic Systems in the Edge-Cloud Continuum with ROS 2: a Review on Novel Architectures and Technology Readiness

    Full text link
    Robotic systems are more connected, networked, and distributed than ever. New architectures that comply with the \textit{de facto} robotics middleware standard, ROS\,2, have recently emerged to fill the gap in terms of hybrid systems deployed from edge to cloud. This paper reviews new architectures and technologies that enable containerized robotic applications to seamlessly run at the edge or in the cloud. We also overview systems that include solutions from extension to ROS\,2 tooling to the integration of Kubernetes and ROS\,2. Another important trend is robot learning, and how new simulators and cloud simulations are enabling, e.g., large-scale reinforcement learning or distributed federated learning solutions. This has also enabled deeper integration of continuous interaction and continuous deployment (CI/CD) pipelines for robotic systems development, going beyond standard software unit tests with simulated tests to build and validate code automatically. We discuss the current technology readiness and list the potential new application scenarios that are becoming available. Finally, we discuss the current challenges in distributed robotic systems and list open research questions in the field
    corecore