The trouble with hobbyist-level robot hardware

Randy M. Dumse wrote:


CPU boards aren't the problem. It's the sensors and actuators that are the weak point.
The single most effective thing that could be done easily would be to figure out how to reprogram some digital R/C servo so that you got position and current feedback, and interface those to some reasonable CPU. Then hobbyists could replicate Rod Brook's six-legged machines from a decade ago without having to have MIT-level expertise. If you have position and current info coming back, you can react to loads; otherwise, you're just positioning blind.
            John Nagle             Animats
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
John Nagle wrote:

You need MIT-level experience to solder an op-amp to the leads of a servo's pot? You might not even need the op-amp if your microcontroller's ADC inputs are reasonably high impedance. Other slightly more complicated methods have been demonstrated of tapping into the chipset and reading the error signal. Most brands use the same internal circuits, so once you crack the brand, it applies to most of their products.
Besides, one has always been able to determine that the servo is not in the place it's supposed to be by measuring the current demand on its V+ side. These and other approaches have long existed for those who want them.
-- Gordon
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Maybe. I'm sure I couldn't figure it out; I'm just a software engineer with a Master's in neuroscience. If it's that easy, please post details!

No, only for those who want them and know how to find them out. I've wanted them for a year, but until this thread didn't even know it was possible without buying expensive digital servos with 2-way communications built in. I still don't know how to do it; I only have your assertions that it's easy. Can you recommend a beginner-level book or website that describes these techniques?
Thanks, - Joe
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Joe Strout wrote:

Easy isn't a word I used, but you don't ned "MIT-level experience" to do it, either. (Or maybe you do, and MIT owes me a degree.) The process is about as physically easy/hard as modifying a servo for continuous rotation using the older resistor-substitution technique. If you can do that, this technique is in the same category.
The pot in a servo is a voltage divider: ground, V+, and wiper, the latter which represents current position. Basically you connect something that can read a voltage between ground and the wiper.
(Looking for me notes here... Ah, yes, here they are.) I once took apart a Hitec HS-422. Tapped into the pot with a scope, for testing. Yellow wire from the pot is the wiper. Red wire is ground, green is V+. As the pot moves the voltage on the wiper full-swings approximately one volt. Hold back the output of the servo, command the servo to move. You will see the voltage doesn't hange. Let the output go, and the voltage changes.
In an actual small robotics controller, you'd connect these the yellow and red wires to the input of an ADC on a microcontroller. If the ADC inputs aren't high-impedance you probably want to use an op-amp to prevent loading the output of the pot. Since the voltage on the wiper of the pot is likely to change depending on battery level, you will probably also need to read the V+ voltage to the pot (yellow and green on the Hitec).
These aren't details but most anyone with electronics basics can replicate this. The "hard" part is connecting to the pot leads in the servo. You have to figure that out depending on the type of servo you're using. The color coding I describe above is for an HS-422 made at least three years ago, when I did this experiment. Hitec may have changed things by now, but the general concept is the same.

I'm not sure what you're driving at here, but the only response I can think of is "yes, of course." Someone who isn't interested in the technique won't bother. How to find out is probably Google. Now that you know it's possible, perhaps you can do a search and find some hands-on tutorial somewhere that talks about it. Let us know what you find. Here's a link to get you started:
http://www.seattlerobotics.org/encoder/200101/EncoderPos.html
Or maybe this thread will encourage someone who needs this capability.
-- Gordon
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Goodness gracious! I should think so. As a long-time software engineer, and frequent teacher of programming, I think I can see why this didn't work. You observed people having trouble with BASIC, so offered them something more low level? That's like taking someone who's struggling to learn to drive, and stuffing them into an airplane cockpit. If the car is too hard for them, the airplane is not going to be easier!
I do applaud you for trying to address the problem, though -- it's true that programming is hard for many people at first. But the only ways to effectively deal with that are to make it easier, or avoid the need for it altogether. A stack-based or state-machine language, while easier to describe to an engineer, isn't easier for a newbie. Something like the Mindstorms visual programming is; as is BASIC with a very good IDE and some tutorials.
(And of course, avoiding it altogether is hard without severely limiting what your users can do, which probably wastes most of the power you were trying to provide.)
Of course you know your business and I don't; I may be way off base here. I hope you'll take it as an attempt to be helpful, whether or not it ultimately proves useful.
Best, - Joe
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

From a personal point of view the main limiting factor is man-hours. I don't have the time to devote to developing my knowledge and skills base beyond the barely competent. A hobbiest like myself must work within the constraints of the knowledge I can afford to accumulate.
Sure some better equipment would be great, but even then applying it is the real trick. I've had sensors sitting around for years because I've never quite got around to figuring out a way of integrating them into the robots I've built.
Cost IS a consideration for me. If it's not worth Bill Gate's time to bend over and pick up the $100 note he just dropped, I reckon my break-even point is the rusty old screw with the stripped threads. So spending a lot of money on components is a big commitment.
____________________________________________________ "I like to be organised. A place for everything. And everything all over the place."
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

For me, time is also the biggest factor. I know that if I wanted to, or absolutely had to, I could build every single board I needed from scratch to save money and/or to get it exactly to my specs. But with that also comes all the variables that I have to factor in when it comes time to debug why something just smoked. Not to mention the cost of all of the "throw-away" items accumulated during the design and experimentation phase. ( Actually I hardly throw anything away! )
Cost is also a big factor. I don't mind buying an expensive part if I am confident it will do what I need it to do.
The cool thing about robotics as a hobby or pursuit is that it encompasses so many different disciplines that you can buy the time and experience of others in the form of products you need as components, and concentrate on the things you really want to tinker with.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.