nbv_sim/controllers.py
2021-03-12 10:37:35 +01:00

20 lines
417 B
Python

import numpy as np
class CartesianPoseController:
def __init__(self, model):
self.model = model
def set_target(self, pose):
self.target = pose.translation
def update(self, q, dq):
t = self.model.pose().translation
J = self.model.jacobian(q)
J_pinv = np.linalg.pinv(J)
err = 2.0 * (self.target - t)
cmd = np.dot(J_pinv, err)
return cmd