Advice for Quadruped (QSR-X1)

Quadruped Robots

Re: Advice for Quadruped (QSR-X1)

Postby clh6685 » Thu Sep 03, 2009 12:08 pm

Hey guys,

My quad project resume...I'm ready to take the challenge to improve my quad to capable of move in any direction, build-in inverse kinematic program. :mrgreen:

What i planned was 1st i build the serial servo controller. After that, following is the command controller that received directional command from wireless joystick and generate the relative motion gate command to the servo controller to execute.
Guys...please do advice for my direction or any opinion...You are welcome for it.

Thanks.
clh6685
 
Posts: 80
Joined: Fri Oct 31, 2008 12:24 am
Location: Malaysia

Re: Advice for Quadruped (QSR-X1)

Postby Demmo » Thu Sep 03, 2009 1:22 pm

i think the best way is to build a servo controller (lets call it motion controller) with fast microcontroller onboard for IK, trajectory, optional contact sensors, force feedback, accelerometer etc etc and then a higher level controller which tells the motion controller what to do...
for me it's the most natural division.. even in human body you use a "higher level" controller.. if you want to turn your head left or grab something you don't have to think "hmm... to turn my head i have to tense my 4 muscles placed on my neck, relax 2 others.." etc ;)
Demmo
btw. sorry for my english :P I should educate more ;) :lol:
Demmo
 
Posts: 36
Joined: Wed Jun 18, 2008 5:46 am
Location: Gliwice, Poland

Re: Advice for Quadruped (QSR-X1)

Postby clh6685 » Thu Sep 24, 2009 12:24 am

Hi all,

I had done my Quad IK on excel file, this is only to test my own IK concept before embended into PIC.The servo command will send via serial to servo controller on Quad.
For the servo controller, firmware are in half way.

Can't wait to test it out.. :lol:
Last edited by clh6685 on Sun Aug 14, 2016 8:40 am, edited 2 times in total.
clh6685
 
Posts: 80
Joined: Fri Oct 31, 2008 12:24 am
Location: Malaysia

Re: Advice for Quadruped (QSR-X1)

Postby clh6685 » Sat Oct 17, 2009 3:44 am

Hi all,

Help needed here.

Currently I'm testing on my serial servo controller that i build myself. It is a 12 channels servo controller. I'm using PIC16F84A for it, and is 5 MIPS by using 20Mhz crystal.
The problem is, let's say each of the servos is 1.5mS pulse width, so 12 servo pulsing one by one it use up about 18mS to complete the sequence loop. And for 18mS, it is time for 2nd pulse needed to pump in to the servo in order to maintain its functioning.
By doing this, there is not much time for the servo controller to receive any further servo position update data.
Currently I'm using 9600 baud rate at serial com.

I was wondering this even worse case in Hexapod, since it got even more servo.
Matt, question for you. You mind to share how you did the servo controller sequence in order to cook for the sampling data input with enough update frame rate while servo pulse sequence still able to catch up within 20mS update once on each servo?

Anyone got any suggestion you may reply me.

Thanks
clh6685
 
Posts: 80
Joined: Fri Oct 31, 2008 12:24 am
Location: Malaysia

Re: Advice for Quadruped (QSR-X1)

Postby Matt Denton » Sat Oct 17, 2009 7:41 am

Well there are several ways this can be done, but I usually use a PIC with output compare hardware such as the PIC16F73. Using two OC registers in interrupt mode you can output two servo signals simultaneously, and should be able to control 18 servos within the 20ms time frame up to 2ms pulse max. However, you will find that when two simultaneous servos are at an equal position, you will get some position error due to the OC interrupt only handling one servo at a time, the faster your processor is running, the less noticeable this becomes.

However, I dropped this method some time ago due to the limitations pointed out above. I still use the OC registers, however, I send the output pin of each register through a 1 to 8 multiplexor. This way you still out put two servos at a time to give 16 channels, but the pulse width is generated in hardware using the OC reg, so you get 16 perfect PWM signals multiplexed tw at a time. If your using a chip with 3 or 4 OC registers such as the 18F or ds30/33 series, then you can obviously add additional multiplexors to give 24 or 32 channels. The ds30 and ds33 series have 8 OC registers, so you can produce 8 hardware PWM signals simultaneously without the need for a mux.

hope that helps.
Matt Denton
AKA: Winchy_Matt

micromagic systems ltd
Matt Denton
Site Admin
 
Posts: 1622
Joined: Tue May 20, 2008 9:15 pm
Location: Winchester UK

Re: Advice for Quadruped (QSR-X1)

Postby clh6685 » Sat Oct 17, 2009 11:33 am

Thanks Matt ;)
clh6685
 
Posts: 80
Joined: Fri Oct 31, 2008 12:24 am
Location: Malaysia

Re: Advice for Quadruped (QSR-X1)

Postby clh6685 » Tue Oct 20, 2009 12:13 am

Good news to all,

I just found that E-sky helicopter micro servo need only single position pulse feed in to hold the position as long as supply is there. Even without continues identical pulse feed in it still maintain its position.
This might be usefull for those no using continues position changing project which can simplify your program code.
clh6685
 
Posts: 80
Joined: Fri Oct 31, 2008 12:24 am
Location: Malaysia

Re: Advice for Quadruped (QSR-X1)

Postby clh6685 » Mon Oct 26, 2009 8:28 am

Hi Matt, another question i would like to ask you.
How actually you do the servo controller concept which it can receive the data byte frame correctly?

Condition:
1.Data always send to my controller via serial port from PC.
2.I'm using UART.
3.There is start byte follow by channel select byte and position byte for each channel send to my servo controller.

What i had done is my code alrealdy have start bit and stop bit check for a byte. But the problem is after the servo controller receive the data it go for srevo pulse out for variable amount of time, by the way it come back to start receive data again it might just right the data are transmitting in half byte and just right the data bit is same LOW as a start bit, the micro controller might though that is start bit. in this way, the framing might always out or the data might always error and discard.
For this case, the micro controller might can catch-up the start byte frame rate, but by the time it might no time to receive data alrealdy, it should process servo pulse again.
clh6685
 
Posts: 80
Joined: Fri Oct 31, 2008 12:24 am
Location: Malaysia

Re: Advice for Quadruped (QSR-X1)

Postby Matt Denton » Mon Oct 26, 2009 9:41 am

In order to receive UART data while simultaneously updating the PWM frames, you really need to use a hardware based UART, so that the hardware can be receiving incoming data while the micro deals with other tasks. Most of the mid range pics with uarts such as the 16F73 have a 3 byte buffer, which means you can receive 3 bytes before having to process them..
Matt Denton
AKA: Winchy_Matt

micromagic systems ltd
Matt Denton
Site Admin
 
Posts: 1622
Joined: Tue May 20, 2008 9:15 pm
Location: Winchester UK

Re: Advice for Quadruped (QSR-X1)

Postby cyberdead » Mon Nov 09, 2009 7:22 pm

Hi,

About the simultaneus PWM signals, there are very effective software methods. I have to make in my octoped 24 signals.
Here is a link, which is my software based on. I haven't tried it yet to make on higher language like C. But it works without any error in asm too.

http://www.dattalo.com/technical/software/pic/pwm8.asm

Best regards
Pete
cyberdead
 
Posts: 44
Joined: Thu Jun 26, 2008 11:24 pm
Location: Szeged, Hungary

PreviousNext

Return to Quadrupeds

Who is online

Users browsing this forum: No registered users and 1 guest

cron