Skip to content

Velocity Control and Velocity Command Interface Usage #328

@nguyehh1

Description

@nguyehh1

Question

Similarly to #306, is it possible to use velocity command interface for the Kinova's joints for velocity control?

Originally my team is interested in being able to control the Kinova with velocity commands while also enforcing joint limits and checking for collisions, motivating the use of Moveit Servo. I'm trying to use velocity control for the gen 3 7dof Kinova with Moveit Servo since the arm currently has some jitter when using the position command interface through joint_trajectory_controller by default. While setting this up, I'm confused as to the purpose of having a velocity command interface if this is not actually enabled in kortex_driver. I'm using ROS2 Humble and the humble branch of ros2_kortex.

What I've tried

So far, I've tried to set up a velocity controller through both configuring a JointGroupVelocityController and ForwardCommandController in moveit config's ros2_controllers.yaml and updating command_out_type, command_out_topic, and publish_joint_positions or publish_joint_velocities fields in the servo config. I've also tried using the base joint_trajectory_controller with just having velocity as the command interface in both the ros2 control config and publishing joint velocity only. Regardless, the arm does not move unless joint position is configured/enabled in the ROS2 controller and the servo node.

This led me to looking through the hardware interfaces through ros2 control list_hardware_interfaces, which shows command interfaces available for position, velocity, and effort as being available. However, unless I'm looking in the wrong code then it seems that while these interfaces are set up only position is enabled while velocity is commented out here in hardware_interface.cpp.

If velocity control for joints is not possible, then are there any example configurations or any suggestions on how to set up the Kinova or configure Moveit Servo for smoother joint behavior?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions