Projet4MA/Code/inverse_kinematics.py
FeedAFish a9c518e5c3 .
2022-02-07 15:12:20 +01:00

37 lines
1.2 KiB
Python

import numpy as np
import numpy.linalg
from scipy.optimize import fmin_bfgs
from pinocchio import forwardKinematics, log, neutral
import eigenpy
eigenpy.switchToNumpyMatrix()
class CallbackLogger:
def __init__(self, ik):
self.nfeval = 1
self.ik = ik
def __call__(self,x):
print '===CBK=== {0:4d} {1}'.format(self.nfeval,
self.ik.latestCost)
self.nfeval += 1
class InverseKinematics (object):
leftFootJoint = 'left_leg_6_joint'
rightFootJoint = 'right_leg_6_joint'
waistJoint = 'waist_joint'
def __init__ (self, robot):
self.q = neutral (robot.model)
forwardKinematics (robot.model, robot.data, self.q)
self.robot = robot
# Initialize references of feet and center of mass with initial values
self.leftFootRefPose = robot.data.oMi [robot.leftFootJointId].copy ()
self.rightFootRefPose = robot.data.oMi [robot.rightFootJointId].copy ()
self.waistRefPose = robot.data.oMi [robot.waistJointId].copy ()
def cost (self, q):
# Write your code here
pass
def solve (self, q):
# Write your code here
pass