WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Reply
 
Thread Tools Rate Thread Display Modes
  #1  
Old 07-17-2008, 12:29 PM
jalvarez jalvarez is offline
Member
 
Join Date: Jun 2008
Posts: 12
Torsional Spring

I want to use a haptic device to control a rigid object through a linear spring and a torsion spring. The position works correctly. However the orientation does not work even the orientation data printed out is correct.

Any suggestions? Here is the code:

Code:
import viz
import hd

viz.go()
viz.phys.enable()
viz.phys.setGravity(0,0,0)
viz.phys.setAccuracy(4)
viz.phys.setStepSize(.001)
viz.clearcolor(1,1,1)

cyl = viz.add('cylinder.wrl',pos=[0,2,5])
cyl.collideBox()

marker = viz.add('marker.wrl',pos=[0,2,5])
marker.scale(0.1,0.1,0.1)
hd.marker(marker)
hd.translate(0,2,5)

spring =
cyl.addSpring(viz.LINK_POS|viz.LINK_ORI,linearKd=10,linearKs=1000,angularKd=
10,angularKs=1000)
#spring = cyl.addSpring(viz.LINK_ORI,angularKd=10,angularKs=1000)

spring.setPosition(marker.getPosition())
spring.setQuat(marker.getQuat())


def mytimer(num):
    spring.setPosition(marker.getPosition())
    #print marker.getQuat()
    spring.setQuat(marker.getQuat())


viz.callback(viz.TIMER_EVENT, mytimer)
viz.starttimer( 0, 0, viz.FOREVER )
Reply With Quote
  #2  
Old 07-17-2008, 04:28 PM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
We don't currently have a Phantom Omni here, so I can't test your code. But your angular spring constant seems quite high. Try using the following values to see if they produce better results:
Code:
spring = cyl.addSpring(viz.LINK_POS|viz.LINK_ORI,linearKd=10,linearKs=1000,angularKd=1,angularKs=10)
Reply With Quote
  #3  
Old 07-18-2008, 11:57 AM
jalvarez jalvarez is offline
Member
 
Join Date: Jun 2008
Posts: 12
I have already played with changing the order of magnitude of the constants back and forth. and it does not really give me control. the position works just fine, but the orientation does not work even if you try to manually input it from the command line.

Is there any other things I should try? or look into?
Reply With Quote
  #4  
Old 07-25-2008, 10:54 AM
farshizzo farshizzo is offline
WorldViz Team Member
 
Join Date: Mar 2003
Posts: 2,849
Sorry for the delay, but we just got our Phantom Omni in for testing. I tried it out and have the same problems as you. It seems the problem is related to the fact that the center of the cylinder object is not at the local origin of the object. This is causing problems with the physics engine and creating large angular acceleration values. I created a separate cylinder model that was centered properly and now it works fine. Here is the WRL text for the new cylinder object:
Code:
Transform {
	rotation 1 0 0 1.5707963267948966
	children [
		Shape {
			appearance Appearance {
				material Material {
					diffuseColor 0.8353 0.6039 0.898
				}
			}
			geometry Cylinder { radius 0.05 height 0.5 }
		}
	]
}
Save this to a file called pen.wrl and place it in the same directory as the following script:
Code:
import viz
import hd

viz.go()
viz.phys.enable()
viz.phys.setGravity(0,0,0)

cyl = viz.add('pen.wrl')
cyl.collideBox([1,1,1])

marker = viz.add('marker.wrl')
marker.scale(0.1,0.1,0.1)
hd.marker(marker)
hd.translate(0,2,5)

spring = cyl.addSpring(viz.LINK_ORI|viz.LINK_POS,linearKd=10,linearKs=100,angularKd=1,angularKs=20)

def UpdateSpring():
	spring.setPosition(hd.get(hd.POSITION))
	spring.setQuat(hd.get(hd.ROTATION))
vizact.ontimer(0,UpdateSpring)
Let me know if this solves your problems.
Reply With Quote
Reply

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Physics and Haptics jalvarez Vizard 3 07-16-2008 03:03 PM


All times are GMT -7. The time now is 11:49 PM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright 2002-2023 WorldViz LLC