-
The Slippery Wheels Conundrum
08/19/2014 at 21:47 • 1 commentAs soon as I got back from my trip I started working right away on the question of the slippery omni wheels not gripping very well to the XY plane, due to the plastic rollers. I was already expecting this to be an issue, I was just hoping for it to be more easily solved.
The first idea that I had was to try to increase the friction by addressing the XY plane itself, which is just some sort of light wood board for now. I tried several different strategies some of those showed only very limited success (i.e. some improvement, but hardly enough). Some of the main ones were: to simply use a melamine coated wood board which naturally has a rough side; to glue some anti slip mat (used to line drawers) to a wood board; to spray some rubber based paint on a wood board. (Picture below).
Right from the start I did notice that the wheels do seem to grip (a bit too) well to the neoprene side of my mouse pad, so in light of the limited success of my previous attempts, I decided to order some neoprene fabric (which is not so cheap), and to try that one next.
Another possibility to address the issue at hand is to select different omni wheels. There are some very nice ones out there on the market but usually they come with a heavy price tag. I did find some alternative wheels with rubber rollers, and a somewhat different configuration that are still at an acceptable price (less that 6 euros per wheel, about the same price as the ones I am currently using), so I should be trying those next.
Low cost of the final product is an important goal of this project, that is why I always try first the cheaper alternatives, and not necessarily the ones that look more promising. It would certainly be cheaper for me if I invested directly on the solutions that I figure had the most chances of working on the first try, but instead I find myself spending a bit more trying to figure out the cheapest option available. However my engineering mind does get a kick out of this extra challenge.
Yet another alternative that I am now considering is to build some sort of DIY omni wheel lookalike. This idea was suggested by some Hackaday readers on the comments section (of the blog) when my project made the front page (Yey!). I had several nice suggestions there, but I wish to send special thanks to [jimmy_pop], and [RunnerPack] for the very helpful hints that got me on this track. The main idea here is to use a couple of rubber balls on axes placed 90 degrees apart which should work similarly to an omni wheel (but much easier to build). I believe these are called Killough wheels, and an example can be found at:
http://www.cs.hmc.edu/~dodds/projects/RobS01/Assignment4/holo.htm
I have a couple different ideas revolving around these kinds of wheels, and at least in my mind they look really great, but I worry that with only basic tools, and limited build skills the end result might not be that impressive.
I am really hoping to get it working with standard (but cheap) omni wheels, but even so I wish to explore this other alternative (i.e. DIY wheels) to have another option for very tight budgets.
My main drive to have an hardware that works consistently from the start is that I am developing the firmware on an Arduino. We all know this platform is not the easiest to debug, so my best strategy to work with it is to take "baby steps". I mean, I wan't to have something that works right away, and build up the complexity incrementally. The idea here is to write just a few lines at a time, and keep testing it frequently to catch the bugs early thus easing the debugging requirements.
-
It (almost) looks like a 3D printer...
07/21/2014 at 22:15 • 0 commentsIn the last few days I finished the basic skeleton of my 3D printer, and now it almost looks like one!
The darn thing came out bigger than I imagined though! I was aiming for a build volume of around 30x30x30 cm, and I gave enough margin to achieve it, so in the end my "desktop" printer no longer fits on my desktop! Well my desktop is kind of small anyway...
However in this first iteration I might not even reach those marks. First of all the aluminium support you can see above the XY drive system is limiting the Y axis travel to around 20 cm or so, and the drawer slider I am using for the Z axis is actually limited to 27 cm when fully extended. Those are the maximum values, but the main limitation is still the XY surface that I am yet to find the best candidate for. Due to the way things are setup the full XY surface would need to be around 60x50cm, (for a 30x20cm build surface), it also needs to be pretty flat and not to heavy, and additionally allow the omni wheels to grip well. To make a long story short, It has been tough to find a material that fits all those three constraints (and yet while not being too expensive). I was aiming for some sort of melamine tray, but they don't seem come in those big dimensions, so the search continues.
This is how it would look with a (too short of) XY surface. Unfortunately the MDF leftovers I had lying around aren't big enough to give it just a trial run.
The next picture gives a closer look of the XY drive system. The main idea is for the wheels to push the XY surface against a rigid structure. This has two main purposes. One is since the XY plane is much bigger that the distance between the wheels the aluminium structure above prevents it from tipping over. The other reason is to prevent Z axis oscillations due to the unevenness of the omni wheels. To that effect the holonomic drive system is mounted on a suspension that pushes the XY plane against the big aluminium square above it (it has 3 caster balls that can barely be seen in the picture bellow).
The shape of the XY support structure is not the ideal one to allow the full extent of the Y axis, but it was the easiest to build. I'll stick with it for the time being for my initial testing, and replace it later on with something more sturdy and which does not limit the Y axis travel (to let it have the full 30 cm range instead of the current 20cm).
Unfortunately I will not be able to work on the hardware part of this project for the next few weeks as I will be traveling on vacation with my family. I'll try work (in the evenings) on the code, and on the documentation, so it won't be a complete halt.
-
It has eyes!
07/17/2014 at 07:29 • 0 commentsThings are moving slowly but at a steady pace, but between a very demanding job, and actually spending some time with my family it is hard to do any better. However any free time that I can get hold of, is to advance this project.
This is my latest achievement, and I finally completed the principal part of the XY plane movement. You can recognize the holonomic drive system in the middle, and an array of 4 mice around it, in an (almost) perfect square.
Everything is standing on screws for easy adjustment. This is crucial, since the focus on the mouse optics is very narrow (just a couple of millimeters), and they need to be adjusted to be very close to the surface of the XY plane (bottom side).
Things are not as compact as I would wish but since time is very short, I am aiming for an easier build rather than the most efficient prototype. The main disadvantage is that the XY plane will need to be much larger that the actual build surface. This is due to the fact that it has to be over the wheels and mice all of the time, for every point that can be reached by the print head. In sum I need right now an extra 10 cm around the usable work area.
Also since the XY plane will be much bigger that the area defined by the wheels I need some kind of support for it not to tip over. I still have to build this support to start testing the performance of my drive system with optical feedback.
-
Found memories of my youth...
07/07/2014 at 23:37 • 0 commentsI woke up last Sunday morning needing to draw 120 degrees angles, so I embarked on a quest to find a protractor around my house. Of course none could be found. I even went through my kids school stuff but apparently a protractor is not part of the required school material for 8 year olds... Go figure!
Then a faint recollection of my youth popped into my mind of me splitting a circle into 6 parts (almost the same!) on the school's black board using a giant compass and ruler... We sure did know how to have fun back then!
I was filled with joy because a compass is actually part of my hacking tools (but not a protractor) so I created the beautiful peace of art below that would serve as the basis for my holonomic drive system.
A quick break for some STEM outreach: For any young hackers possibly reading this, please do pay attention to those geometry classes... It might actually save you a perfect hacking (Sun)day in the future!
The other big advantage of having a very limited tool set to work with, is that you also get a very nice workout with all that manual sawing that needs to be done. Working on the metal parts is where you burn the most calories. Who said hacking is a sedentary activity? (Probably no one!)
At the end this is what I had to show off. I am specially proud of those crooked edges, but that is what you get when you saw things literally over the knee. This is just to show how not to do things, clamping things down when sawing really makes it easier (as I recall it from my youth as well). A vice is already in the shopping list however!
In the end it didn't turn out too bad... Luckily the screw holes had a little play, so I could compensate a little the small(ish) imperfections of the build. The servos ended up attached to the board rock solid, and the shafts seem to be in the correct alignment as well.
The moral of the story: pay attention of the errors you are introducing along the way, then to compensate them just create more errors in the opposite direction. In the end it might turn out OK!
That's it for the time being. At least now I can get things moving (pun intended)!
-
Testing Accuracy
06/28/2014 at 23:10 • 0 commentsThe crux of this project is of course what kind of accuracy to expect from the mouse readings, so I have been doing a lot of experimentation to try and figure out what to expect.
Unfortunately even with all the trials I did so far I cannot yet tell for sure that I can get enough accuracy/repeatability to be of any use for a 3D printer. On ideal conditions, for instance with slow movements, and on a good surface, it seems that the results I am getting are much more consistent. But as soon as the movements are a bit more erratic, and with enough acceleration, then errors start building up quite quickly.
Strangely enough I get somewhat less error accumulation when the mice are connected to the PC than when they are connected to the Arduino DUE. I might still have some issue in the PS/2 communication that is making matters worse, so next step is actually checking that my method of reading data from the mice is sound. Of course that on the PC side I had to turn off the mouse acceleration (with a known registry hack) to have meaningful readings in Windows.
From the start I didn't expect this to be easy, and my plan to mitigate the errors accumulating included using several mice, and take advantage of the geometric relations among them to figure out where the errors are. That is why you can see the weird contraption below with several mice scotched to a piece of cardboard. In this particular configuration all the readings on all the mice should be the same (if we exclude movements with rotations), but the reality is that after a while they start to diverge. One simple idea for an error reduction algorithm in this case, would be to take the max value of all the readings, being that it is probably the most correct one. The reason behind it is that due to the way an optical mouse works, it is reasonable to assume that it should not over report a displacement.
I guess that I still have a lot of research to do on how to adequately mitigate the errors I am seeing, and I hope that there is a solution waiting to be found. In any case I am starting to see that my chances to having something ready before the THP contest deadline are slim to none, but that was just the excuse to get me started.
Truth be told, this question of using optical mice for closed loop robots/whatever has been scratching my mind for quite a while now, and now that I am on it, I feel that I cannot be stopped!
I have this gut feeling that this should be possible, just don't have yet the full solution for all the problems.
-
Parcel at my door!
06/21/2014 at 20:58 • 0 commentsWow, this was super fast. I just ordered this stuff three days ago (late in the evening), and this morning the postman was knocking on my door with a parcel in his hands... Could not believe it!
Now I can start prototyping. Time to roll up the sleeves and get to work.
I have to say that I am a bit disappointed with the omni wheels, the plastic rollers don't seem to exert a lot of traction. Luckily I can fully control the surface that they will be adhering to. But it also needs to be good for the optical sensor in the mice.