12-servo lynxmotion 209 standalone issue [forwarded]

Hi,

I recently assembled a 12-servo bipedal hobby robot. I ran it on a SSC-32u servo controller and set up an initial stance for it via its sequence utility.
As I proceeded with my project, I would like to make it as a standalone, such as making it walk without any usb cables. I then thought about adding a Xbee WIFI module to the SSC-32u board so that I may control my device remotely. However, the SSC-32u board does not store any coded data (as far as my limited knowledge of the board goes, but plz. correct me if I am wrong). I then started to connect my arduino Uno board to the SSC-32u board (like a servo controller shield). That way, I realized coding, data storage and wired executing. However, it does only perform linear control due to my poor arduino coding knowledge.
Apologize for my lengthy prologue.
My questions: in terms of my device's wireless control and its autonomy, should I use my arduino Uno as the major platform for coding OR should I use SSC-32u solely to realize its autonomous movement such as walking via a remote control ?
My appreciation in advance.

If you are comparing it to the Uno then for the sake of simplicity I recommend that you don't use the Arduino. However, if you have some Arduino board that perhaps has some advantages over the SSC-32u such as more memory or processing power, then it would be worthwhile. In any case you need to consider your project's requirements and then take action from there.

masamune_demin:
My questions: in terms of my device's wireless control and its autonomy, should I use my arduino Uno as the major platform for coding OR should I use SSC-32u solely to realize its autonomous movement such as walking via a remote control ?

What sort of commands do you want to send to the robot? Do you want to use a computer keyboard as your controller?

What about using a wireless game controller as an input device? By adding a $3 Bluetooth module, you could use an Android smartphone as a controller.

As I mentioned in this reply, I don't understand the appeal of using an external servo controller. I want to continually be calculating the next servo positions based on control inputs or sensor inputs. Unless I'm having a robot perform some scripted action, I want the controller to be continually updating the servo positions. Even with scripted action, I think external servo controllers are limited to linear motion (each position advances by some set value, the resulting motion can of course be circular).

I'd think an Uno should be able to handle 12 servos. You'll need to figure out a way to get power to the serovs. In reply #12 of the above linked thread I show the sort of boards I used with my hexapod. The Gerber files are available if you wanted to have some made yourself. Of course that sort of board is easy to make with some perfboard, headers and solder.

Walking is all about balance. You need to understand how to maintain balance in a walking robot first. Whether or not you need potentiometers depends on whether the servos you are using are smart servos or not. It they are smart servos then those won't be necessary since the smart servos also read positions back for you.

DuaneDegn:
What sort of commands do you want to send to the robot? Do you want to use a computer keyboard as your controller?

What about using a wireless game controller as an input device? By adding a $3 Bluetooth module, you could use an Android smartphone as a controller.

DuaneDegn:
What sort of commands do you want to send to the robot? Do you want to use a computer keyboard as your controller?

Thank you for your reply.

I presume using my computer as my controller though I do have a ps2 controller and a receiver but they are for the SSC servo controller. And I do not have any android-friendly device. So, largely a computer would be ideal.

In terms of coding, I am an absolute newbie; I just learnt yesterday how to code to adjust servos' positions one by one using loop command on my arduino uno board. what other commands do you suggest contribute to a point to make my robot walk ? I know that I should learn from basics and I do not know why I started with such a difficult project (to me at least) besides interest. Systematically, do you know any educational material about coding to make a 12-servo bipedal robot walk? I watched several walking robots videos but few of them demonstrated how to make them walk by coding. Do I need potentiometer(s) to show servos positions ?

My appreciation in advance.

masamune_demin:
I do have a ps2 controller and a receiver but they are for the SSC servo controller.

You can use the PS2 controller with the Arduino.

masamune_demin:
And I do not have any android-friendly device.

Does this mean you don't have an Android device? If so, that's fine. The PS2 controller would probably be a better interface.

masamune_demin:
Systematically, do you know any educational material about coding to make a 12-servo bipedal robot walk?

No, I don't know of any bipedal robot tutorials. I suggest learning to control a servo well. Control the servo so it doesn't slam from one position to the next.

I posted some joystick/servo code here. I think the code is a good example of how to ramp up the speed of servos in order to produce smooth motion.

I personally like to use algorithms to control servos. My hexapod has an algorithm which tells its feet where they should be positioned. The IK algorithm then calculates the angles to which the servos should move. I think the same sort of thing could be done with a biped. Here's an old video of animated Lego minifigures. I used an algorithm to generate the various positions in the minifigure. When/if I make a biped, I plan to use a similar approach to generate movement.

It would likely be easier to use a table of servo positions in order to generate a workable gait for your robot. I haven't used this approach myself but I believe it's very common.

You might be able to use a wireless device between your servo controller and the computer. I don't know enough about the servo controller you're using to know how practical this would be.

masamune_demin:
Do I need potentiometer(s) to show servos positions ?

No. The servos have potentiometers already. You generally don't need to read back the position from a servo. As long as you're not driving the servos past their mechanical limits and not stalling the servos, the servos should be positioned as commanded by the Arduino. The Arduino already knows the servos' position since it just told them to move to the current position.

DuaneDegn:
use algorithms to control servos. The IK algorithm

Thank you for your reply.
Would you mind elaborating more on the subject of IK algorithm. Does "IK" mean Inverse Kinematic. I searched it on wiki and it links to Kinematics equations; it looks complex...esp. matrices...

DuaneDegn:
a table of servo positions in order to generate a workable gait for your robot.

Do you mean that I pose my robot like an articulated figure and record each position ?

goodinventor:
Walking is all about balance. You need to understand how to maintain balance in a walking robot first. Whether or not you need potentiometers depends on whether the servos you are using are smart servos or not. It they are smart servos then those won't be necessary since the smart servos also read positions back for you.

Thank you for your reply; I wish I could use smart servos but they are expensive. :slight_smile:

What servos are you using? Maybe I can look up the datasheet and tell you the features it has (if you don't want to look it up yourself).

masamune_demin:
Would you mind elaborating more on the subject of IK algorithm. Does "IK" mean Inverse Kinematic. I searched it on wiki and it links to Kinematics equations; it looks complex...esp.

Yes, "IK" stands for Inverse Kinematics.
The complexity of the equations depends on the complexity of the robot joints. I used rotation matrices to calculate the positions of the minifig pieces in the animated video but I didn't use rotation matrices in my hexapod program. But you're right, the math is pretty complex (which is why I wanted to make a hexapod).

masamune_demin:
Do you mean that I pose my robot like an articulated figure and record each position ?

Yes. You often use some sort of algorithm to move between these poses.

DuaneDegn:
Yes, "IK" stands for Inverse Kinematics.
The complexity of the equations depends on the complexity of the robot joints. I used rotation matrices to calculate the positions of the minifig pieces in the animated video but I didn't use rotation matrices in my hexapod program. But you're right, the math is pretty complex (which is why I wanted to make a hexapod).

Yes. You often use some sort of algorithm to move between these poses.

Which is why I am getting ahead in math. I need to learn how to maintain balance myself in a robot.

goodinventor:
What servos are you using? Maybe I can look up the datasheet and tell you the features it has (if you don't want to look it up yourself).

goodinventor:
What servos are you using? Maybe I can look up the datasheet and tell you the features it has (if you don't want to look it up yourself).

Hi goodinventor,
Plz. refer to the link for the servo specs.

I am using futaba s3003 servos.

DuaneDegn:
Yes, "IK" stands for Inverse Kinematics.
The complexity of the equations depends on the complexity of the robot joints. I used rotation matrices to calculate the positions of the minifig pieces in the animated video but I didn't use rotation matrices in my hexapod program. But you're right, the math is pretty complex (which is why I wanted to make a hexapod).

Yes. You often use some sort of algorithm to move between these poses.

Hi DuaneDegn,

Thank you very much for pointing a direction for my project. Now I shall learn some math to get it moving. :slight_smile:

goodinventor:
Walking is all about balance. You need to understand how to maintain balance in a walking robot first. Whether or not you need potentiometers depends on whether the servos you are using are smart servos or not. It they are smart servos then those won't be necessary since the smart servos also read positions back for you.

Do smart servos like Dynamixel XL-320 OLLO Smart Serial Servo, the cheapest so far provide more torque than hobby servos ? Thanks.

Not necessarily. It depends on what type of hobby servo you are comparing it to. The only way to know would be to look at the datasheets of the two servos you are comparing.

My questions: in terms of my device's wireless control and its autonomy, should I use my arduino Uno as the major platform for coding OR should I use SSC-32u solely to realize its autonomous movement such as walking via a remote control ?

If you have the bot working correctly using the servo controller, then you might just use the arduino as a wireless interface with some bluetooth serial modules.

DuaneDegn:
I posted some joystick/servo code here. I think the code is a good example of how to ramp up the speed of servos in order to produce smooth motion.

I reviewed your code and would like to apply it to my ps2 controller, which has already been programmed as a servo controller when I purchased it from Ebay. How am I supposed to adjust the values based on the code that you provided such as "joystick pins" values in your code. thank you

DuaneDegn:
I posted some joystick/servo code here. I think the code is a good example of how to ramp up the speed of servos in order to produce smooth motion.

I personally like to use algorithms to control servos. My hexapod has an algorithm which tells its feet where they should be positioned. The IK algorithm then calculates the angles to which the servos should move. I think the same sort of thing could be done with a biped. Here's an old video of animated Lego minifigures. I used an algorithm to generate the various positions in the minifigure. When/if I make a biped, I plan to use a similar approach to generate movement.

It would likely be easier to use a table of servo positions in order to generate a workable gait for your robot. I haven't used this approach myself but I believe it's very common.

Hi Duane,

I managed to use your ring buffer code to control 2 servos with a funduino joystick similar to the demo you posted on Youtube and it was amazing. You also mentioned that the code can be modified to control servos more than 2. How do you achieve that ? How many joysticks does the code need to manage to control that many servos ?