A little late to the party, but here is my take.
The robot is made of Al parts and rivets, and 3D printed wheels. The motors are the cheap steppers. Sorry, no plywood.
I remotely programmed it with the Wifly module and Tachyon Forth.
From the terminal to start an eight figure I enter:
2ndcircleradius 1stcircleradius eight
in this case I typed:
250 375 eight
Attached is also the code. The constant to be set are in the first part.
Thanks. Great fun indeed. I had fun both building the bot and writing the code.. I started with a fully 3D printed project, but rivets are so easy to use..
Both the orbit challenge and the ellipse challenge are extremely intriguing.... :-)
This is my attempt at making an inexpensive robot.
The chassis is made from foam board. You may notice there isn't a caster wheel. It's just a piece of foam board that drags along the ground to keep the robot upright. It was really easy to build it mostly held together with double sided foam tape. No glue was used on this robot.
I'll likely redo the wheels with some peanut butter lids once I finish eating our two jars of peanut butter (I'm slightly allergic so I can only eat about 1/4 of a jar a day). The current Lego wheels are out of place with this cheap bot. I like the Lego wheels but I want to keep the BOM for this bot as low as I practically can.
@Duane Degn, How do you power your QuickStart? I thought it had to be tethered to the computer.
Larry,
Pins 39 (ground) and 40 (Vin) can be used power the QuickStart board.
I found a picture here showing how I connect a battery pack to the QuickStart. When I use NiMH batteries, I plug the battery pack (with four AA cells) directly into the QuickStart board without a regulator in between. I don't recall the voltage the QuickStart board can tolerate on its Vin pin but I'm sure it's more than the 5.4V of the freshly charged NiMH cells.
I was having too much trouble with voltage changes from discharging NiMH cells to continue using the raw voltage from the battery pack. In order to keep the speed of the servo consistant, I added a voltage regulator to keep the Vin a constant 5.0V. Once I started using the voltage regulator, I also used Li-Ion cells in the battery pack. This combination kept the servo speeds consistant from one run to the next.
It's actually an RC airplane wheel that I got from the local hobby store. I have a mecanum wheel, one of many ideas I've picked up from erco. The project I'm working on is mostly for fun and knowledge so I probably won't spend a lot on its appearance.
Duane, can you recommend a supplier for the headers?
I'm hoping you'll make a video so we can see that beauty in motion.
I did post a YouTube video a few days ago because I learned to control my steppers differentially meaning I could program it numerically to move in an arc. That video will have to show some life without my help or I'll replace it with something worth watching.
I think the two by four female header was cut from a section I purchased from Digi-Key. Two single row headers works just as well (and sometimes better) as using double row headers.
BRAVO! That was two beautiful circles! I can almost see the sins & cosines flowing past. Now I love your mecanum video, too, but that was clearly two octagons... the EASY way out. These circles are impressively smooth.
I'm picky in my old age. It takes a discriminating eye to pick up on these subtleties, but I know there's a heck of a lot of code and testing required to get a nice smooth run like that. Encoders, right?
Next, my man, I'd like to see your bot rotate on axis as it traces out a figure path...!
BRAVO! That was two beautiful circles! I can almost see the sins & cosines flowing past. Now I love your mecanum video, too, but that was clearly two octagons... the EASY way out. These circles are impressively smooth.
Unfortunately the Mecanum is one of the robots in rebellion. I agree the Mecanum made two octagons. I had a bug in the program that converted the floats to integers too early and the rounding error turned into a squaring error (as in flattened circles not a number multiplied by itself). I've since fixed the bug but I haven't made a new video of it in action.
The omni bot code was pretty simple. I just set the speed to two thirds it's maximum and incremented the direction (by 1/200 of a circle) 200 times per loop of the "8". It could be improved by taking into account the start and stop times.
I'm picky in my old age. It takes a discriminating eye to pick up on these subtleties, but I know there's a heck of a lot of code and testing required to get a nice smooth run like that. Encoders, right?
Not in this one. Just those expensive Dynamixel AX-12+ servos. Not the most practical application for the servos but they sure make nice motors.
The only testing consisted of figuring out where to put the pie tins so the robot wouldn't hit them. The code pretty made the figure 8 a guarantee. I got lucky it was about the right size. You're right about the sines and cosines; there's a bit of trig involved to get the motors to run at the correct speeds.
Just those expensive Dynamixel AX-12+ servos. Not the most practical application for the servos but they sure make nice motors.
OK, that demystifies it a bit. Those have velocity feedback and all kind of onboard help (nearly encoders!). I'm still impressed.
You saw my fake mecanum 8 a few posts ago. Those are just DC motors and L298 controllers. I plan to do an 8 with real circles there, too, more like your octagon. But also without encoders. I have to do some testing and map out wheels RPM to PWM input. It's nowhere close to a linear relationship.
You saw my fake mecanum 8 a few posts ago. Those are just DC motors and L298 controllers. I plan to do an 8 with real circles there, too, more like your octagon. But also without encoders. I have to do some testing and map out wheels RPM to PWM input. It's nowhere close to a linear relationship.
Good luck. Not only is the relationship between PWM and RPM not linear, it's not even a fixed relationship. The PWM to get to a certain RPM depends on the motors current speed as well as the target speed. Once the target speed is met, the PWM will need to be adjusted to keep from going even faster (or slower). It might be possible to tease out all these details but I doubt it will be easy.
Edit: My comments about PWM and RPM are true for the relatively under powered Rover 5. The relationship might be better behaved with more powerful motors.
Comments
-Tommy
Now let's see an orbit challenge video! That goes for you too Tommy!
I was using a cheap video camera from HobbyKing. Its microphone is really wimpy.
I just rewatched this video. The sound seems to loose sync with the video towards the end.
It's always just good fun and a little creepy to watch those guys walk around.
Obviously too much Johnny Quest as a kid!!
The robot is made of Al parts and rivets, and 3D printed wheels. The motors are the cheap steppers. Sorry, no plywood.
I remotely programmed it with the Wifly module and Tachyon Forth.
From the terminal to start an eight figure I enter:
2ndcircleradius 1stcircleradius eight
in this case I typed: Attached is also the code. The constant to be set are in the first part.
Any other takers?
Well done!!!
Great work Max72, :thumb:
-Tommy
That's even better than the Fifth Third bank in Michigan. https://www.53.com/site/about
Soon come, my Christmas tree video was not my entry.
Both the orbit challenge and the ellipse challenge are extremely intriguing.... :-)
Massimo
It's great to see a Forth robot.
Thanks for posting the video.
No bipeds? Aren't there a lot of Penguins out there? Where's Doggiedoc's Toddler?
Not even a Boebot crawler?
Hmmm. That proves that Duane is better than all the rest of us put together!
The chassis is made from foam board. You may notice there isn't a caster wheel. It's just a piece of foam board that drags along the ground to keep the robot upright. It was really easy to build it mostly held together with double sided foam tape. No glue was used on this robot.
I'll likely redo the wheels with some peanut butter lids once I finish eating our two jars of peanut butter (I'm slightly allergic so I can only eat about 1/4 of a jar a day). The current Lego wheels are out of place with this cheap bot. I like the Lego wheels but I want to keep the BOM for this bot as low as I practically can.
Larry,
Pins 39 (ground) and 40 (Vin) can be used power the QuickStart board.
I found a picture here showing how I connect a battery pack to the QuickStart. When I use NiMH batteries, I plug the battery pack (with four AA cells) directly into the QuickStart board without a regulator in between. I don't recall the voltage the QuickStart board can tolerate on its Vin pin but I'm sure it's more than the 5.4V of the freshly charged NiMH cells.
I was having too much trouble with voltage changes from discharging NiMH cells to continue using the raw voltage from the battery pack. In order to keep the speed of the servo consistant, I added a voltage regulator to keep the Vin a constant 5.0V. Once I started using the voltage regulator, I also used Li-Ion cells in the battery pack. This combination kept the servo speeds consistant from one run to the next.
erco, It's your fault my head is so big I can no longer find hats that fit!
I plan to start a thread tomorrow to post some more details about my cheap bot.
I only see beauty in that robot!
I see you're also using a "tail dragger".
I'm hoping you'll make a video so we can see that beauty in motion.
I made a bill of material for the robot here.
I think the two by four female header was cut from a section I purchased from Digi-Key. Two single row headers works just as well (and sometimes better) as using double row headers.
I'm hoping I can quell this latest uprising and get some more of my robots to perform here.
I'm picky in my old age. It takes a discriminating eye to pick up on these subtleties, but I know there's a heck of a lot of code and testing required to get a nice smooth run like that. Encoders, right?
Next, my man, I'd like to see your bot rotate on axis as it traces out a figure path...!
W9GFO and Kepler are long overdue for this!
Unfortunately the Mecanum is one of the robots in rebellion. I agree the Mecanum made two octagons. I had a bug in the program that converted the floats to integers too early and the rounding error turned into a squaring error (as in flattened circles not a number multiplied by itself). I've since fixed the bug but I haven't made a new video of it in action.
The omni bot code was pretty simple. I just set the speed to two thirds it's maximum and incremented the direction (by 1/200 of a circle) 200 times per loop of the "8". It could be improved by taking into account the start and stop times.
Not in this one. Just those expensive Dynamixel AX-12+ servos. Not the most practical application for the servos but they sure make nice motors.
The only testing consisted of figuring out where to put the pie tins so the robot wouldn't hit them. The code pretty made the figure 8 a guarantee. I got lucky it was about the right size. You're right about the sines and cosines; there's a bit of trig involved to get the motors to run at the correct speeds.
Why am I not surprised? This is on my (very long) todo list.
Agreed.
I also think Jeff owes us an OBC CheapBot figure 8.
OK, that demystifies it a bit. Those have velocity feedback and all kind of onboard help (nearly encoders!). I'm still impressed.
You saw my fake mecanum 8 a few posts ago. Those are just DC motors and L298 controllers. I plan to do an 8 with real circles there, too, more like your octagon. But also without encoders. I have to do some testing and map out wheels RPM to PWM input. It's nowhere close to a linear relationship.
Yeah, as I keep trying to tell you, if you have good hardware the software is easy.
Good luck. Not only is the relationship between PWM and RPM not linear, it's not even a fixed relationship. The PWM to get to a certain RPM depends on the motors current speed as well as the target speed. Once the target speed is met, the PWM will need to be adjusted to keep from going even faster (or slower). It might be possible to tease out all these details but I doubt it will be easy.
Edit: My comments about PWM and RPM are true for the relatively under powered Rover 5. The relationship might be better behaved with more powerful motors.