Our top priority

We are as proud of our service as we are of our robots.

Forgot your password?

Splash Forums Support Jaco v2 cartesian velocity control broken

This topic contains 1 reply, has 1 voice, and was last updated by  rongoldman 3 months, 1 week ago.

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
  • #5194


    Hi. I have been trying to use Cartesian Velocity Control on our Jaco V2 arm (j2s7s300) and the angular velocity control part seems to be broken. I am trying to move the arm to a target pose and compute the difference between the current pose (as published by the topic /j2s7s300_driver/out/tool_pose) and my target pose. The resulting Twist values are then published to /j2s7s300_driver/in/cartesian_velocity. The arm’s XYZ position smoothly moves to the target pose position, but the arm’s orientation gets progressively worse.

    Doing some experimentation I discovered that things work okay if I transform the angular velocity from the base_link frame to the end_effector frame?!?!?! That seems very wrong: angular velocity component in a different frame then the linear component?

    As the ROS wrapper just sends the velocity values over USB to the arm controller that seems to be where the problem is located.

    Note: I am using the latest kinova-ros stack from github.

    — Ron —

    p.s. Using the joystick and commanding a motion along the Y axis I see a small rotation about the Z axis in the fingers’ orientation. Publishing cartesian velocity messages to do a similar motion shows the same Z-axis rotation if I set all the angular velocity values to zero. With the angular velocity values set to the difference between the actual & desired orientation in the base_link frame makes the orientation error worse, and the fingers’ orientation is now rotated about all the axes. Rotating the angular velocity correction into the end_effector frame causes the arm to maintain the desired orientation, correcting for the rotation about the Z axis.



    Thinking more about this it seems that maybe the Cartesian velocity control was previously just used by the joystick where (from the JACO User Guide):

    “When controlling the arm in Cartesian mode with the joystick, the user commands the
    end-effector’s translations (position variations) with respect to the base and the rotations
    (orientation variations) around the end-effector’s reference point.”

    That makes sense for joystick control, but not sure it is best for programmatic control.

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.

Trending now

Expert Talk


My objective at Kinova is to build bridges between people, businesses, educational organizations, and governments to effectively fuel the cycle of innovation. Unsurprisingly, that means hopping on a plane and going to find the best people in the world to exchange with. This is why the concept of Steering Committees as I came to realize is, and will increasingly be, vital.

Read more
Expert Talk

CEO Q&A: Why is the business world the most efficient method to fuel innovation?

While the products and the company has evolved over time, what has remained stagnant is Deguire’s commitment to science that empowers mankind. What does that mean in practical terms? This Q&A uncovers the foundations of Charles’ inspirations and explains why the business world is the most efficient method to fuel innovation.

Read more
Life @ Kinova

Building a Great External Brand Starts From the Inside

To build an amazing company outside your office’s walls starts entirely by building an amazing company inside of them.

Internally, Kinova walks the talk. For us, it’s not just about the way we design or make products, or our thinking process — those things are important, yes — but the way we treat each other.

Read more