Friday, 12 December 2008

End-project. PART IV

Date: 12 12 2008
Duration of activity: 2 hours
Group members participating: all group members

1. The Goal

The goal of this lab session was to agree on the main points of the architecture and make some adjustments with regards of the LEGO structure.

2. The Plan

  • Agree on the architecture.

  • Further upper carriage construction.

  • Adjustments of the sliding part.

3. The Results

3.1. The architecture

The first thing that we have done during this lab session was agreeing on the architecture. As it was mentioned before, in this project we will use a layered architecture. It is very important to leave as much space as possible for scalability and modifiability as for now it is not exactly clear how much of each layer we will need to use. The things we have agreed upon for now, looks like this:

4. Input handling. (tentative)
3. Input (vector) interpreter. (tentative)
2. State calculating navigation layer. Possibly feedback giving. (tentative)
1. X-Y movement calibration (mm wise). (definite)
0. Motor speed and tacho count handling. Re-zeroing. (definite)

3.2. The carriage

The second thing to do in this lab session was to mount the upper platform (the carriage) with two touch sensors. Whenever a touch sensor is touched on this platform, it indicates that the Y-axis is at its very beginning or at its very end. We couldn't get our hands on the standard official LEGO grey touch sensors, so instead, we have to use a couple of semi-transparent blue third-party ones. For now, the upper platform with such a sensor looks like this:

3.3. The sliding part

The third thing that was done in this lab session is a very important one. We have made the support near the spindle-axis more smooth. Also, we re-built the part that is responsible for the up/down movement in a way so it pushes the Y-axis-spindle more from outside-in, which is to say, it gets pushed into its support structure now, as opposed to being pushed out of it, before. By pushing the axis inwards that way we get more support for the axis and the movement along the Y-coordinate axis becomes more stable and does not get stuck.

4. Conclusion

The benefit of this lab session is that we now exactly agreed which layers of the layered architecture we are planning to use. Also, we mounted the carriage with two touch sensors and made the sliding part travel from one side to the other more smoothly.

Tuesday, 9 December 2008

End-project. PART III

Date: 09 12 2008
Duration of activity: 4 hours
Group members participating: all group members

1. The Goal

The goal of this lab session is to put all our efforts into making the construction better.

2. The Plan

  • Improve the sliding part (the one that moves on the carriage).

  • Improve the carriage itself.

  • Mount the NXT to be in a comfortable position with regards to the whole structure.

  • Install emergency stop buttons.

3. The Results

3.1. Sliding part

The first thing that was done today was to improve the construction's part which is responsible for up/down movement handling. It was enhanced in a way so that now it is very easy to attach any kind of pointer or, in general, tool of any kind. In our case it is most likely to be a drawing pen. The wheel is the part that enables the movement itself with the help of the motor. The whole part is actually hanging onto the carriage, but it is clamped onto it tightly enough so it should be able to move left/right with no significant difficulty.

The aforementioned part looks like this:

3.2. The carriage

The second thing that was done---improving the upper platform in a way for it to be as compact as possible, so it would leave more space available for the X-Y coordinate system. The working area is not that big, so making the mounts as optimal as possible is an important issue. The pictures are showing the upper platform and its sliding area close-up:

3.3. The NXT

The third thing that was done was to attach the NXT brick onto the working area so it will be easier to work with it. This looks like seen below:

3.4. The touch sensors

The fourth thing that was done today: Attaching touch sensors. This was done for us to always be aware about what the limits of our coordinate system are. The lower platform (the main one for x-axis handling) got four touch sensors, the upper platform (the carriage for y-axis handling) got two sensors and the ``up/down'' platform presumably will get only one sensor, if at all. But that is enough, as all we need is to be sure that we touched the paper surface. Old kind RCX touch sensors are used for this purpose, since these can be connected in parallel (and we'll have plenty more input sensors than the NXT has input ports for, so this is necessary.)

3.5. Software

With regards to programming, the X-Y movement controller was started. The initial idea is to give (x, y) coordinates as parameters to make the pointer move x tacho counts along the X-axis (forwards/backwards with regards to our working area) and symmetric for the y coordinate.

3.6. Final outcome

At the end of the work, it seemed that the part that is responsible for up/down movement would have to be redesigned. When attached to the ``upper'' platform (the carriage) it does not move correctly along the spindle axis, it gets stuck at some points. At the end of the day, the overall construction looks like this:

4. Conclusion

This lab session was all about the construction. Now we have the main platform, a quite final version of the carriage, and the improved sliding part. The sliding part is built in a way so that it is able to move left/right (y-axis movement handling) although with some spindle-related troubles that will be fixed in the future. Also, a part of the sliding part is able to perform up/down movements. Due to the overall construction, we mounted six touch sensors so far (four on the main platform and two on the carriage top) to act as emergency stops, so no platform would over-go the limits of the working area.

Friday, 5 December 2008

End-project. PART II

Date: 05 12 2008
Duration of activity: 2 hours
Group members participating: all group members

1. The Goal

The goal of this lab session is to finish building the carriage that is able to go back/forth (that is x-axis movement) and some part on top of that carriage that is able to go left/right (that is y-axis movement).

2. The Plan

  • Finish building the carriage.

  • Try to build a part that can move left/right with regards to the carriage.

  • Mount motors and test how well platforms are able to move.

3. The Results

3.1. Movement

The biggest challenge of this lab session was to keep up on building. So far, we had the ``lower'' platform which is responsible of forwards/backwards movement handling, and on top of this, an ``upper'' platform (the ``carriage'') is put (the platform that will be going forwards or backwards). This ``upper'' platform is responsible of leftwards/rightwards movement handling.

To make it easier to imagine all the directions of movement, this little schema introduces the platforms in play. Most importantly, it all corresponds to movement in X-Y-Z coordinate system.

If the construction succeeds, in the final version we will be able to move in a three-dimensional space.

3.2. Platforms together

The idea that enables the carriage to be able to move at all is rather simple: we take two plastic axes (or, actually, more than that, but divided into two parts) and mount them with ``spindles'' (which are actually more appropriately called ``screw conveyors'', but ``spindle'' is the word we're settling on) that are able to take a LEGO-gear-grabbing linear drive from the beginning of the axis to the very end. In order to accomplish that, the weight of the load wouldn't be on the gear itself, but rather on small flat wheels that were mounted for that purpose.

Here you can see those platforms (the lower one and the carriage) on top of each other:

3.3. The carriage

From the basic point of view, all that was left was to build a top sliding part, mounted on top of ``upper'' platform (the carriage), that is able to go leftwards/rightwards. This part has to be able to move an attached head up and down.

So the top of the carriage itself, has an axis with mounted spindles. The idea again is similar to before: To make a sliding part (the leftwards/rightwards movement) mounted with a gear grips into the spindle. This is the aforementioned ``upper'' part (the carriage) taken apart:

3.4. The part for Z-movement

The next important part to consider was the actual construction doing up/down movements. Lifting obviously has to be handled by a motor, and the fact that a motor has to be directly connected is a bit of a burden (which to no small extent was because of the limited space available in this advanced place). The problem of mounting the motor in a fashion that linearizes its movements can be solved by different solutions. Our used approach was a creative one: Instead of more obvious ``gear to gear'' approach, we decided to go with ``rubber-wheel to smooth-plastic-surface'' approach. This has the advantage of being simple and---in some sense---continuous in its movement, but the drawback is that it requires a lot of tension to work reliably and therefore the motor has to give a lot of power in order to make any movement at all. This issue will be discussed later.

This is how the construction (of the part that is able to slide left/right on the carriage) looks like:

Now, the part that is responsible for handling up/down movement has to be connected somehow, put on top of ``upper'' part (the carriage). For that, a sliding construction is made. Here it can be seen, mounted on the platform and by itself:

3.5. Final outcome

Due to the final construction, we have the main lower platform, the carriage on top of that, and the sliding part on top of the carriage itself. The carriage is able to move back and forth as a motor is connected to the main axis (which moves both sides' axes and thus enables the movement). The sliding part on the carriage is not able to move yet, but it will. The plan is to mount a motor to drive the only axis on the carriage, and a third motor will be connected to the sliding part itself (to enable movements up/down).

And so the overall construction when all the parts are put together looks like this:

With regards to programming, some basic motor controlling was done. With a motor mounted on the ``lower'' main platform, forwards/backwards movement was tested in different speeds. We were satisfied with the performance as the sliding happens smoothly enough. There still are problems to be solved: Sometimes a ``tooth'' or ``groove'' of a spindle is skipped, which is a very undesired property. The solution for this will come is postponed to later in the process.

4. Conclusion

This lab sessions was a productive one. We have a main ``lower'' platform on which a carriage is able to move (this corresponds to an x-axis movement). The carriage itself is mounted with a sliding part that will be able to move from side to side (this corresponds to an y-axis movement). The sliding part is made in a way so that a part of it is able to be lifted up/down (this corresponds to a Z-axis movement). What is more, X-axis movement was tested with simple software programs.

Thursday, 4 December 2008

End-project. PART I

Date: 02 12 2008
Duration of activity: ~5 hours
Group members participating: all group members

1. The Goal

The goal of this lab session is to discuss the expectations of the project both software- and construction-wise, and to start building the LEGO construction.

2. The Plan

During this lab session our group took three very important steps:

  • We discussed the overall project,

  • we started planning the work and

  • we started building a prototype.

3. The Results

3.1. Theory

At this point we have agreed to make an X-Y-coordinator. The envisioned construction consists of some platforms/axes that are able to move independently. No concrete implementation aspects are discussed as the highest-prioritized issue is the actual building.

All group members have different ideas on how the LEGO build has to look like, how to be build and in which manner to behave. Discussions were the main activity during the time that was spent.

3.2. Practice

The idea of the project is to make a drawing robot. For that, a part of the robot (some sort of ``head'') has to be able to move backwards/forwards, and left/right. The outcome of the building we did was two platforms that enable this kind of movement.

The process of building was to ``discuss'', then ``build'' and finally ``try out''. As there are no exact understanding of what we are expecting to get, structure-wise, there is no exact understanding of what exactly is the best way to get to the goal.

This way of working gave some fine results. The basic ideas has been generated and some basic structure has been built. The prototype we have so far looks like this:

4. Conclusion

During this lab session our group discussed all the expectations related to the end-project. We also did some actual building: So far we have some sort of lower platform (handling the x-axis) and a construction of a carriage that should be able to go back and forth on that platform.