Recommended Posts

I finished my standard warehouse project. Last events it has been running more and more reliable, to the point of nearly no interventions anymore during 8+ hours runs per day.

To challenge myself I've decided to turn this project even bigger by making it a sorting+storage GBC.

 

Impressions from the last time it has been running at Brick Mania Blankenberge;

Spoiler

 

52929719693_3b49834589_b.jpg

52929428834_39c789dcba_b.jpg

 

As I don't have many bricks to make the sorting part of the factory, I visited a LEGO store for the first time (and even 2 different ones this week, Lille/Wijnegem)

52929281946_7d61554097_b.jpg

 

ToDo / Process flowchart;

  1. Make a sorting station to bring the white/orange/other Lego balls to a filling station (I use other 14mm balls for testing now as I don't have any LEGO ones yet) [Intake of GBC] - Concept started
    Spoiler

    A ball pump provides a steady flow of balls to the color sensor. A small swinging arm quickly sorts the balls in the correct lane. Maximal speed at which the arm still can swing in time to the correct lane: 100balls/minute as can be seen in this video;

     

     

  2. Have an overflow bypass in case of issues with the EV3 system, or when the process is to slow for the 1ball/sec to be guaranteed - Not started

  3. Make a filling station for 30 balls [Preferably 3 or more stations] - Concept started
    Spoiler

    Using the many cheese pieces I used as filler for the cup I can line exactly 30balls up to fill my standard pallet.

    52929428814_91c627f05c_b.jpg

    52929719658_78e99105b9_b.jpg

    The pallet is nearly full, so that should make it pretty reliable to fill them with the max of 30balls per batch.

  4. Having the 6 axis robot take the filled pallets from the filling conveyor to the scissorlift, and store the pallet for some time - Done (Only programming required, mechanics stay the same)
  5. Make an installation to empty pallets that are taken out of the warehouse, some kind of tipping of the pallet [Exit of GBC] - Not started 
    Spoiler

    Not many space to creat this machine, the scissor lift is certainly needed, to keep the robot arm up high.

    53116898340_e6bd18c30e_b.jpg

     

  6. Make a conveyor system to bring empty pallets coming from the exit to the filling stations, or return them to the storage system - Done
  7. Make the conveyor system to automatically open the doors of the filling stations - Concept started 
    Spoiler

    Using my multivalve setup I can now open 5 individual gates holding 30balls each with 5 small pneumatic cylinders, controlled by 2 motors only.

    53090601677_71bc89b34e_b.jpg

    Need to work out the final placement and pull long pneumatic tubes to every cylinder.

    Edit 20/08/'23: New tubing and placement multivalve incl pressure sensor finished.

    53129257353_ca974712b1_b.jpg

  8. Find a new place to put the 2 EV3 units that control the current conveyors as the space will be needed, and 1 or 2 more EV3's will need to be added - Started, 2 EV3's added, still need 1 more I think
    Spoiler

    2x EV3 added for the sorting + buffer conveyor.

    All cable managements finished for this part.

    53100584425_c2a4cf0395_b.jpg

    53116690699_c1a5bdfba5_b.jpg

    53099612507_3fcdea1f07_b.jpg

     

  9. Program everything using PyBricks MicroPython to make the factory work as intended and prevent deadlocks when pallets need to move within 30seconds from step to step and cross eachother - Started 
    Spoiler

    53116690559_a819fce012_b.jpg

     

  10. Program a new GUI (Graphical User Interface) on the LMS-ESP32 using MicroPython, it will be less interactive as the current version I think, as it will need to run more autonomous - Not started

So this will be a (very) long Work In Progress project, only issues are space shortage on the LEGO table and having a 14month old trying to take everything that's on it.

 

EDIT: Current latest video will be posted here:

 

Edited by Mr Jos
Adding Spoiler tabs to make it better visible

Share this post


Link to post
Share on other sites

I have been thinking a few days how to make the door opening and closing automatically when the pallet is in the correct spot, without using a motor for it.

It has to hold the hits from the balls pushing the wall by gravity and when coming in, open by a pallet, and when the pallet rolls further or is taken away, close again so the next batch can be filled up.

The combination of a spring system to hold the door closed, and a bigger force needed to open it up was hard as the pallets are transported on lego chain with nearly no grip.

The solution I came up with is this, if it doesn't work well in the future I will need to change my conveyor design so it has something to open the gates.

52934276251_518367f6cf_b.jpg

2x1 liftarm goes through a 90° 1:1 gearbox and then drives a 1:1 chain to open the gate. Other side of the gate has a 24T with a towball inserted and a short white rubber band installed to pull the gate back in closed position.

Share this post


Link to post
Share on other sites

I started recently with "Make a sorting station to bring the white/orange/other Lego balls to a filling station (I use other 14mm balls for testing now as I don't have any LEGO ones yet) [Intake of GBC]"

A small conveyor leading to a ball pump, working with 1 motor brings the balls up, and at a steady interval. Depending on the motor speed the amount of balls per minute can be regulated. With this prototype I tested the max speed at the ballpump crank where the pump and sorting arm still work reliable. I ended at 600°/second = 100balls/minute exactly, so this is with 50balls each 30seconds good above the 30balls/30seconds GBC standard.

Next step will be adding loading stations to each of the 4 paths, or maybe I will keep it at 3 stations+keep the 4th for bypass to keep the 30balls/30sec flow if the pallets move to slowly around later.

Share this post


Link to post
Share on other sites

Bringing a few of my prototypes together now.

53090601677_71bc89b34e_b.jpg

Ball pump with feeding conveyor and small swingarm (2O 1I) followed by my multivalve setup controlling 5 individual valves (2O ~1I) fits on 1x EV3 (4O 2I). It can put the 4 kinds of balls each in a lane, 5th lane starts to be filled whenever a 31st ball is detected. Meanwhile the gate holding 30balls is being opened by the multivalve, when empty it gets closed again and it acts as the 5th lane now, waiting for another lane to be filled and changed over. So no dedicated color lanes and trying to keep everything running without having to stop the ball pump.

Biggest task that needs to be done now is either make a roll or chain conveyor to bring new pallets to the 5 stations, and try to keep it all on 1x EV3 as well. This will be though as a corner transfer already needs 3motors. So any ideas are welcome, I also need to be able to take a full pallet from this conveyor with my large 6DOF arm, and then have all other pallets move on a place to fill all spots again. I would prefer to have a little gap between the pallets, but don't know either how I will do this.

 

EDIT: Just noticed I'm running out of small chain pieces, so means I have around 2K+ in use now in all my MOC's, if anyone has a lot of these parts leftover I could use them well (don't dare to ask the wife for another order at the moment :innocent: ) . Guess I'm going to take one machine down.

Edited by Mr Jos

Share this post


Link to post
Share on other sites
19 hours ago, Mr Jos said:

...

EDIT: Just noticed I'm running out of small chain pieces, so means I have around 2K+ in use now in all my MOC's, if anyone has a lot of these parts leftover I could use them well (don't dare to ask the wife for another order at the moment :innocent: ) . Guess I'm going to take one machine down.

Couldn't stop myself when I found that a local seller had loads of small chain pieces. Got 1K black, 0,5K LBG and 0,7K 3wide LBG chains extra now

53092811406_e366a651f3_b.jpg

And the build continues! Yesterday already made a prototype to stop pallets on a conveyor without using a motor.

Share this post


Link to post
Share on other sites

One mahooosive conveyor later. (And a roll/corner transfer added [Made by the youngest daughter] to make transports from the highbay possible.)

53094200520_b0e26f52bc_b.jpg

Total chain conveyor length 90cm (so about 4m of small chains to make this 1 conveyor!)

Next step will be adding locking levers that stop the next pallet so there is a gap between them. I should be able to position 5 pallets on the conveyor and have a 6th waiting on the corner transfer, to directly fill the gap when a pallet gets taken away.

Share this post


Link to post
Share on other sites

Big changes to the GBC setup,

Teardown of the old warehouse EV3 setup

53100673768_1eace7fa71_b.jpg

As I need to reroute cables, add new one, new power cables etctec I thought it would be better to label everything.

EV3 taken away, as they were in the way of the 6axis robot to take pallets from the new large chain conveyor. They need to be mounted lower, scissorlift needs to go to another EV3, as I want all 4 roll conveyors on 1 brick, for perfect timing for positioning.

53099612667_aa2cb92992_b.jpg

Covered all the cables that power the 4x EV3 and 1x ESP32 to the end of the baseplate

53100365119_4fa78719d4_b.jpg

 

The 5 waiting stations have been added with long lanes coming from the sorter

53100584680_e78e3e3007_b.jpg

Pallets need to be modified still a bit

53100584640_e1c5d6fc98_b.jpg

 

New cables for the 2 new EV3 bricks, all nicely in cabletrays and covered

53100584425_c2a4cf0395_b.jpg

53099612507_3fcdea1f07_b.jpg

53100365094_ca906d9122_b.jpg

53100365299_162a8e2097_b.jpg

 

Still to do mechanically; Extending the output conveyor to empty the pallets once they are taken out of the warehouse again.

53100365204_a94693cc74_b.jpg

 

Still to do electrically & programming;

  • Cabling just the Emergency-Stop [E-stop] and E-Reset, once I find a good place for them. And the balls output station that I need to invent still.
  • Programming... Oh my god.. underestimated this. Having a 16month old that likes to climb on chairs, tables, already knows how to connect Lego and deconstruct it.. He is very fascinated by the GBC and loves to see the balls roll, but my programs have nearly no progress, constantly have to turn around, run after him. Hope he goes for a longer nap than 15minutes tomorrow.

Share this post


Link to post
Share on other sites

Cool! What an epic and ambitious project. This could end up as the most advanced GBC ever *huh*.

Thanks for sharing the updates.

Share this post


Link to post
Share on other sites
On 8/8/2023 at 10:57 AM, ord said:

Cool! What an epic and ambitious project. This could end up as the most advanced GBC ever *huh*.

Thanks for sharing the updates.

Thanks, big update this time. Video time.

 

With a big thanks to @Pybricks to be able to program these complicated machines, and it works flawless.

53116690559_a819fce012_b.jpg

When the master brick is connected to the laptop I can see the complete communication flow, which makes it easy to debug.

[These next 2 photos both have a bug highlighted]

53116898395_e52e6694ba_b.jpg

53116898375_eaf5b0f837_b.jpg

Next task will be extending the output chain conveyor, and add a machine to remove the balls from the pallet. All whilst staying underneath the 6-axis robot arm, so the scissor lift is really needed, to keep the wrist of the arm as far away as possible from the conveyor.

53116898340_e6bd18c30e_b.jpg

Any comments/recommendations/feedback is greatly appreciated. Or just a thought on how you would remove the balls from the pallets once they are taken out of the warehouse.

Edited by Mr Jos

Share this post


Link to post
Share on other sites

Gloriously complicated!

Beyond that, I don't have much to comment--I think it's too much above my level for much intelligent feedback!

Share this post


Link to post
Share on other sites
On 8/15/2023 at 1:22 AM, 2GodBDGlory said:

Gloriously complicated!

Beyond that, I don't have much to comment--I think it's too much above my level for much intelligent feedback!

Thanks! It's becoming hard to debug and get faster cycle times, because so much is happening all at the same time, can't watch at everything at once. When something does go wrong, I'm looking at the wrong machine every time.

I had a small principle finished to empty pallets yesterday, but I don't have the parts needed. So I'll try to design something else.

Share this post


Link to post
Share on other sites

Another chapter in the monologue.

During the day had to install some new pneumatic lines (around 300meter), and wanted to clean up my build later in the evening as well.

53128987254_7873eabe7d_b.jpg

First some new correct length tubes with T-pieces for the main line.

53128793506_d81a248787_b.jpg

Then put all new correct length tubes to each cylinder, and used some Technic bricks as guiding blocks to make it nicer. I do want to replace these 1x2 Technic bricks with Green ones, if I ever find enough of them for sale somewhere. To make them look like Stauff clamps.

53128204367_8ab8b7eda2_b.jpg

53128776171_3270b0dfb7_b.jpg

This way the pressure sensor is repositioned, and good in view now.

53129257353_ca974712b1_b.jpg

 

The pallet-rotator station is finished as well, but no photos yet, just a few videos, not worth uploading to YouTube, they are on FB.

Now test this for some time, then add the warehouse, test it for some time. Then start designing the new GUI with controls for every machine part, to allow 10hours a day operation during events.

Share this post


Link to post
Share on other sites

This project is absurd and awesome in its scope and scale, and in your commitment to continue building and improving it. I've seen large Lego builds before but this is beyond anything I've seen in its complexity.

I wonder if you're ever going to call it "finished"? It would deserve a proper documentary film detailing every part and their design and construction.

Share this post


Link to post
Share on other sites

This is insane! *oh2*

Joy to watch, even if there are some glitches in operation.

I admire your dedication (and working space). :wink:

Edited by Mikdun

Share this post


Link to post
Share on other sites
On 8/20/2023 at 10:39 AM, howitzer said:

This project is absurd and awesome in its scope and scale, and in your commitment to continue building and improving it. I've seen large Lego builds before but this is beyond anything I've seen in its complexity.

I wonder if you're ever going to call it "finished"? It would deserve a proper documentary film detailing every part and their design and construction.

Thanks, I was already thinking my original warehouse was "finished", guess it never really is. I would love to one day make a brick sorting machine that fills these pallets and then stores them. Later on request pull out the pallet and remove the wanted amount of pieces. One can dream...

There are indeed so many mechanics in this build, and programming tricks, that all are not seen from the outside. It's just a pallet moving around, but deep down it's soooo much more. I can't make good video's, I know, but maybe one day it'll have a great detailed explanatory video.

On 8/20/2023 at 1:12 PM, Mikdun said:

This is insane! *oh2*

Joy to watch, even if there are some glitches in operation.

I admire your dedication (and working space). :wink:

Thanks, having to work with bricks that have so much bending at long lengths, and play in gears, makes it really a programming nightmare to get working flawless. The work space is each time growing. From the kitchen table to the old kitchen table, putting a bigger plate on the table, putting an extra table next to it for the 2nd laptop, storage space for finished machines under the staircase, don't know what I'll have to do when I want to make this machine bigger now. It just fits for the moment, but the 1,5 year old son is able to climb on the table, so I just hope it doesn't get destroyed soon.

Share this post


Link to post
Share on other sites
On 8/21/2023 at 8:08 PM, Pumpernickelsputnik said:

What a masterpiece! This is beautiful. How did you get so good?

Loving mechanical principles. Trying to create something that hasn't been done before in Lego as it needs 'insider knowledge' on how the internals work, to look as real as possible.

 

After having removed 45year old conveyors and installed some new conveyors this weekend in Holland, I did receive my 10 boxes of Quercetti 100pcs balls at home. [6€ / pack]

53150411766_58bb40e5bf_b.jpg

Counting the amount of balls from every pack

53150846350_4968240d5a_b.jpg

There were between 101 and 113 balls in each pack (instead of the 100 mentioned). At total 265 white, 264 red, 274 blue, 274 yellow. Looks pretty even, but some box had 40 whites, other one only 19 whites. Total 1077 balls from 10x100 packs, making it 0.056€ / ball. If Lego GBC balls would have been this cheap.. but yeah, not paying 1€+ per ball if I need 1000+ of them.

I did compare it to my 100 balls I had been using for some time, new ones seemed glossy (but some not at all, like they skipped the glazing belt).

53150411756_f58ac4a62f_b.jpg

I did start to sand the little molding part of the new ones, then I noticed this shiny layer melted, even under very light pressure. It became liquid again. EDIT: It wasn't the polish that melted... seems there was some hydraulic oil residue in one corner of my scotch brite pad. LOL. /EDIT So I think after some running all will lose their shiny layer, and polish the Lego bricks with it.

Edited by Mr Jos
Hydraulic oil issue.

Share this post


Link to post
Share on other sites

One more engineering problem. Can't find the problem at all.

I changed my WMS (Warehouse Management System) to hold more data (Pallet name, color of balls and amount). For some reason after shutting down the program, and reloading it I have a package loss. My WMS system continues by adding extra data, but as the data was lost partially, it now adds the color to the amount value, and crashes my whole WMS loading.

53161210728_bdb2c74a37_b.jpg

I'm at a total loss, why there is a package not to be found, as it's just a .txt file overwritten constantly

 

I have now managed to get the sorter reliable. Robot arm... mhmmm sometimes works fine then it gets nasty, throwing 30balls around.

So far no video good enough for YouTube made as I still have some bugs to solve. GUI also not started at all.

Share this post


Link to post
Share on other sites

One hour later...

Still puzzled why my WMS worked for 2 years perfect with names only.. I did manage to pull the .txt file from the EV3 brick

53160810811_148dee38bc_b.jpg

There's only WMS data for 8.333 pallets in the file. So on startup my program adds the missing 7 positions, making it 15.333/15 

I never use 

#os.remove("wms_hb_outsidestatus.txt")

during overwriting the data, so why would there be only 25 lines of code instead of 45... I thought it would just overwrite 1 line at a time. My old WMS was changed everytime a pallet was moved, now it happens in the mainloop constantly (maybe once every 10ms). I changed it because I now have so many pallets moving around, I was scared to be overwriting it 2x at the same time.

If anyone would know how it exactly works, enlighten me.. I wouldn't mind if it only updates once every 2seconds, but I don't want it ever losing data if I shut down the program 'at the wrong time'.

 

Share this post


Link to post
Share on other sites
On 8/16/2023 at 12:29 PM, Mr Jos said:

Thanks! It's becoming hard to debug and get faster cycle times, because so much is happening all at the same time, can't watch at everything at once. When something does go wrong, I'm looking at the wrong machine every time.

I had a small principle finished to empty pallets yesterday, but I don't have the parts needed. So I'll try to design something else.

I can't help with programming but to help with physically debugging the system, set up video camera(s) to record the whole operation. You can then go back and look at the video to see what you missed.

Share this post


Link to post
Share on other sites
51 minutes ago, Lego Tom said:

I can't help with programming but to help with physically debugging the system, set up video camera(s) to record the whole operation. You can then go back and look at the video to see what you missed.

Yeah that's the best way to do it. Need to free up some space on my phone to record longer videos. Cloud storage full and phone as well.

 

But I did manage to replicate the error with a simple loop. If I save the WMS offline with a 2000ms wait block in between saves, the chance is low that there's loss of data. with 0ms waiting between saves, near 100% chance on package loss. I did time the saving duration, a whopping 160 - 224ms, without any multithreading that is.. So need to find out the best time for saving the data.

53161404598_4a0a1946e7_b.jpg

So for now I'll add a timer to save it only once every ".." seconds, and hope it doesn't get corrupted. I also added an "AND emergency_stop == False", this way I can stop the saving, and safely terminate the program.

About 80% of the pallets are going around fine now. Stacker crane does seem to have little problems with too much friction from the 30balls + pallet weight. Still 25 days to solve the issues.

Share this post


Link to post
Share on other sites

Sounds like your programming has run into the "ghost in the machine". LOL. I experienced this first hand this morning when I went to my local market and it rang up a bottle of water I was buying 61 times! Clerk said they had been having problems and thought it was fixed. Obviously not!

In any event, you have an incredible build and I hope you figure it out and post more videos!

Share this post


Link to post
Share on other sites

Well, the GBC logistics warehouse has been running 2x 8hours at the event last week. A few problems with pallets falling from the scissorlift and stacker crane, but it did run pretty ok (with 15balls / pallet).

With 30 balls the weight was to much for the telescopic forks, bending the basket to much for reliable input into the racks.

 

For this reason I want to redesign parts of this build completely now. So I started modelling the current build into Stud.Io again. I'm trying to make the instructions more modular now, by reusing a lot of assemblies and meanwhile make it possible to easily scale up the size of modules.

The first part, the racks is now finished. The beginning (36storage positions) and end of the rack (24 storage positions) can now be expanded with a middle base plate adding 36 storage positions on each plate. After adding 4 middle plates, making a total of 204 pallet storage positions, it looks like this.

53241718742_db85dc580e_b.jpg

 

The base for all my Lego machines I build, can now be seen in a recent video made for the machine building group I work for. I'm trying to figure out who the voice actor is, I do recognize him, but don't know the name. Extra points for who can help me settle my mind after 3 days of wondering who it is.

 

 

Edited by Mr Jos
embedding issues

Share this post


Link to post
Share on other sites

"One week later"

53258495780_4820970dde_b.jpg

The 3D design is done, instructions not. But I build it all modular and in steps, so not going to put time in it now. Total parts 16215 according to the model info, but that includes 1 high bay baseplate extension (not in the render, as it makes it harder to see.)

Now I can start deconstructing this model, don't know yet what I'll make next, but it will be some kind of machine.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.