Formula-Student-Driverless-Simulator icon indicating copy to clipboard operation
Formula-Student-Driverless-Simulator copied to clipboard

Add CI file and fix ros2 directory

Open pmo73 opened this issue 2 years ago • 9 comments

This pull request will fix the build process for the ros2 package, so that it can be built with clang and g++

pmo73 avatar Jun 26 '23 19:06 pmo73

Thanks a lot! Your changes work flawlessly for me in ROS Foxy. I can finally run FSDS with the ROS2 bridge instead of a separate ROS1 to ROS2 bridge.

masskro0 avatar Nov 24 '23 12:11 masskro0

Thank you, glad to hear it

pmo73 avatar Nov 24 '23 15:11 pmo73

Hi @pmo73,

I've been looking a bit at this, mainly for the workflow. I tried running the workflow locally with act, but for my tests it seems like colcon is not properly parsing the base-path entry in the colcon-defaults.

Regarding the other changes, I still need to run tests, to make sure it's compatible with all non-EOL ROS versions (both 1 and 2).

wouter-heerwegh avatar Jan 11 '24 12:01 wouter-heerwegh

Hi @wouter-heerwegh, you're absolutely right that the workflow doesn't work like this. Unfortunately, I have no idea why it doesn't work with the colcon default.yaml, but luckily you can do it manually. I have revised the workflow and now it should work. I also fixed the workflow for ros1, the workflow did also not work locally for me.

pmo73 avatar Jan 13 '24 13:01 pmo73

Hi @pmo73,

Thanks, I'll have a look at it. I was also working on some changes for the workflow. One of them would be to drop support for melodic, as it is EOL as is Ubuntu 18.04. I'll probably merge my changes with yours.

Regarding the other changes, were they only to be able to build Airsim? Or did you also test if you could open the Unreal Project with it? I used to build on Ubuntu 18.04, which had no issues. These days I'm on 20.04, but I can't get the project packaged at all.

wouter-heerwegh avatar Jan 13 '24 14:01 wouter-heerwegh

Hi @wouter-heerwegh , since we changed the simulator just before Christmas, I have not installed Unreal Engine to be able to confirm this now. In this respect, it is currently only tested to be able to build AirSim at all. But since there are actually no special c++ features that have been changed that are used here, I would have assumed that the changes do not significantly affect loading in Unreal Engine. In addition, @masskro0 seems to have been able to load the project with Ubuntu20.04 and ROS Foxy.

pmo73 avatar Jan 13 '24 14:01 pmo73

I just thought that the changes we made might help others. If the code doesn't work with Unreal Engine, feel free to close the PR

pmo73 avatar Jan 13 '24 14:01 pmo73

What kind of error do you get on ubuntu20.04?

pmo73 avatar Jan 13 '24 14:01 pmo73

I need to build with clang 8, which was also confirmed by someone else in #365, otherwise librpc.a exposes symbols of pthread, pthread_cond_clockwait to be more specific. This function has been introduced in glibc 2.30. UE 4.27 uses a toolchain to compile on linux which is based on Centos 7, which has glibc 2.17.

I can open the Unreal project when using clang 8, but when packaging it complains about not knowing what uint64_t inside a header file of the Engine itself. I think I'll try to port the project to UE5.3 to see if this fixes all the issues I'm currently having.

I can still build binaries, but in Windows. For me this is no issue, but I can imagine that some people do not have their system dual booted, and they would probably just like to develop and build in linux.

wouter-heerwegh avatar Jan 13 '24 14:01 wouter-heerwegh

Superseded by #375

wouter-heerwegh avatar Oct 31 '24 08:10 wouter-heerwegh