Adroid is proposed as an open S.T.E.A.M. platform and a process for building of educational aids like robots based on the principles of the Open Source in all aspects including but not limited to the ideas, algorithms, internal and external design, mechanical, electronical and software staff. It is intended to include latest science, technology and art achievements with a special respect to an advanced learning process appropriate for any person age, interests and profession.
Adroid the project is all about 'Learn by Doing' and aims to perfect your brain and hands using the latest science, technology and art achievements.
Adroid is not only a platform but it is also a continuous process intended to accumulate all gained knowledge and experience by all participants in S.T.E.A.M. the educational processes using it. A special relational multi-dimensional knowledge base and tools will be created and updated continuously to help the learning and teaching processes. On the other hand Adroid can be used by artists, scientists and engineers to reach better results faster.
The Open S.T.E.A.M. is an idea directly related to a platform for multidisciplinary projects in scope, with the only possible process being the learning through the active participation of the parties in their implementation. In this line of thought, the parties targeted in the process are equal in terms of rights and obligations, with often changing roles as students and teachers.
Therefore, the following topics are outlined in the Adroid project as a beginning:
- Development of AI based "Learn by Doing" S.T.E.A.M. process, knowledge base and instrumentation,
- Speech synthesis and recognition for human like communicating robots optionally based on AI,
- Emotional behavior through animation on the built-in robot display optionally based on AI,
- Active Ball Joint Mechanism incl. 3D absolute positioning system for head movement,
- Distributed, multi-process/thread/core control system based on uROS and ROS 2,
- Advanced stereo and panorama robot vision system with low latency and ePTZ,
- Body transformation based on a set of strength and positioning sensors,
- Development of liquid multi-color jet system for painting robots,
- Migration from RP2040 to RP2350A(B) MCUs etc.
The above list will be updated continuously, so any new ideas are welcome.
The "open source way" is based on key principles of open exchange, collaborative participation, rapid prototyping, transparency, meritocracy, and community-oriented development. In the beginning, the "open source" referred to computer programs in which the source code is available to the general public for use or modification of the original design. Later on, this way of thinking spread to almost all aspects of human life and was also recognized by the businesses. Computer hardware, electronic, mechanical, etc. designs, the works of art, the musical compositions and their performances, and many others were also influenced. Finally, OPENNESS became the only real answer to the madness of globalization.
- "Keep it as simple as possible" is essential for achieving the best results in the most effective way.
- Collaboration and communication are mandatory for the effective implementation of the training as the main goal.
- To work alone and as a teammate, to give and receive, to understand and explain at the same time, is essential in any case.
- Intensive use of the third-party expertise makes everyone a better expert, so use what others have already done to the maximum.
- The best way to constantly develop yourself is by using your own mind and hands to make improvements to what has already been achieved.
The selection of the hardware and software suitable for the project is based on the following criteria:
- Professional, technical and technological grade - the best products in their field are preferred.
- Accessibility, longevity, popularity and costs - the priority of the listed criteria is in descending order.
- Size and professionalism of the supporting community - a bigger and more responsive community of professionals is preferable.
- Openness and depth of the hardware and software support - open source software is a must, while it is good to have for the hardware.
Assessment of the products is based on a wide investigation, own tests and precise analysis. The test results are public and a subject of discussion. If significant flaws are discovered in the choice made, it will be subject to re-evaluation. When new products with better qualities appear, they can be recognized as alternative options.
- Laser-cut plastic materials, custom or prototyping PCBs for the supporting flat mechanical details and electronic components.
- 3D printing of unified mechanical details using appropriate materials like ABS, PLA, PETG, nylon, rubber, resin, etc.
- Manual drilling and screwing of the mechanical details and fastening with spacers of the electronic components.
- Using of bolts, screws, and nuts for joining all mechanical details and electronic components together.
- Soldering, crimping and interconnecting with cables and connectors of the electronic components.
In the development and testing phases, additional connections to external equipment such as power supplies, Ethernet hubs, Internet routers, monitors, keyboards, mice, etc. may be desired, which may require specific knowledge and skills. Some advanced skills like measuring with multimeter, oscilloscope, analyzer etc. may be needed when certain problems occur.
Laser-cut and 3D-printed details require 2D and 3D CAD/CAM design skills. The design and ordering for the fabrication of PCBs require specific knowledge and skills. For the production of the details with laser cutting and 3D printing, specific equipment and skills to work with it are required.
- Software design requires a wide set of theoretical knowledge and practical skills.
- Programming and testing require the ability to use a wide variety of software products and tools.
- The languages chosen for development and software implementation are C/C++, JavaScript, and Python.
- The operating systems chosen for development and software implementation are FreeRTOS for MCU and Linux for SBC.
- The main software architecture chosen is a distributed, multi-process/thread/core system based on uROS and ROS 2.
- The main communication technology chosen are web sockets and the publish-subscribe model.
- Schematic of motor drivers for driving wheels motors like auxiliary geared stepper motors;
- Unification of the motor control based on RPi Pico PIO algorithm by Van Hunter Adams;
- Modifying of 3D printed driving wheels to use both O-rings and silicone/rubber tires like in Pololu wheels;
- Unification of sets of motor pairs for driving wheels, head and body movement, including appropriate sensors;
- Adding of distance, line following and edge sensors to the driving wheels' setup;
- Adding of a pair of hall sensors for head movement for controlling of end and middle positions;
- Change from a single to a pair of auxiliary geared stepper motors for body movement (two-arm model);
- Migration from free wheel ball bearing to nylon pulley with bearing for arms;
- Adding of a pair of hall and PCB made strain gauge sensors for body movement by arms;
- Development of a PCB with arm sensors, electronics and geared stepper motors driver;
- Selecting an appropriate communication interface for both the RPi Pico MCUs and the RPi 5 board;
- Development and prototyping of appropriate printed circuits boards;
- Revising of chosen PRi 5 UPS power supply module;
- Investigation of the possibility to use a liquid based true color printing system.
- Splitting of algorithms for deeply embedded applications for dual-core RPi Pico MCUs;
- Integration of uROS and ROS 2 systems into RPi Pico and RPi 5 firmware;
- Defining of appropriate configuration and command infrastructure;
- Implementation of appropriate control algorithms and information structure;
- Development of interactive user interface based Web Sockets ;
- Development of a task based interface for high level robot control.
Adding one more RPI Pico board, a multichannel 100 Msps Logic Analyzer and/or 500Ksps Digital Oscilloscope can be embedded in Adroid hardware. A better performance in measurement can be reached by using RPi Pico 2 or some other board with better analog features. Logic Analyzer can be enhanced by adding protocol analyzers. All these features can be used for both development and learning purposes.
Using the idea of an active ball joint mechanism in combination with the motor control based on the RPi Pico PIO algorithm proposed by Van Hunter Adams will make head movement functionality extremely efficient.
The absolute positioning can be based on the measurement and the processing of the 3 spatial components of the magnetic flux density vector (i.e. BX, BY and BZ). Melexis has a long list of 2D and 3D sensing devices, like the one shown in the picture below.
The ability to transform the robot from four-wheeled (2 driving and 2 auxiliary wheels) to two-wheeled balancing variant can be realized by adding auxiliary wheels to the robot arms. Some sensors, like an absolute positioning rotational sensor (360 degrees) and a strain gauge sensor to measure the reaction force, will help to enlarge precision of the body movement.
Using an alternative to pen painting technology will give you the freedom to use multiple colors (cyan, magenta, yellow, black and white) and to paint on both black and white surfaces. The use of the CMYK color model will make it possible to paint even true color pictures. Different methods to atomize liquid paint, like air (airbrushes), ultrasonic, electrostatic, etc., can be assessed and/or tested to find the best painting solution for the Adroid robots.
Alternatives to be assessed and tested:
- Captain (rope) gear for body movement using two arms schematics
- Strain gauge sensor made as PCB including all electronic staff
- Absolute positioning rotational sensor (360 degree) for head and arms
Three real Adroid prototypes (the Small, the Tall and the Wide) are shown in the picture below. It was chosen to use NEMA 42HB34 stepper motors for the main robot movement and 28BYJ-48 geared stepper motors as auxiliary with ULN2003 drivers for body and head movement. The body movement is based on a single stepper motor, belt gear based on 16- and 60-tooth GT2 pulleys, and an arm with a pair of ball bearing free wheels on springs. Two of them (the Tall and the Wide) are running on their RPi 5 boards Linux OS and a dual camera streaming server with ePTZ control written on Python. The RPi 5 boards are powered by 3S Li-Po UPS modules. The head movement (pan only) of these two prototypes is based on a single auxiliary geared stepper motor. The Small Adroid prototype (low budget variant) contains three RPi Pico MCUs and ULN2003 drivers for stepper motor control, two MCUs with a 2 MP OV2640 SPI camera and microphone each, and one for the server staff based on the Seeed Studio XIAO ESP32S3 Sense modules. All these low consumption modules are extremely small (21mm x 17,5mm) and have 8MB RAM, 8MB of flash, 2.4GHz Wi-Fi, BLE 5.0, a wide set of interfaces, and can be programmed via their USB-C конектор.
Van Hunter Adams' algorithm for the RPi Pico PIO is downloaded, built and tested on the head and body movement auxiliary geared stepper motors in the Small Adroid prototype. For the building of the firmware, Linux OS on the RPi 5 board at the Wide Adroid prototype is used. The complete set of the RPi Pico C/C++ SDK and all the required libraries and tools to build and flash it on the target are also installed. The video shows synchronized body and head movements controlled by the RPi Pico PIO. The animation with 46.5 fps visible on the 3.2" TFT SPI display is generated on a separate overclocked at 250 MHz RPi Pico MCU using the TFT_eSPI library and transferred over SPI at 62.5 MHz.
IMG_1380.webm
The next video is a compilation of a user interface based Web Sockets and remote terminals running corresponding server staff and shows the real time ePTZ control of both cameras. In addition, the almost real time video streaming and its low latency are observable thanks to embedded and synchronized clocks running at both server and user ends.
15.05.2024_11.38.21_REC.mp4
In the picture below is shown the second generation of 3D printed unified details, including own Pololu like driving wheel with two O-rings, hub and 60-tooth GT2 pulley. It is planned instead of a single motor with belt gear and a single arm with a pair of free ball bearing wheels for body movement to use a dual arm scheme with a directly coupled geared stepper motor, a nylon pulley with bearing, a PCB made strain gauge, and a pair of hall sensors for each arm. On the photo is shown a new prototype variant with two body movement auxiliary geared stepper motors;
The components shown on the picture are before the second generation of 3D printed unified details and include Pololu wheels and belt geared body movement scheme staff.
The simulation web application was developed in the very beginning and did not reflect later modifications made in prototyping process.
Some of the links include staff from different projects, investigations and tests that could be used in the current development process.
- A simple web application to test different design configurations of STEAM robots
- Dual camera, near-real-time, h.264 video streamer from RPi 5 to a bowser
- Own implementation of open source intelligent robot - startup design notes (PDF)
- Unified ILI9341 Graphic Test
- Unified ili9340 Graphic Test plus
- DrawWithDMA
- Unified Multicore Low Power IoT Platform (PDF)
- Open S.T.E.A.M. initiative (PDFs): En, Bg