About four months ago, we were witnesses of amazing happening and also amazing marketing trick when robot Sophia received citizenship of Saudi Arabia. Sophia is created by AI developers and it has face and voice recognition technology, uses artificial intelligence and it’s able to imitate human gestures and facial expressions and answer on some simple questions and all that is beautifully packed behind face which is modeled with inspiration to look like Audrey Hepburn.
Why is that so good marketing trick?
Imagine group of people with good project but a lack of investments and on the other side group of investors that can help with finances and would like to be remembered in history. That is exactly what happened – Sophia’s developers got the certain fame so it could help them with fundraising for their project and Saudi Arabia will go down in history as a first country ever to give citizenship to a robot. A lot of people are not scientist or engineers and they love to see a show and suddenly – whole world is amazed with robots.
Generally speaking it was a good thing, because robotics is one of fields that are part of new technological revolution which will certainly push whole society further. As an engineering student, I had contact with robots and those maybe weren’t high-tech robots as a Sophia, but they were good for understanding some basic things. One of those robots is this little mobile robot called DaNI.
Hmm what is exactly mobile robot?
Mobile robots are able to move in their environment and they have big usage in real life, for example – hospitals are using them for moving materials, military and police use them when they need to defuse bomb or inspect new environment, they were sent even to Mars couple of times for exploring the surface. They can be manually controlled or autonomous, which means being capable to work in unknown environment, navigating themselves without supervision of a man.
Great example for autonomous robot is robotic vacuum cleaner which was made back in 1996 by Swedish company Electrolux. It was equipped with sensors and had simple algorithm: if it perceives dirt – suck, in other case - move and if it finds obstacle – move in another direction. It gained so much popularity that Electrolux became the world’s second largest appliance manufacturer and to this day remained at the top of the list next to companies like Samsung or Bosch.
What was my job here?
I tried to write an algorithm that will make this DaNi robot to follow an object anywhere, when spots it on distance about 20-40cm and if it gets too close to an object it needs to get back about 10cm and continue following.
This task is interesting, because similar principle can be further modified and used in development of autonomous vehicles and that industry is inevitable part of our future.
DaNi has frame with wheels, motor, ultrasonic sensor, processing unit and the algorithm was realized in software package LabView Robotics 2017.
Before every action, robot needs to “know” its position and a plan for next movement because during the action it can come up to numerous obstacles. General approach to path planning is an environment mapping and finding the shortest route between two spots. It gets information about environment via its ultrasonic sensor.
Wait, how does that ultrasonic sensor work?
Principle is to send ultrasonic waves to an obstacle and then to measure time until reflected waves receive to sensor. Distance to an obstacle then can be found using sound velocity and time of reflection.
To activate ultrasonic sensor in LabView, we need to create diagram like this:
It scans whole space around robot and helps in finding obstacles and then on the screen will be something like this:
For navigation it uses dead reckoning method – that is the process of calculating current position, using previously determined position.
Algorithm can be described through following phases:
- Wiring the robot with computer and initialization of Starter Kit Robotics package 2.0 in LabView Robotics.
-Initialization of data about obstacles which are already scanned via ultrasonic sensor in certain range of angles. - Computing the next angle for scanning.
- Finding the distance to an obstacle and deciding does it need to follow that object.
- Finding the best route for movement.
- Finding and applying the best robot velocity for safe movement (when robot needs to get back from an object, it must apply a negative velocity!)
- Starting an action.
Let’s take a look at a main program:
Yes, it looks chaotic and not understandable but it’s not so complicated, believe me. I won’t bother you with details but we need now to consider 3 case scenarios:
First case – Robot found an obstacle nearer than 10cm – It will move reverse, using negative velocity for y coordinate.
Second case – obstacle is between 10cm and 20cm from the robot – in this case robot won’t move and its velocity will be 0.
Third case – obstacle is between 20cm and 40cm – In this case robot scanned obstacle via its sensor and it will start moving toward an object. If it gets too close – it enters first case scenario.
Are you impatient to see the video?
Hope you enjoyed
Nikola
sources:
So something you could do is that you could make it so it only searches (moves the ultrasound sensor back and forth) when the target is no longer present and once it finds it it moves to it and follows. Not sure if what I am saying makes sense but it will make it use a little less processing power in the long run (built robots all through high school for competitions, processing power becomes important in those situations)
Just a thought.
I understand, it makes sense. I never thought about that, but if we have moving target, then it will lose some time to locate it. By constantly scanning in ±60 degrees like now, it keeps object always in sight so it have continuously following.
Bravo @nikolanikola! I enjoyed indeed!
Takvi momci kao što ste Vi ispunjavaju moje srce radošću.
Želim Vam mnogo uspeha u svakom poduhvatu, a ne sumnjam da će ih biti.
Hvala! Drago mi je da neko zaista cita i uziva u onome sto pisem :)
Super!
Hvala :)
Hi @nikolanikola! I can understand how tough it is to maintaining the best route, specially with the maintenance of the circuitry.. Congrats!
Cheers.. :)
Thanks bro! Yeah, but the toughest thing actually was just realizing how to begin project :D
:D
Bravo, Nikola! Ja studiram informatiku na Matematickom fakultetu i uvek mi je bilo zao sto od svih oblasti informatike najmanje ucimo o robotici, po mom misljenju jednoj od zanimljivijih i perspektivnijih oblasti. Odlican projekat, zaista!
Hvala Tamara :) Robotika je jedno vreme stagnirala malo i zbog "nerazvijenosti" softverskog dela, ali kako su danas VI i masinsko ucenje u ekspanziji, to je odlicna podloga da se krene i sa daljim razvijanjem robotike. Mislim da njeno vreme tek dolazi.
Great post, you rally gave me some insights how those robots work.
P.S. Lijepo je vidjeti da ima još ljudi na steemit s "našeg područja" :)
Thanks!
Moramo da radimo i malo na popularizaciji stimita kod nas :)
This is a well design project @nikolanikola.
But how does the robot know the object to follow?
Did you mean which one object to follow ? Well initial assumption was that there is only one moving object in the environment.
Робот није комплетан без усисивача, @nikolanikola :)
Одличан почетак!
Hvala :)
Congratulations @nikolanikola! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of comments
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Do not miss the last announcement from @steemitboard!
Nice work:). It can follow me and carry my bags as I walk back from the supermarket.