moveit / moveit2_tutorials

A sphinx-based centralized documentation repo for MoveIt 2
https://moveit.picknik.ai
BSD 3-Clause "New" or "Revised" License
162 stars 196 forks source link

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

Closed sea-bass closed 4 months ago

sea-bass commented 4 months ago

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: https://github.com/Kinovarobotics/ros2_kortex/issues/217 and https://github.com/Kinovarobotics/ros2_kortex/pull/228

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

Checklist

sea-bass commented 4 months ago

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: https://github.com/Kinovarobotics/ros2_kortex/pull/228

sea-bass commented 4 months ago

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.

henningkayser commented 4 months ago

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. https://github.com/moveit/moveit2/issues/2864

sea-bass commented 4 months ago

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...

https://github.com/PickNikRobotics/ros2_robotiq_gripper/pull/54

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

https://github.com/moveit/moveit_resources/pull/200

Believe me, I tried...

stephanie-eng commented 4 months ago

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 commented 4 months ago

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 commented 4 months ago

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 commented 4 months ago

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 https://github.com/moveit/moveit2_tutorials/issues/910 and I've also updated my ros2_kortex fork to make the update.

See https://github.com/Kinovarobotics/ros2_kortex/pull/228 for more details

sea-bass commented 4 months ago

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