function
sysCall_init()
joint1=sim.getObjectHandle(
'P1'
)
joint2=sim.getObjectHandle(
'P2'
)
joint3=sim.getObjectHandle(
'P3'
)
xp=0
yp=0
zp=0
p1p=0
p2p=0
p3p=0
dz=0
step=0.01
H=((0.290)^2-(0.1325)^2)^(1/2)
BaseX=0.1325*(
math.cos
(60*
math.pi
/180))
BaseY2=0.1325*(
math.sin
(60*
math.pi
/180))
BaseY3=0.1325*(
math.sin
(60*
math.pi
/180))
end
xyz =
function
()
bar1=(((0.290)^2-(0.1325-xp)^2-yp^2)^(1/2)-H+dz)
bar2=(((0.290)^2-BaseX^2-BaseY2^2)^(1/2)-H+dz)
bar3=(((0.290)^2-BaseX^2-BaseY3^2)^(1/2)-H+dz)
end
function
sysCall_actuation()
message,auxiliaryData=sim.getSimulatorMessage()
while
message~=-1
do
if
(message==sim.message_keypress)
then
if
(auxiliaryData[1]==2010)
then
xp=xp+step
BaseX=BaseX+step
xyz()
sim.setJointTargetPosition(joint1,bar1)
sim.setJointTargetPosition(joint2,bar2)
sim.setJointTargetPosition(joint3,bar3)
end
if
(auxiliaryData[1]==2009)
then
xp=xp-step
BaseX=BaseX-step
xyz()
sim.setJointTargetPosition(joint1,bar1)
sim.setJointTargetPosition(joint2,bar2)
sim.setJointTargetPosition(joint3,bar3)
end
if
(auxiliaryData[1]==2007)
then
yp=yp+step
BaseY2=BaseY2-step
BaseY3=BaseY3+step
xyz()
sim.setJointTargetPosition(joint1,bar1)
sim.setJointTargetPosition(joint2,bar2)
sim.setJointTargetPosition(joint3,bar3)
end
if
(auxiliaryData[1]==2008)
then
yp=yp-step
BaseY2=BaseY2+step
BaseY3=BaseY3-step
xyz()
sim.setJointTargetPosition(joint1,bar1)
sim.setJointTargetPosition(joint2,bar2)
sim.setJointTargetPosition(joint3,bar3)
end
if
(auxiliaryData[1]==32)
then
sim.getJointTargetPosition(joint1,p1p)
sim.getJointTargetPosition(joint2,p2p)
sim.getJointTargetPosition(joint3,p3p)
p1p=p1p+dz
p2p=p2p+dz
p3p=p3p+dz
dz=dz+step
printf(p1p)
xyz()
print
(p2p)
sim.setJointTargetPosition(joint1,bar1+dz)
sim.setJointTargetPosition(joint2,bar2+dz)
sim.setJointTargetPosition(joint3,bar3+dz)
H=H-dz
end
if
(auxiliaryData[1]==99)
then
sim.getJointTargetPosition(joint1,p1p)
sim.getJointTargetPosition(joint2,p2p)
sim.getJointTargetPosition(joint3,p3p)
p1p=p1p-dz
p2p=p2p-dz
p3p=p3p-dz
dz=dz-step
printf(p1p)
xyz()
print
(p2p)
sim.setJointTargetPosition(joint1,bar1-dz)
sim.setJointTargetPosition(joint2,bar2-dz)
sim.setJointTargetPosition(joint3,bar3-dz)
H=H-dz
end
end
message,auxiliaryData=sim.getSimulatorMessage()
end
end
function
sysCall_sensing()
end
function
sysCall_cleanup()
end