Next large robot



  • 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.


  • 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.
    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.
    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.
    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.

    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.

    This shows how the potentiometer will wrap around the outside curve of the foot.

    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: 365
    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
  • 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?

  • 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.
    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.
    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.
    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.

  • 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.
Sign In or Register to comment.