Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use fork of ros2_kortex that does not depend on Gazebo classic #921

Merged
merged 7 commits into from
Jul 26, 2024

Conversation

sea-bass
Copy link
Contributor

@sea-bass sea-bass commented Jul 8, 2024

Description

In Ubuntu 24.04, Gazebo classic is no longer supported or available from binaries. Due to the ros2_kortex repo still using this as a dependency, CI has been failing.

See: Kinovarobotics/ros2_kortex#217 and Kinovarobotics/ros2_kortex#228

So, to have this work, we (and all consumers of this package on Jazzy onwards) have to get around this.

Checklist

  • Required by CI: Code is auto formatted using clang-format
  • While waiting for someone to review your request, please consider reviewing another open pull request to support the maintainers

@sea-bass sea-bass requested a review from sjahr July 8, 2024 12:10
@sea-bass sea-bass changed the title Add gazeb_ros2_control repo to repos file Add gazebo_ros2_control repo to repos file Jul 8, 2024
@sea-bass
Copy link
Contributor Author

sea-bass commented Jul 8, 2024

Ugh, no, this then has even more transitive dependencies on gazebo_ros and gazebo_dev which are also not available on Ubuntu 24.04. And we're definitely not gonna try build all of Gazebo from source here...

This will not be a viable option, and instead it's preferable to fix the ros2_kortex repo.

I tried doing that, but the maintainers seem reluctant: Kinovarobotics/ros2_kortex#228

@sea-bass sea-bass changed the title Add gazebo_ros2_control repo to repos file Use fork of ros2_kortex that does not depend on Gazebo classic Jul 8, 2024
@sea-bass
Copy link
Contributor Author

sea-bass commented Jul 8, 2024

This is now failing because the version of ros2_control from binaries doesn't match the latest gz_ros2_control ... I give up for now, too many breakages.

Copy link
Contributor

@stephanie-eng stephanie-eng left a comment

Choose a reason for hiding this comment

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

For what it's worth, I tried adding ros2_control as a source-built dependency on top of your branch, but it looks like robotiq_driver is not compatible with the latest ros2_control:
https://github.com/stephanie-eng/moveit2_tutorials/actions/runs/9884753382/job/27301653148

I'm also waving the white flag on this for now, so I figured I'd share my findings to whomever tries this again.

@henningkayser
Copy link
Member

henningkayser commented Jul 16, 2024

Thank you for your effort! I started a similar thing already here #913. Unfortunately, there is currently just not enough capacity to properly tackle the tutorial issues. I'll still pin this as high priority until we can assign someone to get this fixed. moveit/moveit2#2864

@sea-bass
Copy link
Contributor Author

sea-bass commented Jul 16, 2024

For what it's worth, I tried adding ros2_control as a source-built dependency on top of your branch, but it looks like robotiq_driver is not compatible with the latest ros2_control: https://github.com/stephanie-eng/moveit2_tutorials/actions/runs/9884753382/job/27301653148

I'm also waving the white flag on this for now, so I figured I'd share my findings to whomever tries this again.

I actually also fixed the robotiq package...

PickNikRobotics/ros2_robotiq_gripper#54

We basically need that landed, a new ros2_control rolling sync or source build, and the same fix for moveit_resources:

moveit/moveit_resources#200

Believe me, I tried...

@stephanie-eng
Copy link
Contributor

Well, the rolling sync is done, so we shouldn't need a ros2_control source build... That's one thing out of the way.

@stephanie-eng
Copy link
Contributor

stephanie-eng commented Jul 25, 2024

We failed again due to an invalid parameter (sim_ignition). I think it's due to a stray sim_ignition in ros2_kortex passed into the gripper xacro (this guy), where you have since been renamed it to sim_gazebo (here).

@sea-bass it's your fork, so you get to be the arbiter if the above is correct or not.

@sea-bass
Copy link
Contributor Author

We failed again due to an invalid parameter (sim_ignition). I think it's due to a stray sim_ignition in ros2_kortex passed into the gripper xacro (this guy), where you have since been renamed it to sim_gazebo (here).

@sea-bass it's your fork, so you get to be the arbiter if the above is correct or not.

You got it!

When I first put up the ros2_kortex PR I told myself I wouldn't mess with any other repos in the process, but then I found I had to for the numerous reasons in this thread... so I ended up changing the Robotiq repo after all!

@sea-bass
Copy link
Contributor Author

sea-bass commented Jul 25, 2024

So the next issue is that the old bringup test is trying to launch RViz that that node is crashing on the CI runner... is this a new thing?

  1: [rviz2-1] qt.qpa.xcb: could not connect to display 
  1: [rviz2-1] qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
  1: [rviz2-1] This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
  1: [rviz2-1] 
  1: [rviz2-1] Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, xcb.
  1: [rviz2-1] 

Error: ROR] [rviz2-1]: process has died [pid 10184, exit code -6, cmd '/opt/ros/rolling/lib/rviz2/rviz2 -d /home/runner/work/moveit2_tutorials/moveit2_tutorials/.work/target_ws/install/moveit2_tutorials/share/moveit2_tutorials/launch/kinova_moveit_config_demo.rviz --ros-args -r __node:=rviz2 --params-file /tmp/launch_params_5cniyptk --params-file /tmp/launch_params_l_nqqojc --params-file /tmp/launch_params_29fvhxrd --params-file /tmp/launch_params_1jhl6q7w --params-file /tmp/launch_params_i9zx7xzi'].

EDIT: Actually, that may have always been there. But there is this too:

    [move_group-4] terminate called after throwing an instance of 'rclcpp::ParameterTypeException'
    [move_group-4]   what():  expected [string_array] got [string]
Error: ROR] [move_group-4]: process has died [pid 10187, exit code -6, cmd '/root/ws_moveit/install/moveit_ros_move_group/lib/moveit_ros_move_group/move_group --ros-args --params-file /tmp/launch_params_123_gqqr'].

EDIT 2: That was documented in #910 and I've also updated my ros2_kortex fork to make the update.

See Kinovarobotics/ros2_kortex#228 for more details

@sea-bass
Copy link
Contributor Author

IT PASSED!!!!!!!!!!

@sjahr sjahr merged commit 80bd8c2 into main Jul 26, 2024
5 of 8 checks passed
@sjahr sjahr deleted the add-gazebo-ros2-control branch July 26, 2024 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants