Example #1
0
goalrot3 = np.array([[1, 0, 0], [0, -0.92388, -0.382683],
                     [0, 0.382683, -0.92388]]).T
goalpos3 = goalpos3 - 70.0 * goalrot3[:, 2]
goalpos4 = np.array([454.5617667638, -100, 1150.5])
goalrot4 = np.dot(rm.rodrigues([0, 0, 1], -120), goalrot3)
goalpos4 = goalpos4 - 250.0 * goalrot4[:, 2]
# goalpos2 = goalpos2 - 150.0*goalrot2[:,2]
start = robot.numik(startpos, startrot, armname)
goal3 = robot.numikmsc(goalpos3, goalrot3, msc=start, armname=armname)
print(goal3)
goal4 = robot.numikmsc(goalpos4, goalrot4, msc=start, armname=armname)
print(goal4)
planner = rrtc.RRTConnect(start=goal3,
                          goal=goal4,
                          ctcallback=ctcallback,
                          starttreesamplerate=starttreesamplerate,
                          endtreesamplerate=endtreesamplerate,
                          expanddis=5,
                          maxiter=2000,
                          maxtime=100.0)
robot.movearmfk(goal3, armname)
robotnp = robotmesh.genmnp(robot, jawwidthrgt=85.0, jawwidthlft=0.0)
robotnp.reparentTo(base.render)
robot.movearmfk(goal4, armname)
robotnp = robotmesh.genmnp(robot, jawwidthrgt=85.0, jawwidthlft=0.0)
robotnp.reparentTo(base.render)
# base.run()
robotball.showcn(base, robotball.genfullbcndict(robot))
robot.goinitpose()
[path, sampledpoints] = planner.planning(obscmlist)
path = smoother.pathsmoothing(path, planner)
print(path)
Example #2
0
    rbt.movearmfk(start_armjnts, "lft")
    rbt.movearmfk(rbt.initrgtjnts, "rgt")

    # prepare the planner
    rbtball = ur3dualball.Ur3DualBall()
    cdchecker = cdck.CollisionCheckerBall(rbtball)
    ctcallback = ctcb.CtCallback(base,
                                 rbt,
                                 cdchecker=cdchecker,
                                 ctchecker=ctchecker,
                                 ctangle=ctangle,
                                 armname="lft")
    planner = rrtc.RRTConnect(start=start_armjnts,
                              goal=goal1_armjnts,
                              ctcallback=ctcallback,
                              starttreesamplerate=30.0,
                              endtreesamplerate=30.0,
                              expanddis=10,
                              maxiter=2000.0,
                              maxtime=100.0)
    smoother = sm.Smoother()

    #calculate the object pose relative to the end effector pose
    rbtmesh = rbtmg.genmnp(rbt, jawwidthlft=obj.height)
    leepos = rbt.lftarm[-1]['linkend']
    leerot = rbt.lftarm[-1]['rotmat']
    relpos1, relrot1 = rm.relpose(leepos, leerot, startposobj, startrotobj)
    #build the tranformation of the object pose in the end effector frame
    relpos_t = np.eye(4)
    #the rotation part
    relpos_t[:3, :3] = relrot1
    relpos_t[:3, 3] = relpos1