Tip:
Highlight text to annotate it
X
The goal of this project is to provide a tool for teachers
which allow them to explain to children
the issues related to the tele-operation of a rover
which would be on Mars
The main difficulties are the transmission delay,
the fact that we are not right next to the rover
so we can't replace it in the right track if it crashes.
We won't be able to help it.
We had to ask ourselves some questions :
How can we send the right commands to the rover?
How can we ensure that the commands have been correctly executed?
What will be the data received from the rover...
and how will we use these data?
We tried to keep in mind the problem of how the teachers can work with children
The first point is to bring out the issues
which are caused by the time-latency
and the fact that it is possible to crash the rover
and not being able to recover it
We talked with the challenge proposer and she said that...
the problem is that she has a relatively complex rover
so she needs to be present during the workshops
and she cannot just send the instructions by mail to a distant school
so she would like an out-of-the box solution that teachers could use directly without installing anything
This was an important point of the challenge
So this ability to figure out a problem in an easy way
as much for the teachers than for the children
will allow them to experiment the system by their own.
In the context of a classroom,
it will be possible to give a tablet to the children
so they will connect directly to the rover
the rover will send them back an interface
with which it will be possible to interact directly.
They will figure out the issues related to distant interactions
How does our system work?
We used a little module
which brings a webserver
which had been programmed to interact with the Lego Brick
We have a program in the Lego Brick
and another program in the webserver
and the both can communicate together
so we have a complete interaction loop
between the interface and the rover.
The user device can be a laptop, a tablet or even a smartphone
which allow the user to get connected directly on the webserver through the WiFi network
the server will then manage the rover
the rover can understand orders and answering to it
So, we have two programs :
one for the rover and one for the server
This picture shows the NXT2WiFi card
I will now talk about the interface
we wanted to keep it simple
and it was a request from the challenge proposer
This interface allows us to remote control the rover
We can see here the sensors values
for example : does the contact sensor is activated?
we can see the color seen by the color sensor
and the distance to the obstacle measured by the ultra sound sensor
You can see these sensors just here
The ultra sound sensor works just like a bat
here is the color sensor
and here is the pression sensor
It activates the color detection when it is pressed
which will allow us to test a sample
so these sensors allow us to test the distance of an obstacle and its color
All is completely autonomous
and works just with a battery
The interface we developed is embedded in the server which can be seen here
As you can see here, the interface can be used on an ipad
but I will perform the demonstration on the computer so everyone can see
so here is the interface
It's a little bit long to load because the NXT2WiFi card is like a raspberry;
If i press the "move forward" button
the rover should do it
I asked him to stop and we can see that there is already a time latency
caused by the WiFi network
The time latency issue is the reason why the rover...
is not driven from earth with just a joystick...
and can be taken into account with this control
so if i press the "move backward" button
there is a time latency
In the "ouputs" part of the interface we can find our 3 sensors
the contact sensor
when it is activated, you can read after delay on the interface
that the rover is in contact with something
The color sensor is not yet fully implemented
and the ultra sound sensor works properly
The sensors sensitivity can be set here
and here you can define the strategy in case of an obstacle
What we wanted to show
was that if we want to avoid an obstacle
we need to set a rule like : if you see an obstacle then stop
It's a first possible strategy
but then the rover has to wait
until we give him another order so we loose some time
Another strategy would be : turn with an angle
that we can set with this control
and then move forward
- "One minute left!" - Ok, I will switch to the next slide
which is the last one.
Does someone wants to add anything?
We had great fun!
One more thing : the rover can tweet
If we set a really long time latency
the rover can send its state on twitter, like "I finished my job, I'm now waiting for another command"
Do you have any question?
If I want to build my own rover, Will I be able to find the building instructions on the internet?
It's already on the internet!
where?
http://spaceappschallenge.org/project/nxtspaceapps/
Another question?
Why is it not possible to set the real value of Mars time latency?
The workshops are 1:30 hour long
so if you set a 1 week latency, it becomes really hard to visualize anything
but it is possible to replace the slider with a textbox where you can set the time latency of your choice
one hour, one year, 20 years?
In facts, it becomes really arduous to control the rover with just a 3s time latency
we can visualize the issues, so there is not really a use to set a longer time.
Video by @edok_lotosov