Example #1
0
def next_point(dx, dy, dz, mt):
    ports = pypot.dynamixel.get_available_ports()
    with pypot.dynamixel.DxlIO(ports[0], baudrate=1000000) as dxl_io:
        global a
        #Recuperation de la position en x,y,z d'une patte
        for i in [1, 3, 5]:
            ids = i
            x = dxl_io.get_present_position([ids * 10 + 1])
            y = dxl_io.get_present_position([ids * 10 + 2])
            z = dxl_io.get_present_position([ids * 10 + 3])
            x = x[0]
            y = y[0]
            z = z[0]
            kinematics.computeDK(x, y, z)

            #Ajout de la derivee a la position de la patte
            #Exemple: ny= nouvelle valeur, y=valeur lue sur la patte, dy=valeur a ajouter
            #mutliplication par sin(mt)
            # Si mt=0--> nx=x+dx*math.sin(mt) => nx=x
            nx = x + dx * math.sin(mt)
            ny = y + dy * math.sin(mt)
            nz = z + dz * math.sin(mt)
            print("nx=", nx)
            print("ny=", ny)
            print("nz=", nz)
            #Envoi des nouvelles positions pour le deplacement du robot
            calcul.set_leg_pos_robot_frame(ids, nx, ny, nz)
Example #2
0
 def set_goal_position():
     dx = leg_init_pos[0]
     dy = leg_init_pos[1]
     dz = leg_init_pos[2]
     print("dx=", dx, "dy=", dy, "dz=", dz)
     for i in [1, 2, 3, 4, 5, 6]:
         leg_id = i
         calcul.set_leg_pos_robot_frame(leg_id, dx, dy, dz)
Example #3
0
    def next_point(ids, dx, dy, dz, mt):
        #Recuperation de la position en x,y,z d'une patte
        x = dxl_io.get_present_position([ids * 10 + 1])
        y = dxl_io.get_present_position([ids * 10 + 2])
        z = dxl_io.get_present_position([ids * 10 + 3])
        x = x[0]
        y = y[0]
        z = z[0]
        kinematics.computeDK(x, y, z)
        global a
        #Ajout de la derivee a la position de la patte
        if mt == 0:
            if a == 0:
                print("Boucle 1")
                nx = x + dx * math.sin(mt)
                ny = y + dy * math.sin(mt)
                nz = z + dz
                if y > -0.6 and y < 0.4:
                    a = 1
                    return a
                if x > 154.7 and x < 155.3:
                    c = 1
                    return c
            if a == 1 or c == 1:
                ny = y + dy * math.sin(mt)
                nz = z - dz
                print("Boucle 2")
                if y > 39.6 and y < 40.4:
                    a = 2
                    return a
                if x > 170.7 and x < 171.3:
                    c = 2
                    return c
            if a == 2:
                ny = y - 2 * dy
                print("Boucle 3")
                if y > -40.6 and y < -39.8:
                    a = 0
                    return a
            if c == 2:
                nx = x - 2 * dx
                if x > 139.7 and x < 1410.3:
                    c = 0
                    return c

        #Envoi des nouvelles positions pour le deplacement du robot
        calcul.set_leg_pos_robot_frame(ids, nx, ny, nz)
Example #4
0
def set_goal_position2():
    dx = leg_init_pos[0]
    dy = leg_init_pos[1]
    dz = leg_init_pos[2]
    print("dx=", dx, "dy=", dy, "dz=", dz)
    for i in [2, 4, 6]:
        leg_id = i
        calcul.set_leg_pos_robot_frame(leg_id, dx, dy, dz)


# ########### Go left ###########
# if mt==2:
#     if b==0:
#         print("Boucle 1")
#         print("Leg_init_pos=",leg_init_pos)
#         leg_delta=[ dx , dy , -dz]
#         leg_init_pos[0]=leg_init_pos[0]+(leg_delta[0])
#         leg_init_pos[1]=leg_init_pos[1]+(leg_delta[1])
#         leg_init_pos[2]=leg_init_pos[2]+(leg_delta[2])
#         x=leg_init_pos[0]
#         z=leg_init_pos[2]
#         if x==155 :
#             print("Leg_init_pos=",leg_init_pos)
#             b=1
#     if b==1:
#         b=1
#         print("Boucle 2")
#         print("Leg_init_pos=",leg_init_pos)
#         leg_delta=[ dx , dy , dz]
#         leg_init_pos[0]=leg_init_pos[0]+(leg_delta[0])
#         leg_init_pos[1]=leg_init_pos[1]+(leg_delta[1])
#         leg_init_pos[2]=leg_init_pos[2]+(leg_delta[2])
#         x=leg_init_pos[0]
#         z=leg_init_pos[2]
#         if x==170 and z==90:
#             print("Leg_init_pos=",leg_init_pos)
#             b=2
#     if b==2:
#         b=2
#         print("Boucle 3")
#         print("Leg_init_pos=",leg_init_pos)
#         leg_delta=[ -3*dx , dy , 0]
#         leg_init_pos[0]=leg_init_pos[0]+(leg_delta[0])
#         leg_init_pos[1]=leg_init_pos[1]+(leg_delta[1])
#         leg_init_pos[2]=leg_init_pos[2]+(leg_delta[2])
#         x=leg_init_pos[0]
#         z=leg_init_pos[2]
#         if x==140 and z==90:
#             print("Leg_init_pos=",leg_init_pos)
#             b=0
#     return b"""########### Go right ###########
#     if mt==3:
#     if a==0:
#         print("Boucle 1")
#         leg_delta=[ dx , dy , -dz]
#         leg_init_pos[0]=leg_init_pos[0]+(leg_delta[0])
#         leg_init_pos[1]=leg_init_pos[1]+(leg_delta[1])
#         leg_init_pos[2]=leg_init_pos[2]+(leg_delta[2])
#         x=leg_init_pos[0]
#         z=leg_init_pos[2]
#         if x==155 :
#             print("Leg_init_pos=",leg_init_pos)
#             a=1
#     if a==1:
#         a=1
#         print("Boucle 2")
#         leg_delta=[ dx , dy , dz]
#         leg_init_pos[0]=leg_init_pos[0]+(leg_delta[0])
#         leg_init_pos[1]=leg_init_pos[1]+(leg_delta[1])
#         leg_init_pos[2]=leg_init_pos[2]+(leg_delta[2])
#         x=leg_init_pos[0]
#         z=leg_init_pos[2]
#         if x==40 and z==90:
#             print("Leg_init_pos=",leg_init_pos)
#             a=2
#     if a==2:
#         a=2
#         print("Boucle 3")
#         leg_delta=[ dx , -2*dy , 0]
#         leg_init_pos[0]=leg_init_pos[0]+(leg_delta[0])
#         leg_init_pos[1]=leg_init_pos[1]+(leg_delta[1])
#         leg_init_pos[2]=leg_init_pos[2]+(leg_delta[2])
#         x=leg_init_pos[0]
#         z=leg_init_pos[2]
#         if x==-40 and z==90:
#             print("Leg_init_pos=",leg_init_pos)
#             a=0
#     return a
#     if x<=155 and z<=0:
#         leg_delta=[ x , y , -z ]
#         leg_final_pos[j]=leg_init_pos[i][j]+(leg_delta[j])
#     if x<=170 and z<=90:
#         leg_delta=[ x , y , z ]
#         leg_final_pos[j]=leg_init_pos[i][j]+(leg_delta[j])
#     if z>90:
#         leg_delta=[ -3*x , y , 0 ]
#         leg_final_pos[j]=leg_init_pos[i][j]+(leg_delta[j])
#     if x==140 and z<90:
#         leg_delta=[ x , y , -z ]
#         leg_final_pos[j]=leg_init_pos[i][j]+(leg_delta[j])