physic.deserializeWorld(world, mechaName) print "CREATE PORTS..." phy.addCreateInputPort("clock_trigger", "double") icps = phy.s.Connectors.IConnectorSynchro.new("icps") icps.addEvent("clock_trigger") graph.getPort("body_state_H").connectTo(phy.getPort("body_state_H")) graph.getPort("contacts").connectTo(phy.getPort("contacts")) clock.getPort("ticks").connectTo(phy.getPort("clock_trigger")) print "CREATE Q READER..." import qreader qreader = qreader.createQReader("kukaqreader", physic.dynmodel) qreader.s.start() rtt_interface_corba.SetServer(qreader._obj) print "CREATE CONTROLLER..." ##### # add orcisir_ISIRController oIT = ddeployer.load("oIT", "Orocos_ISIRController", module="orcisir_Orocos_IsirController-gnulinux", prefix="", libdir=controllerlibdir) TT = dsimi.rtt.Task(oIT) phy.getPort(mechaName+"_q").connectTo(TT.getPort("q")) phy.getPort(mechaName+"_qdot").connectTo(TT.getPort("qDot")) phy.getPort(mechaName+"_Hroot").connectTo(TT.getPort("Hroot")) phy.getPort(mechaName+"_Troot").connectTo(TT.getPort("Troot"))
wm.addWorld(groundWorld) wm.addWorld(kukaWorld) wm.addWorld(env1World) wm.addMarkers(sphereWorld, ["sphere.sphere"], thin_markers=False) wm.addWorld(sphereWorld) kuka = wm.phy.s.GVM.Robot(mecha_name) kuka.enableContactWithBody("ground.ground", True) kuka.enableContactWithBody("env1.env1", True) # Create simple gravity compensator controller import control controller = control.createTask("controlKuka1", TIME_STEP) controller.connectToRobot(wm.phy, kukaWorld, mecha_name) #spacemouse #PDC Control mode sm = spacemouse.createTask("smi", TIME_STEP, wm.phy, wm.graph, "sphere.sphere", pdc_enabled=True, body_name=mecha_name+".07") import qreader qreader = qreader.createQReader("kukaqreader", TIME_STEP) qreader.connectToRobot(kuka) rtt_interface_corba.SetServer(qreader._obj) sm.s.start() qreader.s.start() controller.s.start() wm.startAgents() shell()