Converting SSC-32 to digital

Hello,

I’m new to these boards (and robotics in general, although I have had experience with building them several years ago) and was wondering if anyone out there has tried (or successfully completed) converting the SSC-32 to use fully digital servos.

For my project (which is still mostly in the planning stages), I am building a hexapedal robot similar in design to the H3R (but more robust) that will have an onboard micro-pc (P3-666 w/256mb RAM) doing all the processing. I have just ordered the SSC-32, and will use it with analog servos to get everything running, but would like to convert to digital as these guys have done:
home.comcast.net/~michael.p.thompson/ultraservo/
colinmackenzie.net

The first link there is using an Atmel chip (as the SSC-32 does) and I was wondering if it would be possible to either rewrite the firmware and bootloader on the SSC to fully utilize the digital servos, OR (since I think I saw that the bootloader is not flash-able), to replace the chip entirely. Later on, I will need the feedback from each servo not only of where exactly it is positioned, but also the power drain used keeping it there, so that the IK algorithms can find the most efficient leg positioning, and also to navigate very rough terrain (this thing will eventually be fitted with a GPS and sent off-roading) over long distances.

My goal with this project is the software side of things, particularly the AI for the pathfinding and motion optimization, so I don’t want to spend TOO much time working on the electronic side of things. I also know next to nothing about electronics, so I need some advice on this. If I need to discard the SSC later to convert to digital, I will, but I would prefer not to have to do that.

Thanks,

Mike

Ok? First off, how can you know what a Atmel chip is, with firmware and bootloader, and not know a lot about electronics :open_mouth: . That is odd. I don’t even know what you are talking about. Second, you don’t want to spend a lot of time on the electronics side of the project? ( :laughing: laughs in background). The main point of robotics [size=200]IS the electronics. The SSC-32 is the best multi-servo controller to get. Because you don’t really know a lot about building with robotics, I would consider using the servo erector parts and get plans for the type of leg of your choice. Then make your own body and electronics holder. If you think you know a little more than I think you do, maybe you could try hacking the hexpod with the erector set. It sounds like you are making a very complex AI robot. In my opinion, I think you should use a lot of BS2’s or higher (BSx and beyond) from parallax.com. Several of these should be able to hold all of your memory. Don’t be decieved by their size. Yes they are the same size as two pennies next to each other, but they can hold massive amounts of memory.[/size]

Hello MWGemini,

Welcome to the forums. You do not need to know a lot about electronics to get in to the robotics hobby, although it is helpful if you know some basics in electronics. You can easily build a bot and program it to do simple things. If you want to give your robot special features, then having the knowledge of electronics circuit design can give you expanded features or capabilities. For example, I am trying to design and build a head for my biped project that will enable the bot to hear and respond to sounds.

The SSC-32 you mentioned is the best on the market and it already has the ability to run digital servos, you just plug the digital servo in place of an analog servo.

If you want to get in to custom electronics, I say go for it. It’s never to late to start.

if you are planning to replace the servos with production digital ones the ssc-32 currently supports them and i believe lynxmotion was working on some firmware to take full advantage of their abilities. although i havent a clue as to when this will be available

on the other hand if you plan to replace analog servo internals with items similar to what you linked to then you have moved the most of the electronics to the servo itself. in this case the comm protocal has changed (from pwm to i2c) you no longer have use for the ssc-32 and your program will gain some complexity

the ability to change almost every aspect of the converted digital servos is an appealing one, not to mention the efficiency of moving alot of processes away from any central control units.

keep us updated.

nick

Good point Nick, I should have said OEM digital servos. My bad… :laughing:

There is no conversion necessary. The SSC-32 can talk to digital servos as is.

Can’t get more robust than this. (and still use servos) :smiley:

The SSC-32 uses shift registers and special programming to generate the pulses. The board will not allow bidirectional communication to the servos no matter what chip you use.

This is a challenging goal. Good luck with it.

I think that’s nearly word for word what I wrote to Jim when I was considering buying my hex over a year ago. I’m still working on the electronics. Now that I’m almost satisfied with them all, I’m about to throw in with Mike Thompson there and see if I can help him with the servo board replacement project.

One day, I’ll get to the code.

Wow- I go to bed, wake up, and all half the board has responded. Thanks! I’ll try to respond to everyone in one post as clearly and concisely as possible. If I miss anyone, I apologize, feel free to ask me for clarification.

Jpup: When I said I don’t know a lot about electronics, I meant things like designing the boards, etching them, what chips to use, what chips do what, etc. I have a basic knowledge of those things, but that has never been my primary focus, and so that is not an area I know a lot about. Most of the robotics guys I’ve known are the exact opposite. I don’t want to have to spend a lot of time on the electronics (as someone else posted later, they spent over a year on a similar project) because I want to focus on the software. I have taken some mechanical engineering courses and have already designed my robot using solidworks, and a friend of mine has his own machine shop, so the actual construction will be fun and easy. I wish I had the time to learn enough to develop entirely custom electronics. I don’t, however, so I’m trying to go the “out of the box” option as much as possible with that regard. I’m pretty much locked in to the onboard micro-pc for a few reasons. Primary being the processing power I will need for the AI routines. One of my (much later) goals is to also add vision recognition/processing to it. One of my friends is doing his doctoral thesis on AI/artificial vision, and will be helping me when I get to that point.

SN96: Thank you. Glad to be see this place is here. As I said above, I have a rudimentary knowledge of electronics, but with my work and school schedule, do not have the time to acquire the in depth knowledge to develop my own custom electronics (yet). I’ll probably pick that up as I go, as it is definitely a skill I want to have.

Nick_A: Do standard (production) digital servos have the position and voltage feedback as well? I was under the impression this had to be done by the end user. I saw in the SSC-32 manual that it has support for digital servos, and has a position query capability, but I do not recall seeing a voltage query ability, which will be vital to me later on. I’ll definitely be keeping a development journal if I can either a)get one of my other boxes set up as a web server or b)find a good free host (I saw a link in another thread that I’ll check out once I get something to write about).

Robot Dude: Thanks for the reply. I think my understanding of the difference between analog and digital servos may be wrong. You say the SSC-32 can support digital servos now, but does not support bi-directional communication. What exactly are digital servos? Do they offer any benefits besides being more accurate and possibly more powerful? I was under the impression I could also pull position and power drain information from them. I guess that to do that, I have no choice but to go the custom electronics route (which I won’t do initially, especially since the SSC-32 is already on its way to me). Also- by more robust, I simply meant the size of obstacles it will be able to navigate. My design is actually heavily based off the EH3R, and I was originally going to purchase one of your kits, until I started getting more ambitious with the end goal of my robot. Because of this, my robot will (eventually) have telescoping legs and a few other things to make things like stair climbing and movement over very rough terrain possible. Your design looks cooler though :slight_smile: .

andylippit: That is exactly what I want to try to avoid (but I know is probably going to happen anyway). As a full time student, between school, studying, and work, I don’t have a whole lot of free time, so I want to make the most productive use of my time as possible. Since my goal is the development of navigation/pathfinding AI, that means I want to spend as little time as possible getting the electronics working. In fact, I’m even debating whether to just purchase erector set brackets for “version 1” of the robot, so that I don’t have to spend a few months at my friend’s machine shop (between all my other activities) actually making the parts I need. I think that will come down to a cost issue. Bottom line, though, is that I’m anxious to start putting it together and (even more anxious) to start writing code for it.

Thanks for all your replies,

Mike

to the questions of position and current sense feedback: Beware when reading some controller docs as it may be answering a different question that you’re asking with regards to reading the positions. Most servo controllers will let you read the positions that you last requested them to go to. This is not the same as getting a reading of the actual position off of the potentiometer. Very few off the shelf servos that I know of will allow the reading of the internal pot (kondo ICS “red version” is one). I think there is some talk of being able to read the positions in upcoming HiTec servos but current ones cannot be read without modification.

Current sensing is something that can be done external to the servos with no modification and some rather trivial electronics. Off the shelf the only controller I know of that will do this is the NetMedia Servo8T boards. However they can only read about 2 channels per second, so if you need a constant flow of this data, those boards are near useless.

The project that Mike Thompson is working on (replacing the internal servo controller boards) is very different than a “digital” off the shelf servo and as far as I know is unique and unavailable in any commercial form.

The crux of all this is that if you feel you need current sense and position feedback from your servos you have to A) do custom electronics, B) drop a boatload on servos whose support is only in Japanese (Kondo), or C) wait until these things are more mainstream.

These two pieces of feedback data are what I’ve spent nearly a year trying to gather. You can see my results here vizlog.com/robot

Good Luck!

Wow Mike, what a reply!

I am very interested in your project. I started to do the same thing as you, I started to design my own biped parts to be machined, but then decided it would be better if I build a Linxmotion biped first to learn more about programming and walking dynamics. Once I learn on that, I can progress to making my own design.

I still want to make my own bot head to use on the Linxmotion biped since I am so excited about making my idea come to life, and it was a heck of a lot of fun to design. Right now, I am working on the audio electronics to give my bot head ears and to respond to the sound it hears depending on which side of the head the sound source is coming from. I have my bread board ready and I need to order some more parts to begin to build and test the circuit.

Andy: Looks like I’ll have to convert to the internalized servo electronics later on then. Since I don’t have the knowledge to do that right now, I’ll just develop of the SSC-32 once it gets here next week, and wring everything I can out of that. Hopefully I’ll learn enough about electronics that the thought of developing it all custom won’t seem as daunting in a few months. I looked at your robot page yesterday, looks very nice. I particularly liked the looks of your software. Is that using an openGL or Direct3d renderer?

SN96: My design is actually practically identical to the EH3R, just bigger. I designed the body around the batteries and electronics I expect to be putting inside, and the legs with the goal of large obstacles not being a problem. Initially, I am going to use aluminum rods instead of the telescoping leg sections. I won’t add those in until later due to cost and increased complexity (both hardware and software). I need to make sure my robot can navigate my house before I take it out to the woods anyway, so that extra range of movement won’t be required for a while.

Thanks,

Mike

Direct3D, though I have to be careful. After I got that up an running I thought “hmm… some shadows would make that look a whole lot better.” I’m a sucker for getting sidetracked. :open_mouth:

There’s no shortage of side projects when it comes to these things… if you’ve got time limits and your at all like me, watch yourself!

I’ve definitely got time limits (not on the overall project, just because of real life), and WAAAAY too many things I want to do. I know what you mean with the side projects. I toyed with half a dozen ideas for my expandable legs before I realized it would probably be a year before I even got to that point. If I had the money, I would have started working on the mechanical side of things long ago. Unfortunately, my wife has all the money, and I’m just a poor college student, so this project will progress slowly, I’m afraid.

Mike

i think if your into robots by definition you get sidetracked easily well at least i do. its amazing that i ever finished a robot, come to think of it none of mine where ever truely finished, just used for parts on a better, newer, more complex design.

nick

Have you thought about a wheeled bot rather than walker? If your goal is navigation/pathfinding, I think you’ll find a wheeled bot a MUCH easier way to go. Don’t have worry about all the servos or walking gaits, etc. Walkers look cool and can climb, etc. where wheeled bots can’t, but if your primary goal is navigation, I think you’ll find a wheeled bot will get you there quicker with less headache. It might be worth giving up some of the walking/climbing on your first go-round to get to what you really want to do quicker and easier.

MrJones, has a good point. You could take this project in stages like the Honda ASIMO started out as a box with two legs tied to a chain to keep it from falling over. Similarly, you could start the development of the AI using the wheeled robot as the starting platform, and work on perfecting the AI. You could also put an arm on it for additional AI development. Once satisfied, you can then focus on legged locomotion.

Just a suggestion.

I’d like to stick to the legged locomotion idea for several reasons: it will allow for more varied terrain, will be more of a challenge, and also looks much cooler :slight_smile:. I’m actually not too concerned with the method of locomotion, though. I don’t think making the legs move will be all that challenging. It’s just a relatively simple matter of figuring out where I want each leg to go and then doing the IK to get it there. The navigation and locomotion will actually be separate modules so that (ideally) I can put that AI routine into ANY robot and it will get the job done. Future project ideas include airborne robots, so my goal is to make the navigation AI as robust as possible. I’ll make my code available to anyone who wants it, once I get it working.

The big challenge will be the navigation stuff. That will be a software project that will likely take several years to get working WELL (starting with simple sensors, then adding GPS, then vision). I don’t think the locomotion module will take more than a month to code, once I have the mechanics constructed. Then comes the fun part.

Mike

Why don’t you just build a flying robot. Then you could could have a “UFR” (unidentified flying robot) flying around the world. Maybe, one day I would see it and accidently point my EMP (Electro-magnetic Pulse Generator) at it, press the big red button, and fry all of the circuits. Just kidding, I wouldn’t destroy some random AI robot just for fun… but I could follow it :smiling_imp: .

Hehe. Don’t fry my baby!

All joking aside- I want to build a legged robot first for several reasons, including:

  1. It will be a good deal easier, both mechanically and in software.
  2. It will be a bit more forgiving of failure (won’t walk as opposed to crashing and destroying itself).
  3. Will give me a chance to learn all the needed skills (electronics mainly) that I’ll need for the flying one.
  4. The flying robot I have in mind will actually be a kind of support vehicle for the walking robot I am working on right now, so it has to come first.
  5. I always wanted to build a legged robot. Don’t know why, but I’ve always thought they were really cool.

There are other reasons, too, but these are the big ones.

Mike

Greetings. I have been lurking on this forum for a long while now and this seemed like a topic I could add some useful information to.

You and I, (and apparently many other members of this forum) all seem to be working towards the common goal of autonomous robotic navigation. Where our plans differ is that I have done the “wheeled chassis” thing already. Actually, I have done wheeled and tracked vehicles. I am now working on getting a hexapod, with the SSC-32 and an onboard computer (PC-104 stack) running. I too and using analog servos with the plan to convert to custom digital controls (once I get my board router working).

I can say that the limitations of a tracked chassis with some good drive motors are not as great as you might think. A well-designed tracked vehicle can handle most offroad conditions quite handily. And, it is much simpler to control than a legged platform.

Also, one thing you might not have considered is navigational sensors. The motion of a legged platform will significantly complicate many of your sensor systems. GPS locks will be significantly less accurate (5 meters at best), unless you are willing to park your bot and set it in a stable position. Any un-even chassis movement (even up and down) will reduce GPS accuracy.

It will also complicate the process of closing the loop on your movement. In a wheeled system, you can sense how fast the wheels are turning, and thus determine how fast you should be moving. If the readings from your sensors do not indicate you are moving at your desired speed, tnen you can speed up your motors. However, in a legged platform, this is much more difficult, as your sensor platform (probably the hub at the middle of the legs) does not necessarily move in a continuous fashon, depending on your gait.

Being an individual with a very similar goal to yours, I figured I should share some of the information I have picked up over the past few years. I hope that these thoughts are useful.

Stephen