Used latest stl's from Gestalt73 and am in the process of putting the head together

Has anybody a MRL-script that adds the additional servos and moves the head around?

calamity

8 years 6 months ago

Hi Juerg

I have add this to my python script to be able to control them

headTilt=Runtime.createAndStart("headTilt","Servo")
headTilt.attach(i01.arduinos.get(rightPort).getName(),12)
headTilt.setMinMax(30,180)
headTilt.setRest(105)
 
but I just complete to assemble that part, so did not play much with it
 
Christian

Thanks Christian for your reply

As we have 3 servos I would double that up with a different pin and use the standard neck servo in addition?

The gestures will need to set all 3 servos or is there an option to use tilt/roll/pan values?

I think the ideal setup will be to have to tilt servo connected to the left side controller and have the inMoovHead service modified to add the tilt servo.

But modifying the inMoovHead service is out of my skill and my nervo board on the left side is beginning to get full.

So my plan is to use the inMoovHead service as it is now, and connect that tilt servo on the neck connector of the right side controller. That way the head and tracking service will still work and I can adjust the tilt servo from script for the show.

It's possible to use tilt/roll/pan by using a python method like this

def moveHead(tilt,neck,rothead):
     headTilt.moveTo(tilt)
     i01.head.moveTo(neck,rothead)

 

or something like that

Christian

Thanks mats

that should work

In the example I have gives, I should have mention that I used modified servo. The left one is normal and the right one have removed board, pot and stop and connect to the left one directly on the motor, with reverse polarity

So I just have to control the left one and the right one mirror the move

Christian

juerg

8 years 5 months ago

Hi

 
came up with this solution with MRL to control my Bob Huston Neck (ArticulatingNeck)
 
headPort = "/dev/ttyACM0" # COMx fuer PC
 
head = Runtime.createAndStart("head", "InMoovHead")
head.connect(headPort)
 
 
leftHeadPin = 10 # black signal line
leftHead = Runtime.start("lefthead", "Servo")
leftHead.setMinMax(0,180)
leftHead.map(0, 180, 0, 180)
leftHead.setSpeed(0.9)
leftHead.attach(head.arduino.getName(), leftHeadPin)
 
rightHeadPin = 11 # brown signal line
rightHead = Runtime.start("righthead", "Servo")
rightHead.setMinMax(0,180)
rightHead.map(0, 180, 0, 180)
rightHead.setSpeed(0.9)
rightHead.attach(head.arduino.getName(), rightHeadPin)
 
def setHead(pitch, yaw, roll):
head.rothead.moveTo(pitch)
head.neck.moveTo(yaw)
leftHead.moveTo(roll)
rightHead.moveTo(180-roll)
 
setHead(70,110,80)
 
The pistons are rather steep. I used my heatgun on the piston* parts, then I was able to push in the PistonBase parts. Do not heat up the PistonBase as it will destroy the part when pushed!
Burnt a 12kg servo for the neck movement as the head is rather heavy. Use at least 15 or better >=20 kg/cm servo for the front piston.
Published modified servo holders to get the rotation axis in line with the piston axis (thingiverse).
So far none of my printed parts broke but with the newest version of the skull base (LowBackV3) the part collided with the rather large base of ArtNeck_NeckJointUpperV3. I filed it off.
My prints have been based on Gestalt73-improvements of the original Neck.
 
have fun
 
Juerg