Next large robot

1222324252628»

Comments

  • Publison wrote: »
    Welcome back Bob! I wish the P2 was more mature so you could jump in. The hardware is there but SPIN2 is a little way off, maybe just weeks. You can sure benefit from some of the new instructions in the P2.
    I was doing some reading today, looks like lots of I/O options, faster chip and more memory. Sounds like Chip is working on Spin2 now. It also sounds like Spin2 is also going to be compatible with the original Spin code too. I will continue to do some studying and start watching the P2 forum closer.
    I had to study my code some more and read some of my later entries in this forum to get back on track with where I left the code off and the hardware issues. Still need some means of knowing when a leg is touching the ground so I was looking at strain gauges again. These could possibly be attached to the aluminum lower legs but there is a lot of additional hardware needed to make them work. A simpler option is using flexible force resistors that can wrap around the end tip of the leg. That only needs a voltage divider and ADC to work. I’ve got to look at the leg code and see if I have any left over cogs to run the ADC on the leg controllers. This requires machining new tips for the end of the legs so the resistors can be attached, working on some design ideas to test the concept.
    msrobots wrote: »
    I was worried that you where pinched and held hostage by your robot in your own basement, and you just did a road trip!

    But the first thing you should do is try out Eric's Flexgui and his SPIN 1.5. It does not just work for the P2 it works with the P1 also.

    And it compiles P1 SPIN to P1 PASM (LMM) thus is WAY faster then the SPIN interpreter, but need more space also, SPIN byte code is compact, PASM (LMM) needs more HUB.

    But your P1 LEG controller might gain a lot of speed/reaction response if compiled by flexgui/fastspin as long as they still fit into HUB.

    The good thing would be that you can just use the code you have and gain speed, instead of switching the MC and rewrite everything.
    It was a good time traveling, 10 weeks to Alaska and then 8 weeks in the southwest along with several other shorter trips around here. Looking forward to a northwest trip this summer and diving in the South Pacific in late fall. Somehow I need to carve out some time for the robot!

    I read about Eric’s Flexgui, didn’t realize it worked on the P1 also. I will download it and give it a try with my master controller and see if I can get some speed improvements with the FP math. I remember that at one point I was looking into using lookup tables for sine, cosine and see if I could do all the math using integer math to help speed things up. There were some good articles out there on some other forums with tips on how to use integer math to simulate floating point.
  • It does not just work on the P1, it also allows you to write objects in C or BASIC to use with spin as if they are spin objects, and C and BASIC support Floating Point, so you could write small FP routines in say BASIC an use them from your Spin Code.

    I seem to sound like a fan-boy, but what Eric has done there is simply mind boggling. He seems to have the passion and skills you have for machining things just using it in his software forge.

    I am programming for a living since ~30 years but I am just a Code Monkey, I just do grunt work and never reached the high paid jobs out there, always went for the more secure options.

    But I did work with famous teams and I am able to see and admire good work even if my own skills are way below it. Unlike the Dunning Kruger Effect I know my limitations.

    Over the last years I always pointed out that @JonnyMac has the most consistence and readable code, hoping that other would follow, I myself try to learn from his style to write things.

    But the sheer AMOUNT of work Eric did put out for the P2, makes me wonder how he does it.

    I barely find time to throw in 1-2 hours a week for the P2.

    Anyways look for multi language integration since C and BASIC support FP and are integrated easy into a SPIN project.

    Enjoy!

    Mike
  • msrobots wrote: »
    I seem to sound like a fan-boy, but what Eric has done there is simply mind boggling. He seems to have the passion and skills you have for machining things just using it in his software forge...
    ...the sheer AMOUNT of work Eric did put out for the P2, makes me wonder how he does it.

    Well, since @msrobots went all fan-boy, :smiley: on @ersmith & FlexGUI, I'm following his lead.

    I have a theory that "Eric" is actually a cybernetic organism... not one of us meat-machines... which would explain how I report a bug at 2 AM and 30 minutes later it's fixed. Either that or "Eric" is actually 8 guys in 4 different time zones. Either variation of this conspiracy theory is supported by the evidence.

    So yeah. Sir Eric... it's time to stop being so durned humble and take a well-deserved bow! (And maybe release FlexGUI V4.1.1? heheh)

    And while we're toasting our stand-outs, there are a bunch more bows that need to be taken: Chip, Ken, Cluso, JohnnyMac, Peter, OzProp, Rogloh... jeeze... I can easily list 30+ folks who move my Parallax world. I do hope to meet you all someday, buy you a drink, and go all geeky.

  • Started to experiment with using a touch potentiometer that is 2.5 inches long.
    71481402-78F4-4533-BABC-AE8B2E011D52.jpeg
    Hooked it up to a multimeter to see how much pressure is needed to activate, don’t have to press on it very hard for it to activate. Since this thin plastic would be on the bottom of the foot, it needs some protection that can take some abuse yet flexible enough to allow activation.
    A0026795-3C5A-42F0-96A1-62072628ED57.jpeg
    I found a 3/8” thick rubber sheet that when placed over the potentiometer still provided enough movement to activate the sensor. The sensor is open with no pressure and reads up to 10K depending on where the pressure point is on the sensor. At this point I don’t really care where the touch point would be, just need to know that it is touching.
    Next step is to machine a test rig for one leg. I had some 1.5” x 1.5” aluminum bar laying around so I cut a 2.5” chunk off to build something with on the CNC mill.
    B044EE3F-DE87-429A-BE77-586B82AE5682.jpeg
    The idea is to put a curve on one end that the potentiometer will be attached to. The curve is needed so no matter what angle the leg is to the ground, the potentiometer will still activate some value. A strip of the rubber will go over the potentiometer to protect it from direct contact with the ground. The other end of the block will be turned on a lathe to fit into the bottom tube on the leg. Testing determines any refinements to the design and the best way to attach the potentiometer (it has a sticky backing that should work OK) and the rubber strip. I could epoxy the rubber or see if screws are better. It all needs to be somewhat water resistant so nothing shorts out in the rain or walking through puddles. The last thing I need to figure out is how to set up the electrical connections to the potentiometer. The best way would be to run the potentiometer connector into the interior of the lower leg tube so there isn’t any exposed wiring down low on the leg, have to figure that one out.
  • If you know that the value you may not even need an ADC, just a voltage divider that will change state on a pin. Contact/no contact scenario, without any superfluous info or code.
  • If you know that the value you may not even need an ADC, just a voltage divider that will change state on a pin. Contact/no contact scenario, without any superfluous info or code.
    Thanks for the idea, I have always needed an actual ADC value whenever I read a potentiometer. Since all that is needed is any reading then I just read the state of the pin instead without needing a ADC.
    Been busy on on the milling machine coming up with a new design of the leg foot for testing and finally got the CAD done and machined. Still need a few tweaks to the design but this will do for testing.

    0FF72FF4-B083-4890-997C-EC1CC0F285F6.jpeg
    This is the initial test foot made out of a block of 1.5” x 1.5” aluminum. The rounded area fits into the lower leg tube extension, the end hole is threaded for the 1/4 - 20 thread rod that holds the lower leg assembly together. The flat part on the rounded end has a small slot for the potentiometer connector to slide through so that the connector is physically inside the lower leg extension.

    903B8EFB-D93C-4D3F-B878-DEBDD576C587.jpeg
    This shows how the potentiometer will wrap around the outside curve of the foot.

    A663D28A-FBF0-4865-93DB-B3DD131732EF.jpeg
    This shows how the connector end of the potentiometer comes out along side the flat section on part that fits into the lower leg extension tube. It also shows the slot on the curve that connects the everything together.
    I still have to cut the rubber protective sheet and figure out how to attach it to the curved section of the foot. It will probably need epoxy to make it stay in place. I can also look into using screws to hold it down. Another problem to figure out is how to keep the new foot from rotating since the flat part of the foot needs to always touch the floor to activate the potentiometer. The only thing holding it together is a section of threaded rod that is inside the lower leg extension tube. Because of this there is currently no means of preventing the foot from potentially rotating as the leg moves. So I will need some method of locking the position of the foot in place

    Software-wise I need the code to read the potentiometer output and put the foot on the robot with new code to use the leg down activation as a way to know when the leg has touched down correctly. First off is coding for flat floors but I want to think about when the floor has variations in height like outdoors and for climbing stairs. Next posting should show the testing results.
  • JRoarkJRoark Posts: 371
    edited 2020-01-21 - 19:25:08
    3M makes a black rubber weather strip adhesive that you can find at auto part stores. If you clean the surfaced well, it has a ferocious hold.

    Edit: this is the stuff https://www.zoro.com/3m-weatherstrip-adhesive-tube-500-oz-black-08008/i/G0605701/?gclid=EAIaIQobChMI_-fhs7WV5wIVyICfCh2zkgvbEAQYASABEgJpUfD_BwE
  • I did some code work with the flexible potentiometer, ended up coding it like a switch. So when it is touched I had a LED lite up. I can touch any part of the potentiometer and the LED lites up immediately. However it takes about 2-3 seconds for the LED to turn off after removing pressure.
    I don’t think this will be a problem as I mainly just need to know when the leg tip is touching a solid surface. I think the long response time is due to pin capacitance ramping down. Any ideas on how to shorten the time so it is faster?
    I discovered that I misread the diameter of the leg tube extension so the test leg bottom I machined is too small a diameter for the leg tube. So its back to the CNC mill and machine up another test piece. I’ll put in some design changes I came up with already and hopefully see what works. This next one I may machine out of black Delrin, that will match the mostly black finish on the rest of the robot (I don’t have to anodize it either!).
    It’s going slow, too many around the house and RV projects going on that are taking up my time! I didn’t realize that once you retire you actually have less time to do things...
  • maybe a pull down resistor to get it down faster, say 10k?

    Mike
  • I’ve been gone a while but the stay at home thing is finally getting me back to work on the robot. I continued to develop a ‘foot’ for the robot, the first versions didn’t work out too well but I think I’ve got one that is close to meeting my needs. I finished machining the foot assembly out of Delrin tonight.
    C6B8DAC9-8E5E-4EE2-92C0-62094376D697.jpeg
    These are the parts used, the large round piece is the actual ‘foot’. The smaller round piece is a cover. The flexible potentiometer is there along with a red protective rubber cover.
    72868067-C03F-4419-960B-3F5F56D1A6AA.jpeg
    This photo shows how the potentiometer wraps around the outside of the foot with the connector placed inside the cavity in the foot. The lower leg attaches using a 1/4-20 all thread rod that screws into the foot and then into the knee portion of the leg. This way I don’t have to drill any holes in the round lower leg section to hold everything together. There are also holes in the foot for wires to the potentiometer to travel inside the hollow leg section out of sight.
    108F84B6-14B1-47BB-B469-3EBC09F3FD5B.jpeg
    This shows how a protective rubber cover will be attached over the potentiometer to protect it from the ground. The cover goes over the opening in the foot to keep out water.
    The sensor is mounted so it will activate in all the normal leg stances from vertical to sticking out at a high angle. I went this route for the leg down sensor since I was unable to find any switches that would activate over such a wide span of input angles. I still have to route the wires through the other end of the leg and to the leg controller so theire will some more hole drilling for that.

    Bob
  • Do I ever feel like a dummy! I made a second ‘foot’ with a couple of minor changes after modifying the CAD and CAM files. Somehow i ended up re-using the original file so I now have a duplicate part. I just went in and manually made the appropriate changes to the CAM file, ready to try again tomorrow.
    Grrrrrrrr!
  • DiverBobDiverBob Posts: 763
    edited 2020-03-31 - 02:43:27
    Cold miserable day outside so early start in the workshop. Got the prototype leg down switch mechanical parts machined and started to put everything together.
    8C12983C-4CA1-47FA-B971-DCCE84661E48.jpeg
    This is the Delrin foot with the flexible potentiometer attached. The potentiometer is connected to a 2 wire socket.
    DEFD5685-5391-437B-B1E4-027664840C7B.jpeg
    This shows the top of the foot with the cutout for the lower leg extension and the wires that go up into the extension. The center hole is threaded for a 1/4-20 threaded rod that pulls the foot and upper attachment pieces together. The connector is shown in the photo also
    3F3765D8-6DE6-471D-A367-695DFA389E0C.jpeg
    This is the other end of the lower leg extension. This shows the spot for the threaded rod to attach and the new hole drilled to pass the cable up through the extension. The fun part of threading this together is that the wire inside the leg extension will wrap itself around the threaded rod so there has to be enough slack to allow it to wrap as the parts are threaded together.
    This is the foot with the protective rubber piece wrapped around the potentiometer. I used screws to hold the rubber in place for the time being. I will epoxy it down later but want to be able to access the potentiometer during testing. The side panel is also on the foot.

    B3EA8F6A-733B-4A05-91B3-1CEA48BC5130.jpeg

    This shows the whole lower leg assembly put back together and ready to reattach to the leg.
    CF65D2BC-4C09-4996-8025-37CBEB239691.jpeg
    Here is where I’ll be working tomorrow, wiring in the new sensor back up to the controller computer. Hopefully I’ll have time enough to do some coding to test it out.
  • In between sleep and getting house improvements done during this isolation period I got some time to play in the shop. Today’s task was to get the robot power system re-installed and get the updated leg back on and hooked up. I don’t know why all the photos rotated on me when I inserted them, first time I’ve seen this happen.
    3A66EBD5-15EF-47EC-8194-A55B8420D1FB.jpeg
    The battery compartment is fairly roomy, I can put in a much larger battery if needed. I have been checking out lithium batteries around the 25 amp hour range, those are fairly pricy at this point. I might be better off building my own battery, I’ve seen several instructions on how various people have built batteries themselves, both wiring setups and battery management systems. I have some experience with lithium systems, I designed and put a 400 amp-hr battery in my RV that works pretty good. Lithium batteries are great but their are some crazy power capabilities that make working with them a serious matter.

    2041A51F-3B7F-48A6-BEE8-71FDB96BA1DF.jpeg
    Here are the power and sensor plug in boards for leg #5. Still have open slots for connectors.

    03546127-1600-44AB-A3F2-2B257B08CB94.jpeg
    Here all the motor power connectors (large white connectors at top of photo) plugged in. The bottom plugs are sensor power and signal connections. Its a tight fit to get everything plugged in while simultaneously holding a 26 pound leg steady. Once the sensors are plugged the leg is secured in place using 4 bolts. Thank goodness I decided early on to design everything to be modular so it would relatively easy to disassemble and reassemble.
    063936E3-2821-4207-BA81-5D5707A4459A.jpeg
    Now the leg is attached and ready to do some testing under computer control.

    I turned the key that turns on the main power, got the green light but my display panel that (Lascar PanelPilot SCD 24M) did not start up and show current battery voltage. Removed the panel and the ground wire had come off. It turned out that getting that wire back in the connector was harder than expected, loosening the connector with a screwdriver didn’t change the opening for the wire and trying to force the wire into the hole just turned the wire into a rats nest. I gave up for the night, tomorrow I’ll solder the end of the wire and see if that works better.
  • ercoerco Posts: 19,631
    Amazing progress, DiverBob! You are the most tireless builder I have ever "met" and your persistence is incredible. Keep up the excellent work!
Sign In or Register to comment.