TZC: Efficient InterProcess Communication for Robotics Middleware with Partial Serialization Interprocess communication (IPC) is one of the core functions of modern robotics middleware. We propose an efficient IPC technique called TZC (Towards ZeroCopy). 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 opensource 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 it with TurtleBot2 to be used in autonomous driving scenarios. We show that by using TZC, the braking distance can be 16% shorter than with ROS.

ZytleBot: FPGA Integrated Development Platform for ROS Based Autonomous Mobile Robot The FPT2019 FPGA Design Competition is a competition aimed at recommending innovations in utilizing FPGAs to realize level 5 autonomous driving vehicles. We have developed ZytleBot, an ROS based robot utilizing FPGA for the contest. ZytleBot calculates all processing necessary for autonomous driving in realtime within a programmable SoC. Therefore, it is possible to go around the course imitating an actual road, detect signals and obstacles and take appropriate behavior without any external operation. Robot development requires a wide range of knowledge and technology, but we have proceeded robot development efficiently by using ROS, a robot development middleware, and TurtleBot3, a robot development platform. As an application of FPGA, road surface image preprocessing and traffic signal detector using machine learning is implemented in the FPGA. The traffic signal detector uses HOG features and SVM classifiers, which runs over 270 times faster than running on the processor. We also provide ZytleBot as a platform for efficient development of FPGA integrated ROS robots.