Skip to content

Instantly share code, notes, and snippets.

🎯
Focusing

Rishabh Jangir jangirrishabh

🎯
Focusing
View GitHub Profile
View cloth_place.py
"""
Scene file for cloth on table.
To check deformations of the cloth under Attach Constraint and Fixed Constraint
Current script uses only Attach constraint at the 2 red balls to grasp the cloth
To add Fixed constraint uncomment line 62
Note: The red balls are supposed to move together in simulation and thus the cloth must follow them with minimum deformations
at the grasped vertices
"""
View workspace.py
class workspace (Sofa.PythonScriptController):
def __init__(self, node, commandLineArguments) :
self.commandLineArguments = commandLineArguments
print "Command line arguments for python : "+str(commandLineArguments)
self.node = node
self.createGraph(node)
return None;
def createGraph(self,rootNode):
View ball_collision_testing.scn
<?xml version="1.0" ?>
<!-- Testing ball collision problem from hugo -->
<Node name="root" dt="0.05" gravity="0 -9.810 0">
<VisualStyle displayFlags="hideBehaviorModels hideCollisionModels hideMappings hideForceFields showVisualModels hideInteractionForceFields" />
<RequiredPlugin name='SofaMiscCollision'/>
<RequiredPlugin name="SofaPython" pluginName="SofaPython" />
<FreeMotionAnimationLoop solveVelocityConstraintFirst="0" />
<LCPConstraintSolver maxIt="1000" tolerance="1e-6" initial_guess="false" build_lcp="true" multi_grid="false" printLog="0" mu="0.000000000001"/>
View ball_collision.scn
<Node name="root" dt="0.05" gravity="0 -9.810 0">
<VisualStyle displayFlags="hideBehaviorModels hideCollisionModels hideMappings hideForceFields showVisualModels hideInteractionForceFields" />
<RequiredPlugin name='SofaMiscCollision'/>
<RequiredPlugin name="SofaPython" pluginName="SofaPython" />
<FreeMotionAnimationLoop solveVelocityConstraintFirst="0" />
<LCPConstraintSolver maxIt="1000" tolerance="1e-6" initial_guess="false" build_lcp="true" multi_grid="false" printLog="0" mu="1.9"/>
<CollisionPipeline depth="6" verbose="0" draw="0" />
<BruteForceDetection name="N2" />
View cloth_on_table_no_friciton.scn
<Node name="root" dt="0.05" gravity="0 -9.810 0">
<VisualStyle displayFlags="hideBehaviorModels hideCollisionModels hideMappings hideForceFields showVisualModels" />
<RequiredPlugin name='SofaMiscCollision'/>
<LCPConstraintSolver maxIt="1000" tolerance="1e-6" initial_guess="false" build_lcp="true" multi_grid="false" printLog="0" mu="0.9"/>
<FreeMotionAnimationLoop solveVelocityConstraintFirst="1" />
<CollisionPipeline depth="15" verbose="0" draw="0" />
<BruteForceDetection name="N2" />
<LocalMinDistance name="Proximity" alarmDistance="0.3" contactDistance="0.1" useLMDFilters="0" />
<CollisionResponse name="Response" response="FrictionContact" />
<DiscreteIntersection/>
View keyboardControl.py
import Sofa
class KeyboardControl(Sofa.PythonScriptController):
# called once graph is created, to init some stuff...
def initGraph(self,node):
print 'initGraph called (python side)'
self.MechanicalState = node.getObject('DOFs')
gravity = node.findData('gravity').value
print gravity
self.rootNode = node.getRoot()
@jangirrishabh
jangirrishabh / ddpg1.py
Last active Jul 13, 2018
Snippet for using demonstrations in ddpg.py agent, blog usage, not executable
View ddpg1.py
self.demo_batch_size = 128
def initDemoBuffer(self, demoDataFile, update_stats=True):
#To initiaze the demobuffer with the recorded demonstration data. We also normalize the demo data.
def sample_batch(self):
if self.bc_loss:
transitions = self.buffer.sample(self.batch_size - self.demo_batch_size)
global demoBuffer
@jangirrishabh
jangirrishabh / ddpg2.py
Last active Jul 13, 2018
Snippet for using demonstrations in ddpg.py agent, blog usage, not executable
View ddpg2.py
self.lambda1 = 0.001
self.lambda2 = 0.0078
def _create_network(self, reuse=False):
mask = np.concatenate((np.zeros(self.batch_size - self.demo_batch_size), np.ones(self.demo_batch_size)), axis = 0)
target_Q_pi_tf = self.target.Q_pi_tf
clip_range = (-self.clip_return, 0. if self.clip_pos_returns else np.inf)
target_tf = tf.clip_by_value(batch_tf['r'] + self.gamma * target_Q_pi_tf, *clip_range) # y = r + gamma*Q(pi)
@jangirrishabh
jangirrishabh / toyCarIRL2.py
Created Jun 14, 2018
Snippet for toyCarIRL, blog usage, not executable
View toyCarIRL2.py
def optimalWeightFinder(self):
i = 1
while True:
W = self.optimization() # optimize to find new weights in the list of policies
print ("weights ::", W )
print ("the distances ::", self.policiesFE.keys())
self.currentT = self.policyListUpdater(W, i)
print ("Current distance (t) is:: ", self.currentT )
if self.currentT <= self.epsilon: # terminate if the point reached close enough
break
@jangirrishabh
jangirrishabh / toyCarIRL3.py
Created Jun 14, 2018
Snippet for toyCarIRL, blog usage, not executable
View toyCarIRL3.py
class irlAgent:
def __init__(self, randomFE, expertFE, epsilon, num_states, num_frames, behavior):
self.randomPolicy = randomFE
self.expertPolicy = expertFE
self.num_states = num_states
self.num_frames = num_frames
self.behavior = behavior
self.epsilon = epsilon # termination when t < 0.1
self.randomT = np.linalg.norm(np.asarray(self.expertPolicy)-np.asarray(self.randomPolicy)) #norm of the diff in expert and random
self.policiesFE = {self.randomT:self.randomPolicy} # storing the policies and their respective t values in a dictionary
You can’t perform that action at this time.