Thursday, August 14, 2008

Fourth Day With LEGO Mindstorm

Hey! In the lecture this morning we were introduced to robots vision. Vision is the way we know the world and it's also a powerful way to sense the world. We first heard something about the human visual system. Then we got to know different kind of camera models, technologies and color models. We also learned how to obtain dense depth marks.

Now we are again working on our TriBot. Trying to make him fit for the practical assignment.

Yeah! The first practical task is done. We had to measure the distance from the start line to the box. For the detailed description of the task read the post from yesterday. You can see on the video how our robot behaves:



Actually we achieved a measurement error of 4 cm. (196 cm instead of 200 cm)

Now we've programmed the second task. Our robot should open the garage door and enter the garage, but will it work? Let's see:



Also the third task is done. We need to move the box to go through both entries. Watch it :




We also found a solution for assignment 4. You can see it in the video below.



Actually we've also written a programm for assignment 5, but didn't have enough time to optimize it.

We also prepared our presentation for tomorrow morning. We are going to talk about the 5 practical assignments and how we tried to solve them. Tomorrow afternoon we we'll have our challenge. So we're going to give our BEST and present our super robot.


Wednesday, August 13, 2008

Third Day With LEGO Mindstorm

In today's lecture we were introduced to Department of Electrical Engineering at DTU. Then different types of robots were presented. We heard about servicve robots, industrial robots, entertainment robots and some special robots which can be used on mars or under water...
We got to know 3 current projects beyond robotics EU 6FP:

In the second part we saw a really interesting vodeo of Sebastian Thruns presentation: "Winning the DARPA Grand Challenge". You can find the video following this link: http://video.google.com/videoplay?docid=8594517128412883394

We also got a short introduction to the DTU RoboCup and the Robo Cup soccer.

In this video you will see our new friend AIBO:



Our task for today is to think about which robots we would like to build and which robots we would like to own.



Anil: In future robots will be more agile so it will be easier to pass the human motions to robots. When possible I want to create a robot that can follow and copy my moves so it will be fun to dance with it or fight with it when so bored. Also people can share their database of the moves they taught to robots. I find the robot really impressive that can kill the cells producing cancer. The nano robots have much uses like that.



Kitty: For me the Big Dog is a really impressiv robot ( http://www.youtube.com/watch?v=b2bExqhhWRI). His stability and the way he's able to walk is really interesting. But what I prefer to own is some kind of cleaning robot which is also able to tidy up a room before cleaning it. I would find it very interesting to built a robot which needs a quite good visual sensor and uses pattern recognicion software, because I'm rather interested in computer vision.



Paloma: in my case I would like to be able to build robots that could substitute parts of human body, even intern organs that could be controlled just with the brain if necessary; so people could live a normal life. The robot I would like to own is a hole domotic house so I could control everything even from the outside with just one small screen.

Tamas: For me are these robots the most interresting (robots with artifical intelligent):
http://www.youtube.com/watch?v=W1czBcnX1Ww&feature=related
http://www.youtube.com/watch?v=JYptK21vAgQ&feature=related
I think humanoid robots are entertaining (and also AIBO) but I would better build industrial robots.

Well here you can see Anil and Tamas programming our TriBot how to follow a black line:


Tuesday, August 12, 2008

Second Day With LEGO Mindstorm

Today's lesson was about sensors for mobile robots. The sensors are needed for position measurements, detection of obstacles and measurements of internal states. We got a short introduction in odometry, encoders and kinematics of mobile robots. We also heard about reflectance sensors and obstacle sensors working with infrared and laser scanners. Professor Nils Andersen showed us videos of various robotors and GPS systems like the traktor HAKO and we got to know the cleaning robot "Kaercher RC 3000".

Here you can see the cleaning robot at work:



Today we also got two homework assignements.
The first one is about the ultrasound sensor:
  • Test the sensor by taking measurements from 5 to 30 cm with 1 cm resolution and measurements from 30 to 150 cm with 5 cm resolution using a cardboard box as target.
  • Take 5 measurements at each distance.
  • Make a plot of actual versus measured distance.

To prepare for the measurements we took a ruler and a card box. We used the biggest side of this box for our experiment.
The following table is showing the results of the first set of measurements (5 to 30 cm, 1 cm resolution).

Here you can see the measures in a graphic chart.

The absolut error is shown in this picture. It's the difference of the real distance and the average of the measured distance.

Here you can see the relativ error of our measurements.

To summerize our results, we can say that the biggest error occured in the closest range. The optimal result was achieved after 21 cm.

Here you can see the results of the second set of measurements (30 to 150 cm, 5 cm resolution).
This table shows the numerical results:


Here you can see the graphic referring to the table above:
The absolute error is shown in this figure: In this picture the relative error of our second set of measurements is shown:

Comparing to the first set of measures, we can see that in the second case there is nearly no big error occuring. This lets us conclude that in farther distances the measurements are more precise.

Execise two is about odometry:

  • Calculate cm for your tribot
  • Measure the distance between the wheels b
  • Measure cm by making the robot go forward 2m
  • Try to check b by calculating n for a 90 degree turn and compare with what the robot actually does.
  • Try to calibrate the odometry by long straight line movements and multiple turns around itself.

For the first point we used the following formular:
c_m = Pi*D/C
Where D = 56mm is the diameter of the wheels and C = 360 degrees.
Hence c_m = 3.14159*56/360 = 0.4887 mm/degree.

Next we measured the distance between the wheels: b = 12 cm.


We programmed the TriBot to go for 11.368 turns of wheel which should be exactly 2m. Trying this out, we got 1.97m as a result. So there's a difference of 30mm.

We already got the task for the final competition. There are five competition assignments

1.) Find and Measure Distance to Box

2.) Open Door and go into Garage


3.) The Pushbox Obstacle4.) The Golf Course
5.) The Odometry Test

Monday, August 11, 2008

First Day With LEGO Mindstorm



Today it was the first time in our life getting in contact with the LEGO mindstorm module.
It started with the first lecture of Luis Sánchez. We got a short introduction to the NXT-G environment which we are going to use during this week.
We got to know the main components of a mindstorm roboter:
  • NXT-brik: intelligence
  • sensors: 4 inlets (1-4)
  • motors: for modifying the invironment, inlets A-C

In the NXT-G Editor we find the programming area. The programming language is a graphical one, so it´s not necessary to write long code sentences.

So we started the LEGO MINDSTORM NXT software and used the tutorial for building our TriBot. It is a vehicle that listens to our commands. The main components are:

  • Driving Base: consisting of 3 wheels
  • Bumber: a touch sensor that stops the robot in front of the ball
  • Grabber: two arms used to grab a ball
  • Sound Control: clapping makes the TriBot grab the ball
  • Light Sensor: the TriBot stops and opens his arms when reaching a black line on the floor
  • Locate Object: to recognise the blue ball and move towards it


When the TriBot was built, we programmed the software according to the tutorial. Then we linked the PC with the TriBot and loaded the software. Then we were ready to try our robot for the first time. We put the TriBot and the blue ball onto the test pad and pressed start on the brick. Our robot began to move straight ahead and when it reached the ball the stick in front of the touch sensor touched this sensor and the TriBot stopped. He grapped the ball, made a 180 degree turn and moved until recognising a black line with the light sensor. Then the robot opened his arms and released the ball. And we were happy!!!


For further information and other tutorials see this links:

So, just watch this video of our great TriBot:


Our next task was to modify the continuous scanning program to show angular position and distance for each measurement on the screen of the mindstorm brick. Here are some screenshots of our program:



This block is responsible for displaying the angle:


The block we used for displaying the distance: