Skip to content

[RQT-JTC] Add robot_description combo#1131

Open
delihus wants to merge 23 commits into
ros-controls:masterfrom
delihus:rqt-jtc-robot-description
Open

[RQT-JTC] Add robot_description combo#1131
delihus wants to merge 23 commits into
ros-controls:masterfrom
delihus:rqt-jtc-robot-description

Conversation

@delihus

@delihus delihus commented May 10, 2024

Copy link
Copy Markdown
Contributor

When there are joints what don't have implemented limits rqt-jtc throws a lot of errors.

I added looking for limits for joints what are controlled by actual JTC.

The main feature is that it is possible to change robot description topic to control specific robot. Unfortunately it is not possible to do this using namespace in my case. My namespace issue: ros-controls/ros2_control#1506

Result video:
Screencast from 10.05.2024 11:52:20.webm

delihus and others added 4 commits January 11, 2023 14:19
changed default value from `odom` -> `base_link`
Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
…cription

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
@christophfroehlich

Copy link
Copy Markdown
Member

When there are joints what don't have implemented limits rqt-jtc throws a lot of errors.

I see the need for the namespace issue, but what do you mean by that? A revolute/prismatic joint without limits is not a genuine URDF, and we throw an error since ros-controls/ros2_control#1256, or ros2_control 4.9.0 respectively.

@delihus

delihus commented May 15, 2024

Copy link
Copy Markdown
Contributor Author

@christophfroehlich
I'm wandering why RQT-JTC checks limits for all joints described in URDF if it has an access for joints controlled by JTC via jtc_info.

I'm asking about this because when the errors about unknown limits of mimic joints throw then there JTC doen't appear in controllers combo.
Here is a video where I cannot select the controller.

Screencast.from.15.05.2024.16.49.21.webm

@christophfroehlich

Copy link
Copy Markdown
Member

Ok, so the problem comes from mimic joints, where no limits are given? That does not make a lot of sense to add it, but it is not explicitly given in the XML specification that it can be omitted. I'll come back later to check what we excpect in the component parser.

@delihus

delihus commented May 15, 2024

Copy link
Copy Markdown
Contributor Author

Take a look to robotiq_description. The controlled revolute joint ${prefix}robotiq_85_right_knuckle_joint has limits defined but its mimic joints does not. That is why the exceptions throw.

I don't really know if limits should be implemented in continuous mimic joints or not.

The issue with RQT-JTC it that it is not possible to select a controller if the RQT-JTC cannot read the limits of all joints defined in robot_description. I don't really understand why RQT-JTC reads the limits of all joints. I think RQT-JTC should focus on its controlled joints.

@christophfroehlich

Copy link
Copy Markdown
Member

Thanks for the background information. I agree that it should check the to-be-controlled joints only, but I'm still curious what should be the correct XML in this case. We have the limit tag in our examples and the release notes, but this should not block this PR but related to: #891
This PR is also related to #894 (you fixed the URDF source, now where we subscribe always from topic).

@christophfroehlich christophfroehlich left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was able to find some time to test it now.
Maybe you should split the joint-parsing from the the combo-box PR. The first one is great and works well, but I'm not yet convinced from the combo-box:

  • Maybe I don't see it, but couldn't you just run
    ros2 run rqt_joint_trajectory_controller rqt_joint_trajectory_controller --ros-args -r /robot_description:=/my_robot_descr instead of changing the gui? Yes, it is more comfortable with the combo box but at least we should add robot_description as default.
  • The console output is rather noisy now (>40x Waiting for the robot_description!) after selecting the topic (if the controller_manager was selected before). I don't see what has changed in the logic, please have a look.
  • The three combo boxes side by side are not very userfriendly in the default window size. should we change it into several lines?
    image

btw: I found a bug, but this also happens with the head version #1136

@delihus

delihus commented May 23, 2024

Copy link
Copy Markdown
Contributor Author

@christophfroehlich I moved the reading of joints to the another PR #1146

After that I change the robot_description feature.

@saikishor saikishor left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @christophfroehlich on this. Having 3 dropdowns is not very user-friendly. Moreover, Now it is up to the user to choose the proper combination of controller_manager and the robot description. This is very error prone right?

If we need this kind of setup, does it make sense to have the controller_manager republish the robot_description it is currently using?. This way applications such as rqt_joint_trajectory_controller or others can make use of it. What's your opinion on this? @bmagyar @destogl @christophfroehlich

@mergify

mergify Bot commented Jun 5, 2024

Copy link
Copy Markdown
Contributor

This pull request is in conflict. Could you fix it @delihus?

@bmagyar

bmagyar commented Jun 10, 2024

Copy link
Copy Markdown
Member

@delihus could you please rebase this one? Or just resolve the conflicts

delihus added 4 commits June 12, 2024 10:42
…cription

Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
Signed-off-by: Jakub Delicat <jakub.delicat@husarion.com>
@delihus

delihus commented Jun 14, 2024

Copy link
Copy Markdown
Contributor Author

@bmagyar Updated

@bmagyar

bmagyar commented Jun 15, 2024

Copy link
Copy Markdown
Member

Thank you!

@destogl

destogl commented Feb 27, 2026

Copy link
Copy Markdown
Member

@christophfroehlich I have updated this as follows:

  1. Do not crash if the joint is missing limits. If a joint on a robot is missing limits, gray it out. This was also crashing if we had wheels on the robot that are not used with JTC, but still wouldn't be an error with joint limits.
  2. Reduced output for waiting robot description. And added new output for clarity when waiting for the CM and JTC.
  3. Setting default values for the CM and controller, as usually we have one, improves usability. Otherwise, we can choose a different one.
  4. @saikishor I would not republish "/robot_description" for now. I don't see a good, sensible example for it.

@destogl destogl marked this pull request as ready for review March 2, 2026 08:21
destogl
destogl previously approved these changes Mar 2, 2026

@destogl destogl left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for stats 👍

@christophfroehlich christophfroehlich left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to test this with example_1, but the sliders are deactivated for the continuous joints. In the rolling version, they were added with -3.14/3.14 limits. Don't you think this makes sense? Or should we change our famous rrbot to have revolute joints instead?

@christophfroehlich christophfroehlich moved this from WIP to Needs discussion in Review triage Mar 28, 2026

@christophfroehlich christophfroehlich left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested the robot_description_topic now by remapping it in example_1:
I can't select a JTC with this console log:
[INFO] [1774725639.484563238] [rqt_joint_trajectory_controller]: Waiting for a joint trajectory controller with 'JointTrajectoryController' in the type...
unless I select the topic first. This is not very intuitive

@github-project-automation github-project-automation Bot moved this from Needs discussion to WIP in Review triage Mar 28, 2026
@christophfroehlich

Copy link
Copy Markdown
Member

@lakhmanisahil do you want to take this over? you can open a new PR and fix the conflicts first, it seems that @delihus is not active anymore.

@lakhmanisahil

Copy link
Copy Markdown
Contributor

@lakhmanisahil do you want to take this over? you can open a new PR and fix the conflicts first, it seems that @delihus is not active anymore.

Hey @christophfroehlich,
Let me take a look at this issue, and I will update you accordingly.

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

This PR is stale because it has been open for 45 days with no activity. Please tag a maintainer for help on completing this PR, or close it if you think it has become obsolete.

@github-actions github-actions Bot added the stale label Jun 8, 2026
@mergify

mergify Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

This pull request is in conflict. Could you fix it @delihus?

@github-actions github-actions Bot removed the stale label Jun 9, 2026
@christophfroehlich christophfroehlich changed the title [RQT-JTC] Find limits only in jtc joints | add robot_description combo [RQT-JTC] Add robot_description combo Jun 10, 2026
@christophfroehlich

Copy link
Copy Markdown
Member

To make this possible for review, I removed the limit handling and created a separate PR #2404 for that.

@christophfroehlich christophfroehlich moved this from WIP to Needs review in Review triage Jun 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Needs review

Development

Successfully merging this pull request may close these issues.

6 participants