-
Notifications
You must be signed in to change notification settings - Fork 30
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
Adding the Plugin makes UE4Editor unable to start #8
Comments
Interesting, both my OpenDRIVE plugin and CARLA have a class named Not sure if this can be solved on my end: I don't really want to start renaming my classes in case they conflict with X or Y other plugin. What you can do is either rename or remove this class from either plugin to bypass the conflict. My |
Also, note that I don't distribute Linux binaries for esmini/RoadManager, so you'll have to build them yourself. Even though the upstream project has Linux support, I might have gone a bit hard on the CMake configuration files cleaning, and so the Linux build chain might be broken. If so, let me know and I'll try to repair that. |
You can get the latest esmini binaries releases for your system here: |
Thank you Emil for this information, but there's a small caveat though: the Unreal OpenDRIVE plugin uses a very slightly modified version of esmini. Most notably, I added Now that I think of it, I'm really not sure that any of that would build on Linux. I'm actually not really familiar with building dynamic C++ libraries on Linux, so I'm not sure how I would get around to getting it to work. |
Oh, I see. So you don't use the esminiRMLib or esminiLib? Unfortunately I have not (yet) experience with Unreal, although it's high on my list :) In Unity we use the two libs mentioned above. They are in fact shared (.dll in Windows, .so in Linux) but includes everything needed for esmini linked statically within. - like a container including static stuff, but the container itself is linked dynamically. Maybe you actually need the internal API of roadmanager. Otherwise, it would be interesting to investigate whether the shared libs would provide enough functionality for your use cases. |
I don't use any of those, but I haven't really checked them out either. For context, when I started using RoadManager, I don't think any DLL was available. It was before the first RMLib (I don't recall the name) that you used for your Unity project (or right around that time). So back then I just statically linked with RoadManager, because since I was already working in C++, it was the easiest thing to do. Then I got used to the API and had quite a lot of dependencies to it, so I never really gave much thought about the C API. When I refactored things and decided to use dynamic linking, I think there was the first RMLib, but I don't think it was as complete as it is now. So since I'm very lazy, I just decided to put some I don't really know if the shared libs would be functionally enough. I think I mostly use common and high level features, so it would probably cover most of my requirements. One weird thing I do that comes to mind is to set the lane snapping type to all, because I do like my sidewalks ;)
But it's just so nice to just use the C++ API and have everything available with classes and such, instead of relying on an intermediate C API. Having the ability to use RoadManager's native C++ API (and my other C++ libs) actually was one of the major reason why I chose Unreal over Unity. |
I see. Yes the ability to integrate C++ is definitely an advantage of Unreal! Regarding snap: Recent change is that pedestrians will snap to sidewalks (in addition to drivable lanes - maybe it should be instead :)). See esmini/esmini#343. Maybe that would work for your use case as well? Just a loose question: Would it be possible to pull in your modifications? Or maybe you did a lot of customizations? |
I didn't do much changes, and as much as possible I try to only add things and not change existing code. But I can make a quick human-readable summary, because it's quite short. I think this is the diff on GitHub? esmini/esmini@master...brifsttar:esmini:roadmanager The breaking things are:
Non-breaking things:
So right out of the box the fork can't be pulled in, but with just a bit of work it could. For the DLL stuff, it's probably possible to generate both a static and dynamic using CMake (I'm lazy so I just replaced a Now that I wrote all that, I'm half motivated to do it. But it's quite busy time here, so maybe later! |
Thank you both for answering. I deleted ATrafficLightController and then a different error appeared. I can look deeper into it to find a single-use fix tomorrow. |
Come to think of it there are multiple steps involved to get the plugin to work on Linux, because so far everything has been targeted for Windows. The first thing is to build RoadManager for Linux, which should be doable in theory (as mentioned by Emil, the upstream project builds on Linux), but requires some work as I changed CMake files + hpp to link dynamically. The next step is to update the After that, the Loader Module (here) also needs to be updated to load the so instead of the DLL. And that should be it? I'm really unfamiliar with Linux, so I can't really help or estimate the workload to get that to run. |
UE Version: UnrealEngine_4.26
Carla Version: github branch master
cloned with
git clone --recurse-submodules https://github.com/brifsttar/OpenDRIVE.git
Project folder
make launch
The text was updated successfully, but these errors were encountered: