After completing my university education, I no longer had access to the robotics laboratory I was once a part of. However, I had a strong desire to continue my robotics experiments and conduct home-made research. To fulfill this aspiration, I needed a robot that would serve as a platform for my experiments. The idea was to have the ability to customize the robot based on specific needs. Simultaneously, it was crucial to have versatile and scalable software that could incorporate new features upon request and establish connections with various devices. This software would serve as the backbone, enabling the robot to adapt and expand its capabilities as needed.
In summary, the challenge encompassed two key components: the flexible hardware/design to support diverse experiment requirements and a versatile software system capable of accommodating new features and interacting with different devices.
The robot structure is modular, consisting of different modules that contribute to the overall characteristics of the robot. For instance, the vanilla version includes a holonomic mobile base, a power supply module for distributing energy to all parts of the robot, and a processing module. This one is equipped with a Jetson Nano and an Intel RealSense D455 RGB-D camera.
However, it is entirely possible to switch out the wheels for legs or add an arm module with minimal effort. This flexibility is made possible by utilizing I2C communication between the modules. Each unit is connected through four cables: two for power supply and two for communication. Each module incorporates either a microprocessor, such as an Arduino board or an ESP32, or a microcomputer, such as a Jetson or a Raspberry Pi. The software follows a similar modular structure, enabling seamless interconnection between different types of devices.
The robot utilizes a Python HTTP API, where each function can be wrapped in a dynamic GET/POST format. This approach simplifies and accelerates the addition of different functions, allowing for further development and customization. The robot's controller is an Oculus Quest 3 VR headset or Android APP.
Using a VR headset as the controller for a modular robot offers several notable benefits. The immersive nature of virtual reality enhances the user experience by providing a more intuitive and immersive way to interact with the robot. Users can have a first-person perspective, seeing the robot's surroundings as if they were inside it while mantaining aware of the real surroundings, which facilitates better spatial awareness. This integration empowers users to control and interact with the robot remotely, leveraging the full capabilities of the VR headset while maintaining a strong connection to the robot's functionalities. It facilitates the creation of interfaces and high-level control.
In addition to the VR controller, I developed an Android app that serves as an alternative control interface for the robot. This app offers a more accessible and convenient option for users who may not have access to a VR headset. The Android device is used alongside a BackBone One controller to provide a familiar and ergonomic control experience. The app communicates with the robot using the same Python API as the VR controller, ensuring consistency in functionality and ease of integration.
By leveraging the capabilities of mobile devices, the Android app enables users to have a portable and readily available control option for the robot, enhancing its versatility and usability in various scenarios.
Overall, the Iter fulfills its purpose. It is now a modular and scalable robot with a fast and easy system for adding or removing any feature. Its size allows me to save money on the structure, enabling me to focus my efforts on software and module design. While a Jetson Nano may not be capable of running resource-intensive AI applications, it is feasible to offload heavy processing to a desktop computer using its API. Furthermore, with the availability of 5 GHz Wi-Fi, all data can be transmitted in real-time, enabling timely decision-making.
A VR controller alongside a pocker size one as an option offers tremendous advantages in the field of robotics. Whether it involves manipulating giant virtual screens or designing custom user interfaces for a more compact format, this versatility facilitates teleoperation and interaction. By utilizing a VR headset alongside hand tracking or just a pocket controller, operators can seamlessly maneuver and control robots by selecting, or even creating a controller that fits their needs, providing an intuitive and natural way of interfacing with the robotic system. Moreover, the virtual nature of the environment opens up new avenues for training and simulation. Users can recreate real-world scenarios, test different control strategies, and experiment with complex tasks without any risk of physical damage. This virtual playground enables rapid prototyping, iterative design improvements, and exploration of various robot configurations and functionalities.