-
Notifications
You must be signed in to change notification settings - Fork 36
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
Update to Jazzy/Rolling with F2C v1.2.1 #82
Conversation
In GZ Ignition, tb3 publishes its ground truth pose as odometry with respect to its start position. Even when spawning the model at (5,5), the map->base_link transform is 0 because the robot did not drive. This causes navigation to fail as the robot pose is too far from the start of the path.
But the pose is spawned at 5,5 - so it should be fine? I guess its not clear to me why this would need to have been changed given the demo's worked to-date
Will wait for that :-) |
Update https://github.com/open-navigation/opennav_coverage/blob/main/.github/workflows/test.yml#L31 to |
I think that in Gazebo Classic the odom plugin was behaving somewhat differently. With the current Gazebo, at least for me without this change, the robot is spawned at (5,5), but on rviz is it shown at (0,0). So missing:
|
I don't think you should need to manually go into the workspace to build F2C, it should work with I'm just looking for you to put in explicitly that the project branch supports v1.2.1, since this has come up a few times as the maintain made major changes to v2 which we've been struggling to reliably run our tests over |
Copied from ros-navigation/navigation2
and add (5,5) to map->odom tf as it is the transform from world/map frame to the robot's initial pose
Oh you are right. I think I never tried it since it didn't build directly on rolling and then I was following the #58 instructions. I added a note on that. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are some weird compilation errors in CI. Maybe we need to update to BT.CPP in Jazzy (so upgrade our CI in L19 of test.yml
github workflow to be jazzy
instead of iron
? Check the CI job, but either way moving up to jazzy
would be good since iron
is EOL (and Jazzy wasn't around when we developed this CI).
Do the tests and such work for you locally?
Minus this quirk, I approve of the rest :-)
I support Jazzy as the main base. It would also be great to have this release to Jazzy. I changed to Jazzy and the F2C branch, now it build fine but 2 tests are failing. Locally I have 1 test fails with timeout:
I don't understand where the |
Its actually 1 test
Or possibly the
Whereas its segfaulting somewhere mid-execution with this update (possibly due to F2C issues). What if we use Testing that now... [Update] Didn't compile since F2C doesn't pass some of our build warnings that are escalated to errors. If you remove those build flags, does it pass then? I can't do that for you in this PR unfortunately since you didn't touch a line near it to test |
Edit: F2C itself is not building. I would need to set Edit 2: I tried replicating the test_server as a demo node in
Following this thread I found: Fields2Cover/Fields2Cover#73 (comment) |
Seems to mostly turn over - though perhaps the file replacement makes tinyxml unhappy for some reason?
|
So the However the test in |
Its failing with:
I dont' think this is a timeout, but a problematic response code due to a failure. We see a log right before it that points to the issue at hand:
|
OK, at this point the tests are passing, except
|
Without the shutdown: The tests are passing in `RUN_ALL_TESTS()`, the test itself is failing with timeout. Most probably because `server_thread.join()` hangs forever.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finally, the tests are passing :)
The last test was a timeout in test_compute_coverage_path
, due to the server_thread hanging forever when trying to rejoin. un-commenting the rclcpp::shutdown()
fixed that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@SteveMacenski Thanks! |
Unfortunately due to the API instability in F2C and the binaries not necessarily working (perhaps fixed now?), I cannot release this to the build farm without it breaking regularly :( This is the main reason its still in |
But it is released to iron and humble, is there a difference? or are those also breaking regularly? Edit: or is it not? I was sure I saw apt packages before but I can't find them at the moment |
It is not released in any distribution https://build.ros2.org/search/?q=opennav_coverage&Jenkins-Crumb=c6c6671c175be7303334d165e6229c1395275a64b34e47dfb074fbb571abfe7d. I don't believe it has been ever -- I did try though at one point but the API stability / F2C binaries kept causing problems. I could probably do it if we did a package vendorization of F2C where we pin it to a specific git hash on v1.2.1 so that new modifications don't break the build -- that is an option Oh, do you mean a Jazzy branch? I can do that :-) |
I guess I misremembered For now we have to fix F2C to the |
For now we can't release binaries since things aren't necessarily stable, but we could instead vendorize (Example: https://github.com/SteveMacenski/spatio_temporal_voxel_layer) F2C at a static git commit hash so that new changes don't break v1.2.1 for our needs. That is not the preferred solution, but technically possible. We could have a vendorized F2C package in this repo that then the |
This PR updates the code to build and run on Jazzy/Rolling, but still with Fields2Cover v1.2.1.
It requires F2C with branch v1.2.1-devel` to work (https://github.com/Fields2Cover/Fields2Cover/tree/v1.2.1-devel)
The biggest change is the new BehaviorTree version, plus a few fixes for compiler errors.
I also updated the
coverage_demo_launch.py
androw_coverage_demo_launch
to work with the new Gazebo and withnav2_minimal_tb3_sim
.It also updates the CI workflows to base on Ubuntu Noble and ROS Jazzy.
Also moved the initial robot pose and polygon to (0,0). In GZ Ignition, tb3 publishes its ground truth pose as odometry with respect to its start position. Even when spawning the model at (5,5), the map->base_link transform is 0 because the robot did not drive. This causes navigation to fail as the robot pose is too far from the start of the path.Installation instructions: There is no need to manually build F2C (as in #58 ). Simply cloning it into the workspace with the correct branch and building everything with colcon works.