pantor / ruckig

Motion Generation for Robots and Machines. Real-time. Jerk-constrained. Time-optimal.
https://ruckig.com
MIT License
634 stars 155 forks source link

New ROS release #137

Closed ghost closed 1 year ago

ghost commented 1 year ago

Hi @pantor,

Quite a few great features and fixes have been added to Ruckig since latest ROS release (v0.6.3). Would you mind running a new Ruckig bloom release for ROS?

pantor commented 1 year ago

Yeah, unfortunately I've got somme issues with bloom, GitHub's 2FA, and the recent transfer to ros2-gbp that already did cost me a bit of time. Andy already offered some help in #118, but not sure about the current state. I'd be happy to transfer ROS maintenance if anybody wants to step in, or even better to see a PR that integrates it into Ruckig's CI.

ghost commented 1 year ago

Unfortunately I am not familiar with bloom or GitHub's CI.

I've found an example of a package which seems to have been successfully bloom'ed using the same CI action as you've set up for Ruckig. This might be useful for debugging / inspiration:

It seems that they are using a release repo under their own namespace: https://github.com/at-wat/neonavigation-release Perhaps doing something similar for Ruckig could solve the 2FA issue?

AndyZe commented 1 year ago

@vatanaksoytezer do you have bandwidth to make a Ruckig release, or have a suggestion for somebody at PickNik who could? I don't need it for any project right now but it would be nice since this package is pretty important

If @vatanaksoytezer doesn't know anybody, I wouldn't mind doing it

vatanaksoytezer commented 1 year ago

I am at client visit this week and will not be available until next Wed from travelling. I don't mind releasing next Wed though.

AndyZe commented 1 year ago

:+1: @vatanaksoytezer is a lot more knowledgeable than I am about the release process

vatanaksoytezer commented 1 year ago

@pantor I don't mind maintaining ROS side and releases. Can I get write access to https://github.com/pantor/ruckig-release by next Wednesday so I can bloom? Having write access to the current ruckig repo will be helpful if you don't want to spend time tagging releases and merging ROS related PRs. If you don't mind doing that I can make the release without write access as well. In that case, I can open a release PR from my fork, then you can fast forward merge + tag it, which would let me release.

pantor commented 1 year ago

Great, thank you @vatanaksoytezer! There is also the ros2-gbp/ruckig-release repository that I thought should replace pantor/ruckig-release. I would prefer the ros2-gpb repo, should I give you access to that one?

vatanaksoytezer commented 1 year ago

@pantor I think you should not be able to give me access to https://github.com/ros2-gbp/ruckig-release but if you want to use those repos I would appreciate if you can open a PR to add me to releasers in ros2-gbp here: https://github.com/ros2-gbp/ros2-gbp-github-org/pulls

pantor commented 1 year ago

I've opened a PR at ros2-gbp/ruckig-release to add you as a release team member there and invited you as a collaborator here. I think you should be good to go once the PR is merged.

ghost commented 1 year ago

Happy holidays!

MoveIt is now using Ruckig as a dependency, and therefore the most recently bloomed release (0.6.3) is fetched from the package manager.

I am using Ruckig in a project where we need atleast version 0.7.1, as well as MoveIt, and have so far been building Ruckig from source and installing to /usr/local to allow for this configuration.

It seems that despite CMake being able to find my source-compiled version, no ruckig_INCLUDE_DIRS or ruckig_LIBRARIES variables are defined for catkin to utilise, which leads catkin (or CMake?) to somehow link my project to the 0.6.3 version of ruckig in /opt/ros/noetic. I've spent embarrasing amounts of time trying to wrangle CMake/catkin into using my /usr/local version of Ruckig, even going as far as hardcoding paths. Nothing I do leads to the correct version being linked.

My project currently does not compile due to this. I assume the simplest solution to this problem is a new Ruckig release, and I must admit I am at a bit of loss about how to proceed.

@pantor @vatanaksoytezer Do you have a timeline for an expected release?

vatanaksoytezer commented 1 year ago

@aseligmann-ipu I just created the new changelog here: https://github.com/pantor/ruckig/pull/149 and version is already bumped in a previous commit a few days ago. Once approved I will go onto bloom release. Since we missed the noetic sync by a week. I expect it to be synced in three weeks of time or so.

vatanaksoytezer commented 1 year ago

It seems that despite CMake being able to find my source-compiled version, no ruckig_INCLUDE_DIRS or ruckig_LIBRARIES variables are defined for catkin to utilise, which leads catkin (or CMake?) to somehow link my project to the 0.6.3 version of ruckig in /opt/ros/noetic.

Also please don't use binaries and source builds together. If you need to use ruckig as a source dependency to moveit, please delete the binary version and only source the source built version. In short removing the binary installation should fix your issue: (sudo apt remove ros-ROS_DISTRO-ruckig). Please let me know how it goes and I would be happy to help further.

ghost commented 1 year ago

@aseligmann-ipu I just created the new changelog here: #149 and version is already bumped in a previous commit a few days ago. Once approved I will go onto bloom release. Since we missed the noetic sync by a week. I expect it to be synced in three weeks of time or so.

Perfect timing, sounds good thank you

ghost commented 1 year ago

It seems that despite CMake being able to find my source-compiled version, no ruckig_INCLUDE_DIRS or ruckig_LIBRARIES variables are defined for catkin to utilise, which leads catkin (or CMake?) to somehow link my project to the 0.6.3 version of ruckig in /opt/ros/noetic.

Also please don't use binaries and source builds together. If you need to use ruckig as a source dependency to moveit, please delete the binary version and only source the source built version. In short removing the binary installation should fix your issue: (sudo apt remove ros-ROS_DISTRO-ruckig). Please let me know how it goes and I would be happy to help further.

To clarify, my goal is not to use the source-built version of Ruckig as a dependency for MoveIt. I've been using Ruckig since before it became a dependency for MoveIt. We are however using MoveIt for other things.

Upgrading my MoveIt (core) binaries to version 1.1.11 requires ros-noetic-ruckig, which is where the issue arises. Further, it seems that earlier versions of MoveIt, e.g. 1.1.10 are no longer available on the package repository (http://packages.ros.org/ros/ubuntu/pool/main/r/ros-noetic-moveit-core/), so downgrading the binary version is not an option either. Simply removing ros-noetic-ruckig is also not an option anymore, since ros-noetic-moveit-core has it as dependency, and will therefore also be removed.

My goal is to use the source-built Ruckig for a custom package which is not MoveIt related.

vatanaksoytezer commented 1 year ago

@aseligmann-ipu do you mind opening a new issue in MoveIt so it is more visible there as well? It's a bit undocumented but you should be able to access earlier versions of packages using a different ROS_INDEX (https://raw.githubusercontent.com/ros/rosdistro/noetic/2022-11-30/index-v4.yaml) as in https://github.com/ros-planning/moveit2/issues/1120#issuecomment-1076520896

ghost commented 1 year ago

@aseligmann-ipu do you mind opening a new issue in MoveIt so it is more visible there as well? It's a bit undocumented but you should be able to access earlier versions of packages using a different ROS_INDEX (https://raw.githubusercontent.com/ros/rosdistro/noetic/2022-11-30/index-v4.yaml) as in ros-planning/moveit2#1120 (comment)

I'll try the linked method of fetching older packages, thank you.

I can open an issue on the MoveIt repo, but do you deem that this issue is MoveIt related? To me it seems that the MoveIt package is not at fault, since they've just implemented a useful feature utilising Ruckig :thinking:

vatanaksoytezer commented 1 year ago

Hmm reading again your problem, can you confirm what I am understanding is right?

What I understand is, MoveIt + Ruckig Binaries works, but you want to use a source version ruckig in the same project with moveit and that's the problem. If the former (MoveIt + Ruckig binaries) does not work, yes we should open an issue. Otherwise you are right we can keep it here.

ghost commented 1 year ago

What I understand is, MoveIt + Ruckig Binaries works, but you want to use a source version ruckig in the same project with moveit and that's the problem.

This is correct. I can see that what I am trying to accomplish here will lead to a non-trivial solution. I do however believe it should be possible.

vatanaksoytezer commented 1 year ago

@pantor I released for humble and rolling. But apparently, I need access to change the URL from pantor/ruckig-release to ros2-gbp/ruckig-release for noetic and foxy. Do you mind giving me access to pantor/ruckig-release so I can go ahead and do that?

pantor commented 1 year ago

Done!

vatanaksoytezer commented 1 year ago

Releases for foxy, humble, rolling, noetic and melodic have been made for version 0.9.1. I will try to stick to a release cycle of every 6 to 8 weeks, if there are sufficient changes. Let me know if there is anything I can help with. @pantor do you want to make a Github Release for v0.9.1 or should I do it?

Anyone looking here in the future, just ping me if you need a new release for a distro and I don't mind cutting it asap. Closing the issue as completed!