Posted: Thu Jul 30, 2009 4:51 pm Post subject: Master-slave suit for KHR-1HV
Hi all,
I was so inspired by King Kizer humanoid and his master-slave control that I decided to build my own master-slave suit.
I bought a dozen of big fat potentiometers (soviet military technology from 1960's).
I put a lot of effort into mechanical design- it wasn't easy to make the suit comfortable. Now suit consists of three joints and here is the video:
http://www.youtube.com/watch?v=MpPI011xwZI
After some testing I will make another side to complete upper body control.
If I'm lucky enough, I will make same for the legs and torso. Maybe..
Controller is AVR mega8 with inverter uC for inverted Kondo uart.
Potentiometers were bought from ebay, single turn, 10kohm.
I can post entire program in bascom later.
Response is very good with 2 joints, but when I add 4 more, robot starts to lag. I think it's because of bandwith limitation. I send same commands like you move single servo sliders in HTH3.
Command looks like this in hex: 0D FE 00 01 01 40 1E 5E
0D is "start" . after this RCB3 sends me back 0D if ready.
FE is "command"
00 is "option"
01 is "channel"
01 is "speed"
40 is "position high byte"
1E is "position low byte"
5E is "checksum"
checksum is (FE+00+01+01+40+1E)AND FF
Here is the program for one axis (BascomAVR compiler):
Axis(4) = Getadc(3)
I = 4
Position(i) = Axis(i) - Offset(i)
If Position(i) < 0 Then Position(i) = 1
Position(i) = 16384 - Position(i)
Pos_h(i) = High(position(i))
Pos_l(i) = Low(position(i))
Temp = &HFE + Channel(i)
Temp = Temp + Speed
Temp = Temp + Pos_h(i)
Temp = Temp + Pos_l(i)
Temp = Temp And &HFF
Sum = Temp
Printbin #1 , &H0D
Inputbin #1 , Ready
Printbin #1 , Command ; Opt ; Channel(i) ; 1 ; Speed ; Pos_h(i) ; 1 ; Pos_l(i) ; 1 ; Sum
Channel(i) ; 1 means send 1 byte from array starting at index i.
Pos_h(i) ; 1 is the same
Offsets are used to put robot's joints always to the same starting position. With the suit on, you stand still and press the "calibrate" button. This moves robot to home position and sets "virtual" zero position for all potentiometers.
Motion capturing is not a problem at all. Instead of sending all servo positions straight after capturing potentiometers values, we need just to memorize positions in the eeprom (for example) or somewhere else. Later on we can playback this sequence on request. I don't see any problems here.
By the way, i have managed to get rid of robot's terrible lag. Mr Fuminori Yamasaki from IXS Research Corp adviced me to use another command. Now robot responds very quickly:
i will get on friday, this week, my kondo KHR-3hv...with all the 22 DOF...
and i would like to use my "PEAVY 1600x" midi slider board, to control the robot...í´am just using this slider board for computer animation...
i think the way is nearly the same, like your good work...
but i´am not shure if it works....Heart2Heart 4.0 with midi and capturing...
By the way, i have managed to get rid of robot's terrible lag. Mr Fuminori Yamasaki from IXS Research Corp adviced me to use another command. Now robot responds very quickly
That's great! What's the other command you are using now?
I'm using command
SETUP OF THE SPEED OF MOVEMENT
which is second command on page 20 of the RCB3 Command Reference
(I forgot the link to this document, hope you will find it)
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum