diff --git a/controllers.py b/controllers.py index 632bb19..18de546 100644 --- a/controllers.py +++ b/controllers.py @@ -2,12 +2,12 @@ import numpy as np class CartesianPoseController: - def __init__(self, robot, model, rate): + def __init__(self, robot, model, x0, rate): self.robot = robot self.model = model self.rate = rate - self.x_d = None - self.kp = np.ones(6) * 5.0 + self.x_d = x0 + self.kp = np.ones(6) * 4.0 def set_target(self, pose): self.x_d = pose diff --git a/run_demo.py b/run_demo.py index d021bf1..0d890d3 100644 --- a/run_demo.py +++ b/run_demo.py @@ -10,12 +10,14 @@ gui = True rospy.init_node("demo") env = SimPandaEnv(gui) -env.controller = CartesianPoseController(env.arm, env.model, 60) q, dq = env.arm.get_state() x0 = env.model.pose(q) + +env.controller = CartesianPoseController(env.arm, env.model, x0, 60) marker = InteractiveMarkerWrapper("target", "panda_link0", x0) while True: env.controller.set_target(marker.pose) + env.camera.update() env.forward(0.1) diff --git a/utils.py b/utils.py index 5d856c2..82b76b9 100644 --- a/utils.py +++ b/utils.py @@ -79,9 +79,6 @@ class InteractiveMarkerWrapper(object): class Transform(object): def __init__(self, rotation, translation): - assert isinstance(rotation, Rotation) - assert isinstance(translation, (np.ndarray, list)) - self.rotation = rotation self.translation = np.asarray(translation, np.double)