torsdag den 31. maj 2012

Project - Meeting 6

Date: 31-05-2012
Duration of activity: 5 hours
Group members participating: Jeppe, Thomas and Stefan.

Goal

  • Complete building the track.
  • Make a sketch of the sub tasks that the robots must solve.
  • Start programming the robots
  • Revise the project plan.

Plan

Thomas and Stefan will go to the Chomsky lab and look for materials to build the tower and the bridge for the track. We have changed the layout of the track slightly and will provide a new sketch of this.
Jeppe will stay behind and update some of the project meeting notes.

As for the programming part, we wil have to revisit how to make the NXT's communicate using Bluetooth. The first task is to make the robots stack on top of each other without using the "hardcoding" approach, but rather make the robots communicate with each other.
We also need to add some kind of sensor to properly detect when one robot is placed properly on top of the other.

Results

In this section we will present the solutions to the tasks specified in the Goal section.

The Track

The tower and the bridge will be combined in one piece. The bowl will be the standard 9797 lego box.
The layout of the track now looks as follows:




The combined bridge and tower is depicted below:
The idea is to have the object of interest placed on the board on top. Then after fetching it, the robots must all go under the bridge.


Adjusting The Robots

Stefan mounted some touch sensors on the stacking robots. The ides is to have the stacking robots send a feedback signal to the robot currently climbing on top of it that is is now properly placed on the top and thus should stop.

Programming The Robots

Thomas started programming the Bluetooth communication software. To start with we just want the robots to send and receive some numbers. Thomas got the idea to get a fourth NXT to use for Bluetooth communication with the other NXT devices, since we had some problems getting the computer communicate directly with them.
As for the programming part we need to specify which commands a robot should be able to send to another robot. In order to get an overview of this, we decided to make a sketch of all the steps of the track to be completed.


Sketch of Subtasks To Complete

Below is an overview of all the subtasks that are to be handled.











From this overview, we derived the basic commands to be:

  • Stop, send by the lower robot to the robot on top of it, to indicate that the top robot must stop moving forward.
  • Move down, send by the lower robot to the robot on top of it, when the lower robot is at a position where the top robot can safely crawl down.
  • Grabbing complete, send by the grabbing robot to the middle robot below, when the grabbing robot has obtained the object on top of the tower. Makes the middle robot start moving down from the bottom robot.
This yelds the following commands:

  • STOP_STACKING, tells the Stacking robot to stop moving when it climbs on top of the other stacking robot.
  • STOP_GRABBER, tells the Grabbing robot to stop moving when it climbs on top of the stacking robot.
  • MOVE_DOWN_STACKING, tells the middle robot to climb down from the bottom robot. 
  • MOVE_DOWN_GRABBER, tells the Grabber robot to start moving down when the middle robot is back down.

Revised project plan


Date Task
31-05
  • Get materials for the bridge and tower cut off in the correct proportions.
  • Sketch a overview of the sub tasks to be completed.
  • Start programming the bluetooth communication for the robots.
  • Buy black tape on the way home.
04-06
  • Mounting black line on track.
  • Make the robots stack on top of each other using Bluetooth and a feedback sensor.
  • Start making all the robots follow the black line on the track to the basket.
  • The track should now be complete.
07-06 Today we want to be able to see the following thins work:
  • Make them climb down from the stack.
  • Make the grabbing robot drive off the two stacking robots below and grab the object on top of the tower.
  • Make all the robots follow the black line on the track to the basket.
  • Make all the robots climb each other again and make the grabber robot drop the ball in the basket.
  • All this should happen using feedback sensors and bluetooth.
11-06
  • Putting together all the subtasks of lastweek and make the three robots complete the whole track.
  • Getting ready for the presentation on the 14th.
13-06
  • Testing that everything works for the presentation.
14-06
  • Presentation of project at 09.00

Follow Black Line Strategy

We had a discussion on how the black line should be like in order for the robots to follow it with out the robots ending up in a non-aligned position when they are supposed to climb on top of each other.
That is, how do we make sure that the robots are completely aligned when they are to start climbing on top of each other. We will work with this next time we meet.

Conclusion

We now have a track that is more or less complete. We got the basic bluetooth code working and from the sketch of sub tasks, we got a outline of the challenges related to the programming.
Finally we also discussed how the robots will navigate on the black line and how to make sure that they are aligned for crawling on top of each other after following the black line.

Project - Meeting 5



Date: 28-05-2012
Duration of activity: 3 hours
Group members participating: Jeppe

Goal

  • Complete building the three robots so we can place them on the track and start programming.
  • Extend the base track.

Plan

Complete building the two stacking robots, unpack the new NXT box and use that for the 2nd stacking robot.
Find another base plate, get the paint and paint the new base part white.

Results


Stefan had experimented with a robot with plastic conveyor belts (Shown below).

Unfortunately these belts did not have enough friction to be able to climb up the slide of the other robot. Thus we would either have to mount robber on the two slides or change the wheels of the robot.

After a bit of experimenting with a new design we came up with a new model that is using the rubber wheels:

The slide should make it possible for an other robot to drive on top of the robot as seen in the video below. The robots in the video are hard-coded, so the video only shows it possible to stack the robots. We now need to figure out a way to do it in general.




We got the 2nd base painted white and now we are ready to build the rest of the track:



Conclusion

The three robots are now completed. We have seen that the most vital part of the robots work, namely that they are able to stack on top of each other. We are now ready to start programming the robots for the track. 
Finally we are also ready for building the rest of the track.

fredag den 25. maj 2012

Project - Meeting 4


Date: 24-05-2012
Attendants: Jeppe, Thomas & Stefan
Duration: 4 hours




Goal


  • Continue designing and building both types of robots
  • Plan construction of track

Plan

Jeppe will be working on the Grabber robot.  Stefan will continue the work on the stacking robot, Thomas will be documenting the process.
We will have to acquire a base track and some white paint for it.

Results

Stacking robot:
We decided to try experiments with long tracks mounted on the robot before redesigning the robot with shorter tracks. It is interesting to see if we can construct the ramps so the robot can climb them even though the tracks has low friction or maybe change the tracks in some way in order to improve their friction. Our stacking robot without the ramp attached to is depicted below.



Our first try to create a ramp that the robot had to climb went as follows:


As is evident from the video the tracks do not have enough friction when the robot is only on the ramp. We discussed a few solutions to this. In order to improve friction we would like to add rubber to the ramp or the tracks as we know rubber has better friction. It is not that easy to change the tracks as the rubber tracks are shorter than what we currently use so we decided to change the ramp so that it has two rows of rubber on each side of the ramp. This gives rise to the following trial video:


The robot can now climb the ramp, but it needs to be very precise when driving up the ramp. In order to make it easier for the robot we have changed the ramp so that it has a railing on each side. It is now easier for the robot as can be observed on the following video:


Grapper robot:
We changed the design of the robot so it uses short rubber tracks. This is in order to improve its friction.





Track construction:
We have painted the bottom of the track white today.


For the track, we still need a black line which the robots can use to navigate after, a tower, a bridge and a basket. Before we can do that the paint will have to dry first.

Conclusion

The grabbing robot is now working as it should. We still need to work on the design of the stacking robot - or at least build a copy of the one that we have now since we will need two of those robots.
The base of the track is painted and we are ready to mount the rest of the track on the base.



tirsdag den 22. maj 2012

Project - Meeting 3


Date: 22-05-2012
Attendants: Jeppe, Thomas & Stefan
Duration: 2 hours


Goal


  • Design and build the stacking robot
  • Design and build the gripping robot

Plan

  • We will be discussing the layout of the two types of robos once again and change some details from last time we met.
  • Modify the already existing design.

Results

Stacking robot discussion:
The robot design requires us to use very long tracks which Lego unfortunately does not produce. An alternative could be to turn the motors around, which would make the robot shorter and possibly able to support the shorter tracks.

We are considering putting tires underneath the robot side by side with the tracks in order to assist it when driving up the ramp. This is because we are worried that there will not be enough friction when only using tracks.

Grapping robot discussion:
We discussed the possible solutions and difficulties with gripping an element. It was important for us that the gripping mechanism on the robot should be very simple and only require one motor to grip and release. The item to be gripped should also be easy to pick up and not require the robot to spend a lot of processing power to be in the right position in order to pick it up. After our discussion we came up with the following design:




Conclusion

We did not settle on a final design for the robots, but got a good discussion going on the requirements for the robots. We were experimenting with the traction of the slide on the Stacking robot. We did not really  reach a final conclusion on this matter.
We do not want to spend a lot of time building advanced grabbing arms for taking the "object", so we decided to keep the grabbing mechanism and target object very simple.





torsdag den 17. maj 2012

Project - Meeting 2


Date: 17-05-2012
Duration of activity: 2 hours
Group members participating: Jeppe, Stefan and Thomas

Goal

  1. Continue the construction of the robots
  2. Define which materials are needed to construct the track

Plan


1) We forgot the key for the lego at home, so we will continue the construction next time we meet.
2) The track needs to be build and for that we will require a some materials and a bit of planning.

Results


2) The track was outlined as:




Outlining the track:
Measurement: 1 m * 1.5 m

Color: White
Line: Black
Bridge must be 15 cm heigh and 1 m wide.
The tower must be 20 cm high, 5 cm x 5 cm of area.
The basked must be 20 cm high.


For this we need to get the following materials:

  1. A base wooden plate
  2. White paint
  3. Black paint or black tape
  4. A wooden "tower" of height 20 cm, 5 cm x 5 cm area.
  5. A basket or cylinder of height 20 cm.
  6. A piece of wood to work as the "bridge".
  7. Two pieces of wood of height 15 cm to work as the support for the bridge.

Conclusion


This was a short and quick session, but now we have outlined what we need to build our track. Getting the track build is quite important since it will be important for the further construction of the robots.

tirsdag den 15. maj 2012

Projekt - Meeting 1

Date: 15-05-2012
Attendants: Thomas & Stefan
Duration: 2 hours

Goal:
  • Construct stacking and gripping robots
Plan:
  • Design and build a stacking robot
  • Design and build a gripping robot
Stacking robot:
In our initial discussions today about the stacking robot we agreed that we should try to make the robot's ramp static. That is the ramp should not be connected to any motors and does not need to move. This is to make the future programming of the robots simpler as we have one less actuator to worry about.

Also the ramp should not be very steep, so we will try to make the robot long and not very high. The robot will use tracks, so we will make the robot ready for this. On the image below is what we managed to construct today.


Gripping robot:
We did not have time to start constructing the gripping robot.

Conclusion:
After discussing different robot designs, we agreed on an overall design and managed to construct most of the stacking robot today.

torsdag den 10. maj 2012

Lab 11


Date: 10.05.2012
Duration of activity: 3 hours
Group members participationg: Jeppe, Stefan and Thomas

Goal


Today we have to settle on an end course project.
We have already discussed some potential projects and we will go through them in this lab report.

Plan



1) Compile a list of potential end course projects, and a description for each of them.
2) Choose a project and
3) motivate you choice
4) give a detailed description of the chosen project as outlined below:

4.1) Hardware / software platform and software architecture.
4.2) Point out most difficult problems to solve in the project.
4.3) What we are able to present at the end of the project period.

5) Include a plan for your work with the end course project


Results

1) Project idea list

  • 1.1) A group of robots learning a language
    The idea is inspired from how groups of humans build language over time.
    World:
    A static world consisting of various objects identified by color.
    The robots will move around some what random on the map.

    A) When a robot encounters an object that it has not seen before,
    it will come up with a sound identifying the object.

    B) When two robots meet they will "have a conversation" (exchange some of the sounds for the objects that they have encountered in the world).
    If two robots have seen the same object, they will most likely have two different "words" for the objects.

    They want to try to agree on the word based on a probability function, where the likelihood of a robot A using a word from an other robot B is defined by a function of the number of times it has already shared a sound for a word.
    I.e.:
    Robot A tells robot B: "I have shared my sound for this word 3 times",
    Robot B will answer: "I have shared my sound for this word 0 time".
    Thus the sound used by robot A, will now also be used by robot B.

    Over time a shared language will emerge. However the language might be split in groups so several languages might appear.
  • 1.2) Collaborating robots. Inspired by J. Fredslund [2], our idea is to define a task that is to be solved by a group of robots. We considered a task where the robots would have to climb on top of each other by simply driving on top of each other. Once on top of each other, they would have the proper height needed to take down some object. After this the robots would have to climb down again and move the object to some goal which again would require the robots to climb on top of each other.


  • 1.3) Measuring of a room by many robots
    We want to investigate how fast and efficient multiple robots in cooperation can measure different types of rooms. A room could look as in the sketch below:


    From the collected data we have to be capable of making a 2-dimensional sketch of the room.
    The robots will send their data to a central computer which will use the data to generate a complete picture. Either the central computer will guide the robots or they will be autonomous.



Project Difficulties
A group of robots
learning a language
Detecting when two robots meet each other.
Either the robots will have touch sensors to detect
when they bump into each other or maybe they
could have a distance sensor as a "radar". The robots
will have to know how to communicate with the right
robots. That is, if robot A bumps into robot B, A have
to find out who he really bumped into.
Collaborating robots Construction of the robots.
Making the robots find each other and align them self.
Climb up on top of each other. Climb down again.
Catching an object could be difficult, especially due to
the alignment toward the object.
Measuring of a room
by many robots
The idea is that the robots do not know where they start
and will have to deduce this from the world.
Thus navigation will be a challenge and the track could
be constructed such that the robots have some kind of
fixed point to navigate from.
Communication for cooperation for a optimal solution.
That is, the robots should work together on scanning
the room rather than scanning areas that has already
been scanned.


2) Choose a project

We have decided to go ahead with the "Collaborating robots" project.

3) Motivate you choice


We liked the idea of collaborating robots and thought that the idea would contain a lot of exciting challenges. As outlined above in the table there are many difficulties to overcome.


4) Give a detailed description of the chosen project

We have specified the task that the are to be solved a bit more in details: The track consists of a tower with an object on top of it. The object must be fetched by the robots and put in a high basket. The robots have to climb on top of each other to fetch the object. Then they will have to climb down again in order to fit under the bridge (or tunnel). Before the ball can be placed in the basket
 the robots have to climb on top of each other again.






4.1) Hardware / software platform and software architecture.

The hardware will be 3 * NXT with one or more light sensor(s) attached to each along with two motors.

4.2) Point out most difficult problems to solve in the project.

See the table above.

4.3) What we are able to present at the end of the project period.

Three robots finishing the track outlined above.

5) Include a plan for your work with the end course project

Initial plan for the end course project.
  1. Build a track.
    1. Find a board for a track
    2. Collect materials for the track, paint, glue, wood etc.
  2. Build the robots.
    1. Tow stacking bots.
    2. One grabbing bot.
  3. Initial program
    1. Make the two stacking robots climb each other.
      1. Make two robots climb down again.
    2. Make three robots stack each other.
      1. Make three robots climb down again.
    3. Make the grabbing robot drive off the two stacking robots below and grab the object on top of the tower.
      1. Make the grabbing robot drive back on to the two stacking robots.
    4. Make all the robots follow the black line on the track to the basket.
    5. Make all the robots climb each other again and make the grabber robot drop the ball in the basket.




Conclusion

We have discussed three ideas for a end course project. We agreed on following the idea with the collaborating robots solving a task together on a track.
We described the initial requirements for our robots and the initial track.
An initial draft for a project plan have been made. This plan will be revised next time we meet if necessary. 

References

[1], Lab 11, http://legolab.cs.au.dk/DigitalControl.dir/NXT/Lesson11.dir/Lesson.html
[2], J. Fredslund et al., http://legolab.cs.au.dk/DigitalControl.dir/journalpaper.pdf