I'm going to be presented by two amazing researchers, Iroclis and Christos.
Good morning.
Thank you for the introduction.
Thank you for being here and attending our presentation.
So I'm Iroclis Varlamis and here is Christos Cronis.
We come from Harakopio University but here we are also representing the Open Technology
Alliance, the Greek Open Technology Alliance for open source software.
So we will present today FOSBOT which is a project that started a couple of years ago
in terms of the Google Summer Code as an open design, an open source software robot and
gradually it evolved to what you see here which is a more concrete, let's say robot,
a more concrete design that is specifically targeted to educators in our educational levels.
So together with me, I have Christos and I will give the floor to Christos Cronis who
is the lead developer of the team of FOSBOT and also the designer of this robot.
So Christos, the floor is yours.
Thank you.
Hello, I'm Christos.
I would like first to introduce the team behind the FOSBOT.
Let's start with Mitzi, the supervisor of Professor Iroclis Varlamis who is the coordinator
of the project, me as the designer of the robot including the hardware and the software,
Eletherian Vanai who are front end and backend developers and past Google Summer Code contributors
of the project, Dimitris and Yoros are backend developers and assemblers of the physical robot
and finally Manusos who is backend developer and also the developer of the FOSBOT simulator.
Now so this is the FOSBOT, also we have a physical version of the robot in the table.
Let's start with an overview of the hardware and design aspects of the FOSBOT.
On the front side of the robot, we have a multi-corner RGB LED on the top left, photo
resistor on the top right and ultrasonic sensor in the middle.
The entire body of the robot is 3D printable in any FDM printer with bed size 220 by 220
millimeters.
The design is customizable and easy to assembly.
At the bottom of the robot, there are three IR optical sensors suitable for line following
or detection application.
The robot moves based on two DC motors and a free roller on the backside.
This motor has odometers to measure the movement of the robot and there is also a three axis
accelerometer and gyroscope sensor inside.
At the back of the robot, there is a speaker and an off switch, a charging port and the
robot powered by three lithium ion rechargeable batteries.
On the top of the robot, there are some unique features, a pulling component in the backside
of the robot.
That component gives the opportunity to attach a small object, let's say using a rope, in
order to measure how the extra weight affects the movement of the robot.
Also we have a large detachable cover, it's the white circular piece on the top.
That component is a Lego brick compatible and also have a hole in the outside.
This hole drives to the bottom of the robot and allowing the marker to be attached for
programmatic drawing.
Now let's summarize the key features from the hardware or design aspects.
The robot is 3D readable and offers repeatability and customization, can be designed to be
used with common electronics.
In the current version, the brain of the robot is based on the Raspberry Pi, but we already
see some variation of the robot with Arduino or MicroBit inside.
It's open source and not open design, of course, and it comes in a low cost around 90 to 120
euros.
In the slide you can see our lab on Harcobio University and some pictures from, let's say
the assembly line of the robot, from the physical robot.
Next we have some pictures from different assembly phases of the robot.
Now we'll speak about the software.
We have created a custom platform built in the robot with three modes, the Gitter-Carden
mode, the elementary school mode and the high school or advanced mode.
The Gitter-Carden mode features a friendly UI with card blocks based on Google's Blockly.
Additionally, it's expandable with the option to add new cards to execute Python or Blockly
scripts.
For the elementary school, we have a custom user interface once again based on a more
complicated Google's Blockly version that uses custom code blocks for all the sensors
of the robot.
The experience is similar to Scratch and that makes the robot to be easy to interact, that
offers easy interaction with the robot.
Finally, we have the high school or advanced mode.
This mode based on Jupyter notebooks and the native Python language.
This mode is under construction but will be available soon.
Now let's take a look to the platform UI.
This is the platform's home screen.
That home screen allows the creation of multiple projects.
Also we have the ability to import or export or share a project between the users.
Also using the little code in the top right, we can modify the behaviors on some blocks
such as the default distance, let's say for one-step movement.
The icon with the three ABC cubes in the lower right offers access to the kindergarten mode.
Now we see the kindergarten mode.
The kindergarten mode utilizes a simplified version of Blockly using card-based blocks
for basic actions.
In the bottom right corners, we can see an example of how this mode can be used in classroom
setting.
In this example, we are trying to teach students the numbers through a gridded carpet with
numbers on it.
In the elementary school mode, we have, as already said, a fully custom version of Blockly.
On the left side, we have different categories of blocks, including mathematics, programming,
movement and sensing.
On the right, there are some control buttons and a terminal window for printing real-time
measurements and messages.
Now, for the advanced mode.
The advanced mode of the robot is based in Jupyter.
The user can directly program the robot using native Python language, combined with our
custom robot library, and the code can be combined with text and images.
Then the whole page can be exported, including the result of the program execution, as an
experimental report in the class.
Now for the action.
This is the line-following program that is written using the Blockly.
It's a very common task for students when we teach them robotics.
We have some videos to present you, on the left you see a video of the robot line-following
a line and stopping when it detects an obstacle in front of it.
On the right we have a video on the robot running the same code, but this time following
the line in the loop.
When a colleague puts her hand in front of the robot, it stops and waits until no obstacle
is detected.
Additionally, the physical robot, we also have a simulated environment.
We have developed a library and a custom simulation environment for our robot using
Coppelia SIM.
This was a crucial step for us because it eliminates the need for a physical robot,
and that means that the experimentation with the robot comes in no cost.
Our support platform works seamlessly in both the physical and the simulated environment,
allowing the project to run identically in either setting.
On the left you can see a video of a simple example of our platform combined with the
simulator.
Here is more examples of our virtual environment.
Those examples created for different teaching scenarios, and also we have a video in the
top right that demonstrates a line-following project inside the simulator.
We are trying to constantly improve the robot, and we have received strong interest from
our university students.
We have already students creating educational material and developing new features such
as the real-time graphs, and soon we will hope to integrate the new features to the
main platform.
Now let's dive deeper into the workings of our platform.
Firstly, we have created a custom library to simplify the process of controlling the
electronic parts of the robot, and that library is based on my 2019 Google Summer of Code
contribution.
The platform was built using Flask, Socket I.O., Python, Blockly, and can be deployed
to the robot via docking containers for easy distribution and maintenance.
The robot, after powering up, tried to connect to a non-Wi-Fi, and if that is not possible,
then the robot creates its own wireless access point.
The access to the platform can be gained through a user's preferred browser, such as Chromium,
and finally, all the necessary tools are already pre-installed inside the robot.
These allow a hassle-free experience, as the user never needs to install anything to their
computer.
In this slide, we present a brief overview of how users can access the multiple levels
of the robot.
The top level is designed for less experienced users, and is where the platform resides inside
multiple docked containers.
The access to this layer can be achieved through a web browser.
The second and third levels are designed for advanced users, with knowledge of Python
language and bus, and can be accessed through SSH.
Before concluding, I would like to present the future prospects for the robot and its
potential use in higher education.
In Heracopia University, we have already started to examine the potential of using the Fosbund
as a machine learning robotics platform by combining the custom high-level library, the
simulated environment, and the physical robot with advanced algorithms.
With this combination, the Fosbund, we believe, has the potential to be used in various ways,
for example, reinforcement learning.
Additionally, if attached to the robot some advanced sensors, such as cameras or LiDAR,
it can be used as a self-driving platform or a computer vision platform, whatever.
So that brings us to the end of our presentation.
I hope you enjoyed it.
Before closing, I want to add a couple of things to this excellent presentation of Christos.
First of all, I have to say that technology wouldn't be successful without content, first
of all, and without people.
So with the help of Open Technologies Alliance, we also managed to have a great group of educators,
primary and secondary education, that currently are creating, are developing educational activities
and educational content for teachers in Greece.
And they are currently running some seminars for Fosbund, and they are currently educating
them on programming and using Fosbund in their activities, in their teaching activities,
over 1,000 or almost 1,000 teachers around Greece.
So the benefit is that we have the virtual simulation environment for Fosbund, so they
can start working in the simulation environment, and then everything that they have created
there, they can directly apply it to Fosbund, they can print Fosbund, assemble it and use
it in the actual process.
Another thing that I would like to add to the higher education part of this presentation
of this work is that we are currently working with some colleagues in the university in
order to develop a short term curriculum, let's say one year curriculum with basic
IT courses such as data management courses, IoT programming, basic Python programming,
machine learning and AI as Christos said, in order to develop content that in most of
the activities will use Fosbund as its main demonstration platform.
So this is another effort that we are trying to do, we are working on at the moment, and
we hope that it will soon bring us some results.
And I would like to thank you once again for your attendance.