Jump to content

Hanso

Eurobricks Citizen
  • Posts

    411
  • Joined

  • Last visited

Everything posted by Hanso

  1. Thanks ColletArrow. I don't know if you mean this with adding another tower: I tried to make the one-tower-version (the previous prototype) more firm, but came to the conclusion that it wouldn't be possible without adding a second tower. And that works fine, as you can see in the video: The next step is to add Mindstorms motors and sensors and check if I can get the stacker crane stop at the right positions. To be continued ... The warehouse will not be part of the layout that we're going to show at Lego World 2017 in Utrecht (NL). In comparison with last year, the train controlled by an EV3 is new and the delta robot is new (to load the wagons). Furthermore, one of my colleagues has upgraded the candy dispenser so that is kind a new too. Apart from the Lego buildings, the software has been completely redesigned. And as a small reminder: our project "Sioux.NET on Track" has as purpose to learn more about C# and the .NET framework. The Lego is only to make the learning more fun ... ;-) Enjoy, Hans
  2. I was not satisfied with the first prototype. First, the containers are kinda wobbly stored on these axles and second, the stacker crane is too massive. So, I build a second prototype. This time with rollers to move the containers. The idea is as follows: the stacker crane uses a platform as shown in the previous picture to move the candy container to the shelve. The shelve also contains these rollers, they are driven by the platform (by pushing the gears to the shelve gears). In the picture you see a prototype made with PF motors: And a video on Youtube shows that the principle works. However, the construction needs to be more firm. So, there is still some work to be done! Enjoy, Hans
  3. And this is (a part) of the program written in the EV3 programming environment to stop the train at the green spot or to do another try when it doesn't stop at the right spot (click to enlarge): Enjoy, Hans
  4. The train is now finalized (i.e. if you ever can speak of a final version with Lego ;-). Building the train was one challenge, programming it was the second. One of the challenged we faced, was how to stop the train as exact as possible at a specific location. This functionality is needed for loading and unloading the train. As you can see on the picture below, the train can be start/stopped by turning the control dial of the battery. By means of the white gear, the EV3 motor can just make some rotations until the control dial reaches the end stops. This gives us a either speed 0 (stop) or speed 3 (normal). In principle, this would be enough. However, if you want to stop the train at an exact position, the train should run at speed 1. And here comes the difficulty: how do you know when the dial is in the correct position? I guess, you think (like I did): just turn the dial a fixed number of degrees and you should have it. And yes, that works. Most of the times.... sometimes, the number of degrees doesn't result in getting the train to run at speed 1 (probably due to the slip gear). If results in either in speed 0 (stopped) or speed 2 (still too fast). We have tried two possibilities to get to speed 1: either from speed 3 and then a fixed number of degrees towards speed 1 or go to speed 0 first, and then upwards to speed 1. In both cases: most of the times it goes well, but now always. So we needed a fail-safe mechanism. The solution is as follows: The train arrives at the station (coming from the left). When the color sensor reads 'white', it goes to speed 1 (hopefully). In the happy flow, it slowly continues to drive until it reads 'green' and the train stops. Two problems can occur: Either, going to speed 1 results in the train stopping (way too early). This is solved by a time-out. If the color sensor doesn't read green or red after 5 seconds, it slowly turns the control dial. This process is (in principle) repeated infinite. By this means, at a certain point the train will start driving at speed 1 and therefore the timeout will not occur anymore. Or, it goes to speed 2. At this speed, the train doesn't stop at the green section but in the red section. If that is the case, the speed is set back to '3' making the train do another round and have another try. In any case, the train will always stop at the green section. Ok, you're right. In theory, it could happen that the train will not stop at the green section because at every retry, the train needs to do another round. But as said earlier, in most cases (9 out of 10), the train stops at the green section in one try. In the other cases, either it needed to rely on the time out or on the do-another-run. For a non-critical system, this is good enough ;-) You can see the first demo of this at Youtube: Enjoy, Hans
  5. Hi BusterHaus, That's one of the worries that I have myself, have been thinking about a compact solution to make it stronger but didn't find one yet. But to be honest, didn't spend too much time on this issue yet, time will tell ;-) /Hans
  6. The delta robot has been picked up by Hackaday.com. A very nice article has been published, you can read it here: http://hackaday.com/2017/07/24/monster-mindstorms-delta-bot-delicately-picks-candy/. Enjoy, Hans
  7. Hi all, I didn't know about this thread, I was pointed by BusterHaus to here from my own thread. In case you're interested in seeing a working 32L solution: This is a detail of the gears I use (5 in total, 2 are hidden behind the worm gears). It is part of a vertical lift which is used in a stacker crane for a fully automated container warehouse. Enjoy, Hans
  8. Hi BusterHaus, Nice thread and lots of similarity between our solutions. Because I use the longest 32L cross axles (50450), it bends quite a lot. So I needed a mechanism that completely encloses the worm gears and I came up with this and it works fine: Thanks for your support. Hans
  9. I was still editing (and sometimes I save the article), I think you read a first, unfinished draft ...?
  10. As part of our fully automated train layout (see more at our blog here: siouxnetontrack.wordpress.com), I have started to build a fully automated container warehouse. The warehouse should be able to store a large number of candy containers. I want to build four rows with shelves to store the containers, served by two robots that can store and retrieve the containers. The first thing I needed is to build the vertical lift for the stacker crane. I looked at other builds and found out that there are three possible mechanisms to create the vertical movement: Gears climbing a toothed bar (element 3743), a nice example can be found here: https://www.youtube.com/watch?v=GToA2tOVyHg Cables pulling the lift up, an example can be found here: https://www.youtube.com/watch?v=rCNwQVjXz60 Chain links, an example that uses the small elements 3711 can be found here: https://www.youtube.com/watch?v=fQIAAb8x8MI And as you may have guessed, I have tried something different. I use the worm gears (element 4716) to get the vertical movement, this is the first test setup: If you stack the elements 4716 on top of each other, they should be aligned correctly to create one, long worm gear. I just finished a first prototype of the stacker crane. The crane has two forks, in order to store or retrieve a container from either the left row or the right row. The lift can move up and down, the (horizontal) movement along the row needs to be build. One EV3 M motor is used to move the forks either to the left or to the right. It uses a color sensor to determine the middle position. One EV3 L motor is used for the vertical movement. A touch sensor is used to detect the bottom position. Watch the video to see a demo: More details will be added later. Enjoy watching and please let me know what you think. Hans
  11. Thanks Krall. Your comment inspired me to give some facts and figures: Building time is approx. 12 - 15 hours of pressing bricks together and 3 - 4 hours of writing the code (I use the standard Mindstorms EV3 programming environment). The number of Lego elements: technic beam frame 5 x 11 (64178): 51 technic beam frame 5 x 9 (64179): 90 technic beam 11 light bluish gray: 18 technic beam 13 light bluish gray: 30 tecynic beam 15 light bluish gray: 42 technic beam 7 yellow: 39 technic beam 9 yellow: 30 technic beam 11 yellow: 102 technic beam 13 yellow: 12 technic beam 15 yellow: 60 Control unit: One Lego Mindstorms EV3 Four Lego Mindstorms EV3 M motors Three Lego Mindstorms EV3 touch sensors Size Distance from the center to the leg is 42 cm Distance between the legs is +/- 72 cm Height is 72 cm Apart from the Lego Mindstorms, I estimate the total costs of the Lego between 300 - 400 euro (most bricks bought at Bricklink).
  12. Dear Ludo, Thanks for the document. Before I made my own program, I have searched for information about the movements. Could only found difficult algorithms with sin and cos function. Since that is not available in the standard Mindstorms programming environment, I have written my own version that is good enough for its purpose. I find it a challenge to stick to standard Lego elements and to the standard programming environment. I don't know why the green container has some less smooth motion. What you mention could be the case, but then the first container would have the same problem. Will have a look at it when further testing. Anyway, I have uploaded a small video where you can watch in slow motion the grabber picking up a container and deliver it to a wagon: Enjoy! Regards, Hans
  13. I've uploaded new photos to our Flickr page, click on the picture below to have a look. In the video below, you see the following test run: 1) The train arrives at the loading station. The train is powered by two Lego PF motors and controlled by an Mindstorms EV3. It runs at speed three until the color sensor reads the white tile between the rails (= goto speed 1) resp. reads the red tile (= goto speed 0, stop). If you want to know more about the EV3 controlled train, click here. 2) Next, the four train wagons are loaded with 4 containers by the Delta Robot. The colored bricks in the containers represent the candy from the final setup. In this video, you see the end of a conveyor belt. This is just a test setup where the containers are fed manually (outside the range of the camera). In the final setup this will be the end of the conveyor belt that is part of the candy delivery subsystem. 3) Once all containers are loaded, the train drives away at speed 3. Please let me know what you think of it.
  14. One of the challenges when programming the movements of the Delta Robot, is how to calculate the number of rotations for each of the three motors of the arms in order to get the grabber to the exact position. Apart from that, the grabber needs to move in to two steps to pickup the container. If the grabber would follow the shortest path, it would hit the container and throw it over. The same principle applies when dropping the container: if it would take the shortest path, it would hit the train wagon. The solution is to first position the grabber a couple of centimeters above the desired location, and second move the grabber straight down. See the following picture. But how do you calculate the number of rotations? At first, I tried the trial-and-error way. But this is not really handy. What I needed was a way to first manually control the grabber, move the grabber to the desired position, then hit a button to move the arms back to their home position and read out the number of rotations for each motor. If you reverse that number of rotations for the motors, the grabber should go back to the desired position. And so I did. I used a second EV3, daisy-chained that to the Delta Robot EV3, and used three color sensors and one touch sensor for controlling the arms. If the color sensor reads 'green', the corresponding arm moves down and if it reads 'white' the arm moves up (until it reaches the home position). The EV3 on the picture doesn't show the motor rotations, that is displayed on the first (and master) EV3. By this means, it is relatively easy to calculate the rotations per position. I made these calculations for all 4 positions and the result can be viewed in the following Youtube video: Enjoy and please let me know what you think of it. Regards, Hans
  15. Last weekend, I finished the first test run with loading the train with the delta robot (first two containers). And, of course, a video. More to come later. Regards, Hans
  16. I am building the Delta robot in LDD as well to see how things are build. A single robot arm: If you put three of the arms together, you get the following: And if you hang these arms in a supporting structure, then it begin to look like this: LDD gives you the opportunity to count the parts, e.g.: 51 * 64178 (technic beam frame 5 x 11) 96 * 64179 (technic beam frame 5 x 9) Over 700 black connectors (and I am not ready yet in LDD) I'll keep you posted. Regards, Hans
  17. Hi all, I have made some major changes to the delta robot / flex picker robot: The complete structure is now colored light bluish gray + yellow. I removed the white beams, I found it too colorful. The motors were driving the arms with a ratio of 12 to 20 plus 20 to 60 (= 1 to 5 in total). This ration didn't create enough torque to move the arms, especially when only one arm was moving and therefore it needed to carry all the weight of the grabber. The new ratio is 12 to 20 plus 8 to 24 plus 12 to 60 (=1 to 25 in total). The pneumatic hoses have been added. Grabber is now fully operational. I didn't change the pneumatic cylinder to the large ones (yet). Maybe I just leave it as it is now. Photos can be viewed at Flickr, click the picture below. And a video of the delta robot moving a candy container from one location to another place:
  18. If you are interested... sorry, you're too late. Train has been sold.
  19. At Wikipedia, you can find more details about this type of robots (typically known as delta robot or flex picker robot): https://en.wikipedia.org/wiki/Delta_robot. While I was programming the first movements, one of the first issues I ran into, was the speed of the three motors. In the first version of the program, the speed was for all the three motors the same. If the grabber needs to move to one of the outside positions, one motor needs to rotate just a little (say motor A needs to rotate 150 degrees) and the other two have to rotate quite a lot (say motor B and C needs to rotate 450 degrees). If the motors have the same speed, motor A is three times faster finished than motor B and C. In principal not a problem, but it makes the rotation not smoothly. In this example it is easy to calculate that motor A needs to have 1/3 of the speed of B and C. I made a formula to calculate the speeds depending on the number of degrees. To prevent the speed of the motors to become to high, I make an additional calculation to set the speed of the fastest motor(s) to 30. TotalRotation = RotationMotorA + RotationMotorB + RotationMotorC; FractionMotorA = RotationMotorA / TotalRotation; FractionMotorB = RotationMotorA / TotalRotation; FractionMotorC = RotationMotorA / TotalRotation; HighestFraction = MAXIMUM( FractionMotorA , FractionMotorB , FractionMotorC ); SpeedMaximum = 30 / HighestFraction; SpeedMotorA = FractionMotorA * SpeedMaximum; SpeedMotorB = FractionMotorB * SpeedMaximum; SpeedMotorC = FractionMotorC * SpeedMaximum; In the first example of Motor A 150 degrees and Motor B and C 450 degrees, the speeds become: TotalRotation = 1050; FractionMotorA = 0.142; FractionMotorB = 0.429; FractionMotorC = 0.429; HighestFraction = 0.429; SpeedMaximum = 70; SpeedMotorA = 10; SpeedMotorB = 30; SpeedMotorC = 30; By this means, all motors run for the same time making the movement more smoothly. The program is written in the standard Lego Programming Environment. This is not the best environment for making these kind of calculations. But it works ...
  20. Motorized control of the grabber has been added: A Mindstorms EV3 M motor is connected to the pneumatic switch to control opening/closing of the grabber. Unfortunately, the additional pneumatic hoses that I've ordered have not yet arrived so I cannot continue building the pneumatics. You can view some more photos of the work in progress. Enjoy, Hans
  21. Dear all, I'm selling the Red cargo train (3677) + Switches. Everything is in super condition and the train is complete (including the minifigures). Only the original box is missing. If you are interested, please drop me a note. Regards, Hans Odenthal
  22. Hi Agrof, Thanks for the compliment and the hint about the cylinders. I have two pumps (V2) in back order, when I have more and especially faster air pressure, I will give it a try with these larger cylinders. Unfortunately, I only have V1 which are not that elegant as V2. Later this week, I will write an update about the software. Quite some mathematics are involved to get the grabber to the right position and in a smooth way. The Lego Software is not suitable for difficult mathematics, but until now I still manage ;-) Best, Hans
  23. The grabber has been updated, it also has some bracing added. You can view some pictures at Flickr: And a video at Youtube: Please let me know what you think of it. Best, Hans
  24. New pictures and a video has been uploaded to the Flickr page: And a new video with a demo of the Flex Picker. Enjoy, Hans
  25. Hi BusterHaus, Thanks for your compliment and for the advice. The grabber is just a prototype. The space inside the triangle is quite small. That makes it necessary that the positioning of the grabber should have millimeter precision, and I don't think that the motors can achieve this. So, I assume that the final version will be a bit larger (and stronger). If you look at all the triangles in the base structure, I have added half beam elements to strengthen the structure: The grabber will have also some kind of bracing. /Hans
×
×
  • Create New...