Feature/mw/fields2cover2#53
Conversation
This reverts commit 3669e7d.
This reverts commit aa2cf20.
This reverts commit 668abc4.
Signed-off-by: Mike Wake <michael.wake@aosgrp.com.au>
Signed-off-by: Mike Wake <michael.wake@aosgrp.com.au>
Use tinyxml2_vendor properly. Like in ros/pluginlib IOW first find_package(tinyxml2_vendor REQUIRED) which sets up a module path that provides a module for find_package(TinyXML2 REQUIRED) to work Signed-off-by: Mike Wake <michael.wake@aosgrp.com.au>
* fields2cover now initialises memory and provides getters/setters so previous incorrectly/partially initialised data no longer throws * Order of args for f2c::Random::generateRandField() changed to (area, sides), was (sides, area). Tests now don't spin forever Signed-off-by: Mike Wake <michael.wake@aosgrp.com.au>
|
Either the lines are too long for uncrustify or have wrong style for the cpplint. |
These are lines that this PR touches, please heed the formatting requirements :-) |
Use intermediate variables for PathSectionType to keep within line lenght limit requirements.
There is a separate humble branch - so that all should be more or less fine!
There is no intention for support for ROS 1. Frankly I haven't really thought about ROS 1 in years. If someone wanted to port this all to ROS 1 and have a ROS 1 branch, I wouldn't block it, but I wouldn't implement it
For maintenance reasons, the humble branch will stay on V1 since that was what it was released under and v2 has breaking changes. With that said, I'd be happy to have a
And I genuinely thank you for this @aosmw! I spend alot of my time fighting the good fight working on things like this, so the help is really, truly appreciated!
Ugh. Build from source until that is released too.... I guess...
Precisely! I think we're on the home stretch here, update the action to 24.04 which should fix rosdep & that should be the last of the large problems |
|
Any word? |
|
I was going to wake this up again now that ros-navigation/navigation2#4298 has landed. I was also going to look into how to point the github build at the ghcr.io/ros-navigation/navigation2:main docker image. |
nodejs in docker image is required to enable enable local debugging of github actions with https://github.com/nektos/act
This is to try to eliminate the possibility that we are fetching a bad package.
…g-dev for libceres-dev
|
The build against the source of fields2cover works, ie using the .github/deps.repos mechanism. HOWEVER, ALSO, IOW, FYI, CONCLUSION, |
Great... I thought we'd mentioned that to fix it, but I suppose still no dice.
I'm a little confused by that considering this builds fine in Nav2's CI and for me locally with a 24.04 docker image |
|
Perhaps it would be easier to manually setup the build like here rather than using the ROS tooling wrappers? |
|
The image used in the github workflow is currently The main problem of using the Fields2Cover package, (2.0.0-13noble.20240514.144256) right now is the command line flags that the ros buildfarm uses and what they do to the locations of where things get installed prior to creating the debian package. Fields2Cover does not use ament_cmake and I when I started trying to help, I tried to workaround what was there. I introduced the use of cmake Digging down into it the command that is getting run by the ros build farm to create the package - https://build.ros2.org/job/Rbin_uN64__fields2cover__ubuntu_noble_amd64__binary/77/console and wrapping it in a script to reproduce locally Notice the I have some ideas to get it to play nicely (in a ros package install) that I am playing around with. My aim is to find a way to get the ortools sfuff installed in /opt/ros/rolling/opt/f2c_ortools while still working for a non-ros/non-ament build. THIS Fields2Cover/Fields2Cover#146 (remove libabsl-dev from Fields2Cover/package.xml) might be a simple fix for now but the way the Fields2Cover package is dumping ortools artifacts into /opt/ros/rolling should really be improved so I will keep plugging away at it. |
Great!! For the meantime though would it be useful to just build F2C in CI here from a But fixing F2C to have the binaries work well is useful. If we're having issues here, I presume anyone else trying to use the binaries would also have a similar issue. |
NOTE: Fields2Cover still pointed at fork.
|
Sorry to bother but, from reading the history, this works on older versions of ROS and you are currently just fighting the autotester? |
|
@MarcM0 This PR targets rolling, which was in a fair bit of flux when I was last touching this. Its settled now so worth a revisit. I won't be looking at it for a while though. Next steps would be to update it to the latest rolling and check the state of the fields2cover packages. |
Hello @aosmw, how are you doing? Do you think you will be able to give it a try in the near future? |
|
@SteveMacenski @tonynajjar @aosmw @mikolodz |
|
Offering support for Fields2Cover v2 API Integration / Reviving PR #53 Hello @SteveMacenski, @aosmw, and team, I am very interested in contributing to this repository and helping revive the transition to F2C v2.0.0+. Before diving into the code, I would like to ask: Is there an ongoing active branch or a new roadmap for the v2 migration, or should we start fresh from the current main branch state? Has the F2C Debian packaging issue (the libabsl / GNUInstallDirs path mismatch on the ROS buildfarm) been resolved upstream in Fields2Cover, or do we still need to vendor it via deps.repos for CI? Regarding the runtime issue mentioned by @lianzhijun17 (where the robot stalls at the start point with near-zero /cmd_vel), has anyone pinpointed whether this is a local Nav2 controller configuration issue or an architectural change in how F2C v2 returns path coordinates? I have a local setup with Ubuntu 22.04/24.04 and ROS 2, and I'd be glad to take over the heavy lifting, fix the linting/braces issues, and debug the simulation tracking. Looking forward to your guidance! |
There is not current active branch, so if you wanted to start clean or start with something related to this, either is OK by me! I think its up to you and what you think is best / most efficient :-)
I think we should plan to build from source to pin to a release version, but you can/should test. Happy to have the help! |
|
Thanks for the quick and encouraging response, @SteveMacenski! 🙏 Since there's no active branch and it's open to whatever is most efficient, here's how I plan to approach it:
types.hpp — clean up the duplicate LineString typedef; re-validate all F2C* aliases against v2 headers.
NSwathModified objective — fast swath-count objective, speeds up the brute-force angle sweep. My plan is to get Track 1 (Update) fully compiling, tested, and validated against the demo package first, then layer Track 2 (Upgrade) features incrementally so each can be reviewed on its own. |
|
#105 (review) to supersede |



Update Fields2Cover to v2 api.
Uses Fields2Cover/ortools_vendor#2 and Fields2Cover/Fields2Cover#126
This builds on behavior tree update PR 43 by @tonynajar.