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

Support Jazzy Jalisco #333

Open
jimmy-mcelwain opened this issue Nov 21, 2024 · 2 comments · May be fixed by #337
Open

Support Jazzy Jalisco #333

jimmy-mcelwain opened this issue Nov 21, 2024 · 2 comments · May be fixed by #337
Milestone

Comments

@jimmy-mcelwain
Copy link
Collaborator

I have a functional build of jazzy. I haven't tested it thoroughly, but I have done cursory testing and it seems to work well. Here is a summary of changes

I was able to update all of our repos to the versions available here https://github.com/ros2/ros2/releases/tag/release-jazzy-20240919 with a few exceptions that I'll go into.

For the ones that we already have forks of, I just pulled the upstream repos and then cherry-picked commits from our humble (or defunct iron) forks (rmw, rosidl_typesupport, and rcutils)

(https://github.com/Yaskawa-Global/micro_ros_rcl/tree/jazzy) is the only pre-existing fork that needed changes that couldn't just be cherry-picked, but the changes were pretty straightforward.

ros2/ros2_tracing: I am actually targeting this commit ros2/ros2_tracing@8d898b5 which is a few commits past the jazzy release. The reason for this is that the macros that were removed in the linked commit cause compilation to fail. We could instead create a fork of ros2_tracing and cherry pick the commit that I linked, but I believe that this works, and the fewer forks that we have the better.

There are some relevant changes for ament_cmake. First, I am now including ament_cmake_gen_version_h which was previously patched out (see Yaskawa-Global/ament_cmake@112e5d1). I changed its CMakeLists.txt to get rid of the language/toolchain requirement, which I'm assuming is the reason that it was excluded in the first place, and I got rid of the C/CXX standard requirements and testing. Secondly, due to ros2/libyaml_vendor#58, yaml.h and yaml.a are now installed in /install/opt rather than the /install/lib or /install/include directories. As mentioned here ros2/libyaml_vendor#60 this was a intentional design decision, but there is also still a related issue open here ament/ament_cmake#475 related to it. For now, I just changed the build script to build packages in /opt into the library and include their header files. I realize that this isn't ideal, but it at least builds properly.

I also took the opportunity to remove rcpputils from micro_ros_motoplus . I believe that this could be removed from humble too, and I may try to do so. The history for micro_ros_motoplus is messy right now, so I could separate this into its own commit and squash the iron changes since we never actually released iron.

I also updated motoplus_posix_shim and added an stroll implementation, so you'll need to update that to build libmicroros and have it load onto the controller properly.

I agree that the micro_ros_motoplus_buildscripts should build for all supported distributions and that it had a confusing history, so I made some changes there too. It can now build both humble and jazzy. We can merge that into main, and delete the jazzy and iron branches.

Finally, the iron_wip branch had confusing history and a lot of unnecessary changes, so I ended up branching from main instead and manually going through so the history is cleaner. Compared to iron, not a lot of changes are needed.

This zip file contains the libmicroros for jazzy as well as the .out file.
jazzy_yrc1000.zip

@gavanderhoorn
Copy link
Collaborator

gavanderhoorn commented Nov 22, 2024

Nice work. I'll take a more in-depth look later.

Could you please open PRs on the relevant repositories (except the forks of dependencies)? We can't review branches.

@jimmy-mcelwain jimmy-mcelwain linked a pull request Nov 25, 2024 that will close this issue
@jimmy-mcelwain
Copy link
Collaborator Author

Done I think. https://github.com/Yaskawa-Global/micro_ros_motoplus does not have a 'main' branch to pull into, so I am pulling into humble, but that is just so it is easy to review/we can have discussions. It shouldn't be merged into humble.

@ted-miller ted-miller added this to the 0.2.0 milestone Nov 25, 2024
@ted-miller ted-miller linked a pull request Nov 25, 2024 that will close this issue
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 a pull request may close this issue.

3 participants