Skip to content

Support for cartesian commands #330

Open

Description

@diogoalmeida

Hi!

In the docs, under features.md, "Cartesian position-based control" and "Cartesian twist-based control" are marked as not part of the ROS2 driver.

  1. Are there plans to change this? If yes, are they public/is there a timeline?
  2. If not, why not? Is that decision documented?

Thank you for your time :)

Activity

  1. fmauch commented on Apr 8, 2022

    @fmauch
    Contributor

    This is currently not very high on our priority list, as the interfaces aren't available in ros2_control, at all.

  2. diogoalmeida commented on Apr 8, 2022

    @diogoalmeida
    Author

    Hi @fmauch, thanks for your reply.

    the interfaces aren't available in ros2_control, at all.

    Does this mean that ros2_control does not support cartesian commands at all? As in it is not possible to define something like a System hardware component that offers the possibility to set a 6DOF twist, for example?

    Or is it specific to the UR and interfaces such as SpeedL aren't available to the ros2_control driver?

  3. fmauch commented on Apr 8, 2022

    @fmauch
    Contributor

    Does this mean that ros2_control does not support cartesian commands at all? As in it is not possible to define something like a System hardware component that offers the possibility to set a 6DOF twist, for example?

    As far as I know, yes.

  4. ametrix commented on Apr 11, 2022

    @ametrix

    Hello @fmauch

    I see that you are listed as maintainer of https://github.com/UniversalRobots/Universal_Robots_ROS_controllers_cartesian.
    Are you planning to port this to ROS 2 ?

  5. destogl commented on Apr 24, 2022

    @destogl
    Contributor

    Does this mean that ros2_control does not support cartesian commands at all? As in it is not possible to define something like a System hardware component that offers the possibility to set a 6DOF twist, for example?

    As far as I know, yes.

    As maintainer of ros2_control I would not agree on this. @diogoalmeida if your hardware driver (UR hardware driver) supports/exports those interfaces, you can configure JointTrajectoryController to use those interfaces instead of joints. There could be minor tweaking necessary, but is should work without much effort.

    If you want to tackle this, I'll be glad to support you with my knowlege.

  6. diogoalmeida commented on Apr 25, 2022

    @diogoalmeida
    Author

    Hi @destogl thanks for your comment.

    you can configure JointTrajectoryController to use those interfaces instead of joints.

    Interesting! I am not sure how that would work for trajectories. I managed to adjust one of the ros2 control demos to forward "cartesian" commands (linear and angular velocity for the robot base) to the diffbot example, which required some modifications to the robot hardware driver.

    I'd expect that the ur driver would require something like that. It is already detecting whether it needs to send SpeedJ or ServoJ commands when it does a command mode switch (

    hardware_interface::return_type URPositionHardwareInterface::perform_command_mode_switch(
    ).

    If we add a cartesian command mode, I'd expect the driver to be able to detect it and then use, for example, the SpeedL command for a cartesian twist command mode.

    Was something like this that you had in mind?

  7. destogl commented on Apr 25, 2022

    @destogl
    Contributor

    Was something like this that you had in mind?

    Yes, exactly! You should add other interfaces for Cartesian commands, and in prepare_ and perform_command_mode_switch you can detect mode you are in.

    I managed to adjust one of the ros2 control demos to forward "cartesian" commands (linear and angular velocity for the robot base) to the diffbot example, which required some modifications to the robot hardware driver.

    This sounds fascinating! Would you be so kind to share this code with us in form of a new example for ros2_control_demos repository? This is very valuable for many users.

  8. JaredRosenbaum commented on Jun 23, 2025

    @JaredRosenbaum

    Hi @fmauch - any news on the addition of the twist (and other cartesian) controllers to the ROS2 driver? Does this remain a low priority?

  9. urfeex commented on Jun 25, 2025

    @urfeex
    Member

    Hi @fmauch - any news on the addition of the twist (and other cartesian) controllers to the ROS2 driver? Does this remain a low priority?

    At the moment, yes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions