Jump to content

Mr Jos

Eurobricks Knights
  • Posts

    515
  • Joined

  • Last visited

Everything posted by Mr Jos

  1. @jamesaguilar It seems like you tried to make your own stall detection? PyBricks already has that covered for you! motor_name.run_until_stalled(100, then=Stop.BRAKE, duty_limit=40) motor_name.reset_angle(0) 100 = the speed you want to use for running to a stall, 40 = max power allowed to keep running at the given speed, 0 = the angle you will save as the current position. You can play a bit with these values, but it's the only 2 lines of code you will need! (Don't go to low on duty_limit value, it will give an error, as the motor does need power to rotate freely)
  2. Oh my..! That graph explains the non-existing replies to all my MOC's, I need to become a collector instead of an engineer!
  3. That sounds like a fun project to do! Seems my robot does most of those steps, but my constraints list is pretty small haha. I wanted to make it more realistic, but "woooosh" my head was blown to do it with micropython 2 years ago. Now I just limit motor 2+3+5 to where I know it will mechanically hit itself. Having to add the size/orientation of the wrist was my plan, but never found the time to do so. And indeed, I just go in a straigth line, if impossible because it goes through its own center it will not bend out with the arm. All things that would be fun to program, but to many projects waiting to be finished. Maybe I first should have done like you, start with a 3-axis arm and make it perfect. If my GBC warehouse will be (ever) finished, I'll take a 2nd look at my 6DoF program (maybe). Anyway, enjoy your progress with the EV3!
  4. I'm not so deep into math/robotics, don't know exactly what SQP means. But the program I wrote for my 6DoF checks the distance from its current position to the new coördinates (X Y Z Roll Pitch Yaw). It has a set maximum distance to be covered by each calculation. So if the movements is just move from Y = 100 to Y = -150, a distance of 250mm needs to be travelled. This is divided by the step size (for example 7mm), so 250/7 = 36 points will be calculated to get there. So step 1 will be using Y = 93 in the inverse kinematics, step 2 Y = 86, ... and so on If there also was a shift in Z direction, but only 72mm for example, it will also start moving 2mm each calculation in Z, and the 7mm in Y. Meanwhile it also controls the roll/pitch/yaw. If the starting Yaw angle was 0°, and you wanted it to be 90° at the end of this coördinate, it will start 'yawing' at 90°/36 = 2,5° per step. This all happens simultaneously. Calculations are done constantly to see howmany degrees each motor has to turn from it's current position for the last calculated step. The largest amount of degrees sets that motor to 100% of requested power. Other motors get a %power depending on their respective % of angle they need to turn. This way all motors finish their movement exactly at the same time. At the same time a calculation is done to predict when the movement will be finished (if a large motor needs to turn 270°, and it runs at 800°/second, it will take 337ms). The next calculation needs to be finished before this movement is finished, and to prevent start-stop jerking, a new set of target angles/speeds needs to be send like 50ms before the end of the movement to each motor. Anyway, as it's hard to follow my writing, here you can find my project on GitHub that I sell with my instructions for my 6DoF. I think you'll be able to follow what happens with all the remarks added everywhere. https://github.com/Mr-Jos-Technic/Lego-EV3-6DoF/blob/main/6dof_left_accurate.py Maybe it can be some help for your 3DoF. you just need the part that handles theta1+2+3. You don't neeed the wrist (theta4+5+6). Edit: Oh yeah, this is already an old program from me, I've learned better ways to program now, but don't really like to clean up this "mess", as I think I'll just break it.
  5. Don't forget to invite all minority groups, to see if there are no insults being made to any one of them by any of the rules. Then check if all potential participants have a sufficient amount of bricks to build what they want, else an other theme will need to be chosen for the contest. Lastly have some mystery guests going to everyone's home to check their computer files if there are no pre-preparation builds made yet, else, you guessed it, chose another theme, and start over the process from step 1. And don't forget to put all timelines together when everyone is back from holiday to know the optimal start-date. With all of this, having an AI take over all these tasks doesn't seem so unreal to keep our flesh-MOD's healthy and give them some breathing time.
  6. All my machines are programmed with PyBricks MicroPython on the EV3, I've never used C. I know about the limitations it has like numpy not working, but that's why I made my own program for Inverse Kinematics, as calculate the inverse matrix isn't possible as far as I found with MicroPython. You can see all my projects here on Eurobricks, on YouTube or Rebrickable. But all are programmed with MicroPython, by someone who didn't know how to program with it 3years ago. I think this next link should be a playlist with all I've done so far. My programs / screenshots are also around the web somewhere. As you can see, the PyBricks is a very strong environment, and very user friendly in my opinion. "The other wrinkle is that I'd really like to use an numerical/iterative solution" That's something my 6DoF robot does. No hard coded motor settings/angles. Just give it any point in space in millimeters in all directions, and it will move there, with a nice "smooth" movement, keeping the wrist flat if needed. No need to calculate yourself the motor speeds/angles, the program takes care of that every 50ms +-, for all 6 motors constantly. So what you want to do, should be possible directly on the EV3.
  7. That would be your starting point, adding all lengths between every joint to variables. This will allow good kinematics. Then adding some way to "zero" all motors at the start of the program is very, very, very veeeeryyy usefull. Without it you can not make an accurate robot. Just some .run_until_stalled(...) can do wonders already. I'ld say yes, the EV3 should be powerfull enough, as I've managed to get full Forward AND Inverse Kinematics working on the EV3 only without the use of a desktop. And this for a 6-axis robot, so a 3-axis should be no trouble. When saving a waypoint, the Forward Kinematics are used to read the current XYZ/Roll/Pitch/Yaw position. Inverse kinematics are constantly used to create a straigth path between the waypoints. I found that the best way to write out these programs, is first make some sketches with old A4 paper and a pen how all joints work. And I don't recommend to start writing out the Forward Kinematics for a 6axis at all.. this is all the Sin/Cos math just to find XYZ.. But a 3-axis should be wayyy more easy. Anyway, enjoy your future projects with your EV3!
  8. If you only rely on motor acceleration/deceleration, and no continuous SIN/COS calculations it will never work reliable. You would need 2 calculations for each position, as 2 motors are always 180° offset, the opposite motor will be the same speed, but in reverse. the 90° motors will be faster/slower. As you already use a motor at the end, you can just use this angle to calculate the needed speed. Without using this motor (encoder), you would have 1 master motor, and other 3 would be calculated dpending on this one. But you will have to use SIN/COS.
  9. Looks like a fun project for doing math. but you do need to get the speed constantly correct in all 4 motors to prevent these kind of damages, realistically you should change the speed for all motors every millisecond, but I don't know what Spike's reaction time is to motor commands. EV3 used to be around 50ms I think. I do think the small one either has the math wrong, or just to slow motor commands, that makes it engage the clutch in the actuators. And there does seem to be something wrong with your post, (no punctuation), one picture and then a biiig empty white space. But I clicked the photo to go see your flickr page to see the rest, would be better if you could fix the link anyway.
  10. That's why there is now a 50 post rule in most contests I think for some time already.
  11. To have no more discussion about the results, who voted, for what reasons, ... Just let an AI system choose the winner. If not happy with the result, go talk to the AI and discuss with him why a model should have been ranked higher. No more human errors/preferences, win. Just be cautious that the AI doesn't submit an entry himself and wins every single contest.
  12. 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] Counting the amount of balls from every pack 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). 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.
  13. Because the lessons are both on the same day, same time.
  14. Actually this system is not good at all, unlike most reactions here. They say you just pump from 1 side to the other so no need for a reservoir, no pressure buildup. Wrong and wrong. One side of the cylinder has an axle in the center, so volume of air = (surface area diameter piston-surface area piston axle) * length. The other side is (surface area diameter piston) * length. When moving, the length change is the same in both, but the volume of oil/water is different! So pumping from the axle side to the backside would require more water, you can see this clearly in this video as the little bit of air in the cylinder gets bigger, as the pressure is dropping (even though it is extending!) because there is an insufficient amount of water to fill the whole cylinder. If there was enough water inside, no air at all, and you move it from the backside to the axle side, the extra volume of water would have nowhere to go, pressurizing the hoses (as the axle takes space where water used to be). So yes, there is pressure in this system, but not the way it should be. If you would keep pumping whilst at the end of a stroke, and there is no leaking possible in the hose, the pressure would build up (rapidly!). But the flexible hose in this case would just stop the pressurizing and water would leak by the pump and stay still inside the hose. With real hydraulics, without an overpressure valve you would certainly destroy the cylinder gaskets if you kept pumping at the end of stroke from side to side. So in real circumstances, you would always need a reservoir (and overpressure valves) because volumes are different. It would be more plausible if you had a cylinder with an axle extending at both ends, then the volume stays the same when moving in any way (but these cylinder are mostly used to have the same power/speed in both directions). Plausible, but not for real as liquids are compressable (around 0.5% every 70bar for hydraulic oil). Don't take me wrong, it's a great build, just not realistic. [Sorry for my view at it like a mechanic]
  15. If you use a NXT motor on an EV3 mindstorms hub you can read the angle, and use that as a " position sensor". But for your 6yr old, any of the Lego mindstorms/Spike sets it indeed very child friendly to build your own robots with, as everything just connects easily with Lego. Spike would be good if you could just work together with him indeed, using the Scratch coding. You could do the same with a second hand EV3 set, preferably education edition as it has a rechargeable battery (as does the Spike Prime). The home edition doesn't have this and will eat your AA batteries in rapid pace if he likes playing with it. Advantage to EV3 is that there's a solid base to program it with very few limitations/bugs with either Scratch or MicroPython at this moment. And a good amount of building plans available as it's already out for 10yr+. Just be sure to check if your device you want to use works with the setup you choose, I see a lot of complaints about Apple devices unable to find the app. Windows PC's work like a charm for all of them. If lucky you can find EV3 education sets for 100~300€ depending on how desperate a teenager needs money to buy a present for his new girlfriend, and he doesn't use his Mindstorms set anymore that he got a long time ago. Do you already own other Lego? If so I would say, just buy the base set, no expansions (yet), and try to combine your normal/Technic blocks and make your own machines.
  16. Cool project, but I think it would have been better on Rebrickable to have people enjoy it. As I think it will make no chance on ideas, basically just a prime hub with extra parts. People already having these hubs might have remade it, don't think anyone not having the hub yet will buy a 400€+ ideas set. Is it still 2 years of waiting before allowed to publish on other sites once you have submitted to Ideas? It's like the Johhny5 build, it was doing really good on Rebrickable, but had to be pulled from RB as it was on Ideas submitted. As it was to close to an already existing set, and had lots of electronics it made no chance to become a set. 2 years people asking for the instructions to be back on RB, and now it is, and still popular. I think for all MOC's using hubs it's best to just submit online instructions. People already owning 1 or more of them will buy the extra needed parts if interested in the model.
  17. 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. 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.
  18. 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. First some new correct length tubes with T-pieces for the main line. 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. This way the pressure sensor is repositioned, and good in view now. 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.
  19. I love that wall in the background even more! And need to know how wide it is. I just have 14 of the Lidl storage racks on my desk and 1 to go to events (I use the bins for the color sorter to put pins in). Would love to have a full wall like that, but not possible now with a 1,5yr old running around.
  20. Well done! They are at very affordable prices, certainly with those motors included. Chance missed for Lego, but then they would have been 2-3x the price I imagine. Did you get to build them yourself before going in full production, to see if they work the same/fine? That "ball shooter marble run" looks really good, and will have great sales I imagine.
  21. 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.
  22. 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. 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] 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. 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.
  23. Electrboom vibes seeing that switch! But if it works, it works. Always fun to experiment.
  24. And best of all, all group pages, Eurobricks as well is flooded by this 'awful bad set' that everyone tells it is, even a few people buying 2sets indeed helping TLG profit. And the other 1Aug sets are nowhere to be seen. Yamaha with cool new gearbox parts? None to be seen, no gearbox MOC's yet, nothing. But everyone jumping on this 'to expensive' "train". Pretty amuzing to see after all the criticism it was getting BEFORE release.
×
×
  • Create New...