Embedding ROS and AI-Based Perception Capabilities in a Novel Low-Cost Assistive Robotic Platform †

: This paper describes how we developed a novel low-cost assistive robotic platform, with AI-based perception capabilities, able to navigate autonomously using Robot Operating System (ROS). The platform is a differential wheeled robot, equipped with two motors and encoders, which are controlled with an Arduino board. It also includes a Jetson Xavier processing board on which we deploy all AI processes, and the ROS architecture. As a result of the work, we have a fully functional platform, able to recognize actions online, and navigate autonomously through environments whose map has been preloaded.


Introduction
Research in assistive robotics is experiencing a tremendous boom. More and more robotic platforms are emerging to assist people with functional diversity or the elderly (e.g., [1][2][3]). This is all due to major advances in robotics and artificial intelligence in recent years. However, despite all the advances, most of these commercial platforms are quite expensive.
In this work, we focus on the development of a low-cost assistive robotic platform, with advanced navigation and AI-based perception capabilities. For us, there is no doubt that cost-effectiveness must be considered in the context of assistive technology, because the final deployment of robots to end-users usually results in an expense paid by families or health services. Therefore, the main contribution of this work is the construction of a novel low-cost assistive robot. We have been able to develop a fully functional robotic platform, capable of navigating autonomously and recognizing the actions of its users, where all the functionalities are integrated into a Robot Operating System (ROS) architecture.

Hardware Description
The platform is a differential wheeled robot, equipped with two motors and their corresponding encoders, which are controlled with an Arduino board. The internal structure is constructed of wood and metal. The outer shell, imitating a person wearing a tuxedo, was made entirely by 3D printing. The complete platform measures approximately 800 mm, slightly higher than a table. As for the sensors, the platform has: one LIDAR, a touch screen, and a frontal camera. The LIDAR takes the measurements of the obstacles used for navigation and localization purposes. Finally, we have a Jetson Xavier board with ROS integration. Figure 1a shows a picture of the robot.

ROS Based Software Architecture
The system architecture is based on ROS Melodic. Figure 1b shows a diagram with the complete ROS architecture we have implemented, mainly using Python. Green nodes represent distributed software ROS packages, and orange nodes are those ROS nodes, entirely developed by us, to integrate ROS into our platform.
The core of the navigation system is based on the ROS Navigation Stack, that is fed with: a map provided by the map server, the odometry source from the wheels, the LIDAR information, and the estimated position, provided in our case by the Adaptive Monte Carlo Localization (AMCL) package. The interface with the user is done by means of RVIZ. This ROS package provides a visual environment where the map and the estimated robot position are shown. The user can indicate an initial position to help the robot to localize itself and can order the robot to move to a desired position, specifying yaw rotation. RVIZ will send ROS messages to the move_base core package which generates the linear and angular velocity commands needed to move the robot to the desired position. All these commands, and their parameters, are continuously updated with the information of new possible obstacles, the odometry, and the estimated localization.
In order to fully embed ROS in our robotic platform, we have developed the Hardware Interface package that: (1) translates ROS commands to the Arduino board; and (2) sends, back to the ROS system, the messages with the specific format needed to complete the communication loop with the Arduino. The Arduino package in Figure 1b includes the developed libraries to establish the communication between the engines of the platform and ROS, using a serial port. In particular, we have designed a communication protocol with commands that allow us to read the data from the encoders, and to generate a sequence of speed commands to be transmitted to each wheel.
As for the AI perception capabilities, the architecture integrates a specific node for the Online Action Detection (OAD), see Figure 1b. In this node we have deployed a 3D convolutional neural network model [4], which is able to recognize the actions performed by the user of the platform. All this processing is integrated in the ROS architecture, which means that the OAD system can run on an external node. In tests in the laboratory, we have tried to run the OAD node on a workstation, so that the Jetson board is relieved of all the intensive processing required by this AI functionality.

Experiments
We have tested the platform in the building of the Polytechnic School of the University of Alcalá. For doing so, we have created a set of maps of different floors of this building, which can be used with the RVIZ application.
In the experiments, we have started the robot from different departure positions, with different target locations, and various orientations. We have also tested how the platform interacts with dynamic obstacles during the navigation. Based on the results, we have observed that in most of the cases the platform manages to reach its objective, and with the correct orientation. Moreover, in all cases the platform never collided with objects or people. For a 10-m run, our robot can take about a minute and a half, but it depends on how many obstacles it has encountered during the trajectory. Sometimes, we have observed that when driving in very open spaces, when the LiDAR does not detect obstacles or walls, the platform needs to stop to recalculate its position, turning on itself. Figure 2a shows RVIZ interface when our robot is navigating. We have recorded a video of the platform navigating: https://youtu.be/qjXZxAmTKXk, accessed on 29 September 2021. For the OAD, we have embedded in our platform, a model trained using the UCF-101 dataset [5], which exhibits an average clip accuracy of 72.4% for all the 101 action categories in the test set of Split 1 of UCF-101. Figure 2b shows OAD qualitative results.

Conclusions
We have developed a low-cost assistive robotic platform that is able to navigate autonomously, detecting dynamic obstacles and following an optimal trajectory. Our robot is also able to recognize actions online, processing the images acquired by an RGB camera. All these processes are fully integrated into an ROS architecture. Future work will be to develop some applications that will allow the platform to interact and help people with functional diversity.