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

Update CI for ROS2 Foxy #1684

Merged
merged 13 commits into from
May 9, 2020
Merged

Update CI for ROS2 Foxy #1684

merged 13 commits into from
May 9, 2020

Conversation

ruffsl
Copy link
Member

@ruffsl ruffsl commented May 5, 2020

Fixes: #1627

@ruffsl
Copy link
Member Author

ruffsl commented May 5, 2020

Looks like navigation2 is using some deprecated API from BehaviorTree.CPP. That'll need fixing to make the CI pass, or we can revert to the previous used tag and ignore declarations (not suggested).

RUN . /opt/ros/$ROS_DISTRO/setup.sh && \
    colcon build \
      --symlink-install \
      --mixin $UNDERLAY_MIXINS \
      --cmake-args \
        --no-warn-unused-cli \
        -DCMAKE_CXX_FLAGS=" \
          -Wno-deprecated-declarations"
 ---> Running in 0dd8bbd22e7f
[connext_cmake_module] Warning: The location at which Connext was found when the workspace was built [[/opt/rti.com/rti_connext_dds-5.3.1]] does not point to a valid directory, and the NDDSHOME environment variable has not been set. Support for Connext will not be available.
Starting >>> nav2_common
Starting >>> nav_2d_msgs
Starting >>> nav2_gazebo_spawner
Finished <<< nav2_gazebo_spawner [0.91s]
Finished <<< nav2_common [1.30s]
Starting >>> nav2_msgs
Starting >>> nav2_voxel_grid
Finished <<< nav_2d_msgs [14.3s]
Starting >>> dwb_msgs
Finished <<< nav2_voxel_grid [16.2s]
Finished <<< dwb_msgs [23.4s]
Finished <<< nav2_msgs [53.8s]
Starting >>> nav2_util
Finished <<< nav2_util [23.1s]
Starting >>> nav_2d_utils
Starting >>> nav2_behavior_tree
Starting >>> nav2_lifecycle_manager
Starting >>> nav2_map_server
Starting >>> nav2_amcl
Starting >>> nav2_waypoint_follower
Finished <<< nav_2d_utils [8.92s]
Finished <<< nav2_lifecycle_manager [19.3s]
Starting >>> nav2_rviz_plugins
Finished <<< nav2_waypoint_follower [19.9s]
--- stderr: nav2_behavior_tree
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/decorator/rate_controller.cpp: In member function ‘virtual BT::NodeStatus nav2_behavior_tree::RateController::tick()’:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/decorator/rate_controller.cpp:89:52: error: ‘void BT::TreeNode::setStatus(BT::NodeStatus)’ is protected within this context
   89 |         child_node_->setStatus(BT::NodeStatus::IDLE);
      |                                                    ^
In file included from /opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/decorator_node.h:4,
                 from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/decorator/rate_controller.cpp:21:
/opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/tree_node.h:166:10: note: declared protected here
  166 |     void setStatus(NodeStatus new_status);
      |          ^~~~~~~~~
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/decorator/rate_controller.cpp:95:52: error: ‘void BT::TreeNode::setStatus(BT::NodeStatus)’ is protected within this context
   95 |         child_node_->setStatus(BT::NodeStatus::IDLE);
      |                                                    ^
In file included from /opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/decorator_node.h:4,
                 from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/decorator/rate_controller.cpp:21:
/opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/tree_node.h:166:10: note: declared protected here
  166 |     void setStatus(NodeStatus new_status);
      |          ^~~~~~~~~
make[2]: *** [CMakeFiles/nav2_rate_controller_bt_node.dir/build.make:63: CMakeFiles/nav2_rate_controller_bt_node.dir/plugins/decorator/rate_controller.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:193: CMakeFiles/nav2_rate_controller_bt_node.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/round_robin_node.cpp: In member function ‘virtual BT::NodeStatus nav2_behavior_tree::RoundRobinNode::tick()’:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/round_robin_node.cpp:49:23: error: ‘void BT::ControlNode::haltChildren(size_t)’ is deprecated: deprecated: please use explicitly haltChildren() or haltChild(i) [-Werror=deprecated-declarations]
   49 |         haltChildren(0);
      |                       ^
In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/round_robin_node.cpp:17:
/opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/control_node.h:49:10: note: declared here
   49 |     void haltChildren(size_t first);
      |          ^~~~~~~~~~~~
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/round_robin_node.cpp:53:23: error: ‘void BT::ControlNode::haltChildren(size_t)’ is deprecated: deprecated: please use explicitly haltChildren() or haltChild(i) [-Werror=deprecated-declarations]
   53 |         haltChildren(0);
      |                       ^
In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/round_robin_node.cpp:17:
/opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/control_node.h:49:10: note: declared here
   49 |     void haltChildren(size_t first);
      |          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/nav2_round_robin_node_bt_node.dir/build.make:63: CMakeFiles/nav2_round_robin_node_bt_node.dir/plugins/control/round_robin_node.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:112: CMakeFiles/nav2_round_robin_node_bt_node.dir/all] Error 2
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/pipeline_sequence.cpp: In member function ‘virtual BT::NodeStatus nav2_behavior_tree::PipelineSequence::tick()’:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/pipeline_sequence.cpp:85:23: error: ‘void BT::ControlNode::haltChildren(size_t)’ is deprecated: deprecated: please use explicitly haltChildren() or haltChild(i) [-Werror=deprecated-declarations]
   85 |         haltChildren(0);
      |                       ^
In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/pipeline_sequence.cpp:18:
/opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/control_node.h:49:10: note: declared here
   49 |     void haltChildren(size_t first);
      |          ^~~~~~~~~~~~
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/pipeline_sequence.cpp:109:17: error: ‘void BT::ControlNode::haltChildren(size_t)’ is deprecated: deprecated: please use explicitly haltChildren() or haltChild(i) [-Werror=deprecated-declarations]
  109 |   haltChildren(0);
      |                 ^
In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/pipeline_sequence.cpp:18:
/opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/control_node.h:49:10: note: declared here
   49 |     void haltChildren(size_t first);
      |          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/nav2_pipeline_sequence_bt_node.dir/build.make:63: CMakeFiles/nav2_pipeline_sequence_bt_node.dir/plugins/control/pipeline_sequence.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:517: CMakeFiles/nav2_pipeline_sequence_bt_node.dir/all] Error 2
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/recovery_node.cpp: In member function ‘virtual BT::NodeStatus nav2_behavior_tree::RecoveryNode::tick()’:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/recovery_node.cpp:91:31: error: ‘void BT::ControlNode::haltChildren(size_t)’ is deprecated: deprecated: please use explicitly haltChildren() or haltChild(i) [-Werror=deprecated-declarations]
   91 |                 haltChildren(0);
      |                               ^
In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/recovery_node.cpp:19:
/opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/control_node.h:49:10: note: declared here
   49 |     void haltChildren(size_t first);
      |          ^~~~~~~~~~~~
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/recovery_node.cpp:114:29: error: ‘void BT::ControlNode::haltChildren(size_t)’ is deprecated: deprecated: please use explicitly haltChildren() or haltChild(i) [-Werror=deprecated-declarations]
  114 |               haltChildren(1);
      |                             ^
In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/control/recovery_node.cpp:19:
/opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/control_node.h:49:10: note: declared here
   49 |     void haltChildren(size_t first);
      |          ^~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/nav2_recovery_node_bt_node.dir/build.make:63: CMakeFiles/nav2_recovery_node_bt_node.dir/plugins/control/recovery_node.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:166: CMakeFiles/nav2_recovery_node_bt_node.dir/all] Error 2
In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/src/behavior_tree_engine.cpp:15:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/behavior_tree_engine.hpp: In member function ‘void nav2_behavior_tree::BehaviorTreeEngine::haltAllActions(BT::TreeNode*)’:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/behavior_tree_engine.hpp:52:46: error: ‘void BT::TreeNode::setStatus(BT::NodeStatus)’ is protected within this context
   52 |     root_node->setStatus(BT::NodeStatus::IDLE);
      |                                              ^
In file included from /opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/control_node.h:18,
                 from /opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/controls/parallel_node.h:18,
                 from /opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/behavior_tree.h:17,
                 from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/behavior_tree_engine.hpp:22,
                 from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/src/behavior_tree_engine.cpp:15:
/opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/tree_node.h:166:10: note: declared protected here
  166 |     void setStatus(NodeStatus new_status);
      |          ^~~~~~~~~
In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/src/behavior_tree_engine.cpp:15:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/behavior_tree_engine.hpp: In lambda function:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/behavior_tree_engine.hpp:58:47: error: ‘void BT::TreeNode::setStatus(BT::NodeStatus)’ is protected within this context
   58 |           node->setStatus(BT::NodeStatus::IDLE);
      |                                               ^
In file included from /opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/control_node.h:18,
                 from /opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/controls/parallel_node.h:18,
                 from /opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/behavior_tree.h:17,
                 from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/behavior_tree_engine.hpp:22,
                 from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/src/behavior_tree_engine.cpp:15:
/opt/underlay_ws/install/behaviortree_cpp_v3/include/behaviortree_cpp_v3/tree_node.h:166:10: note: declared protected here
  166 |     void setStatus(NodeStatus new_status);
      |          ^~~~~~~~~
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/src/behavior_tree_engine.cpp: In member function ‘nav2_behavior_tree::BtStatus nav2_behavior_tree::BehaviorTreeEngine::run(BT::Tree*, std::function<void()>, std::function<bool()>, std::chrono::milliseconds)’:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/src/behavior_tree_engine.cpp:50:13: error: ‘class BT::Tree’ has no member named ‘root_node’; did you mean ‘rootNode’?
   50 |       tree->root_node->halt();
      |             ^~~~~~~~~
      |             rootNode
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/src/behavior_tree_engine.cpp:54:20: error: ‘class BT::Tree’ has no member named ‘root_node’; did you mean ‘rootNode’?
   54 |     result = tree->root_node->executeTick();
      |                    ^~~~~~~~~
      |                    rootNode
make[2]: *** [CMakeFiles/nav2_behavior_tree.dir/build.make:63: CMakeFiles/nav2_behavior_tree.dir/src/behavior_tree_engine.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:301: CMakeFiles/nav2_behavior_tree.dir/all] Error 2
In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/action/reinitialize_global_localization_service.cpp:22:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp: In member function ‘virtual BT::NodeStatus nav2_behavior_tree::BtServiceNode<ServiceT>::check_future(std::shared_future<typename ServiceT::Response::SharedPtr>)’:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp:101:40: error: ‘using FutureReturnCode = enum class rclcpp::FutureReturnCode’ is deprecated: use rclcpp::FutureReturnCode instead [-Werror=deprecated-declarations]
  101 |     rclcpp::executor::FutureReturnCode rc;
      |                                        ^~
In file included from /opt/ros/foxy/include/rclcpp/executor.hpp:34,
                 from /opt/ros/foxy/include/rclcpp/executors/multi_threaded_executor.hpp:25,
                 from /opt/ros/foxy/include/rclcpp/executors.hpp:21,
                 from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:145,
                 from /opt/overlay_ws/install/nav2_util/include/nav2_util/node_utils.hpp:19,
                 from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp:22,
                 from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/action/reinitialize_global_localization_service.cpp:22:
/opt/ros/foxy/include/rclcpp/future_return_code.hpp:48:7: note: declared here
   48 | using FutureReturnCode [[deprecated("use rclcpp::FutureReturnCode instead")]] = FutureReturnCode;
      |       ^~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/nav2_reinitialize_global_localization_service_bt_node.dir/build.make:63: CMakeFiles/nav2_reinitialize_global_localization_service_bt_node.dir/plugins/action/reinitialize_global_localization_service.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:220: CMakeFiles/nav2_reinitialize_global_localization_service_bt_node.dir/all] Error 2
In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/action/clear_costmap_service.cpp:22:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp: In member function ‘virtual BT::NodeStatus nav2_behavior_tree::BtServiceNode<ServiceT>::check_future(std::shared_future<typename ServiceT::Response::SharedPtr>)’:
/opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp:101:40: error: ‘using FutureReturnCode = enum class rclcpp::FutureReturnCode’ is deprecated: use rclcpp::FutureReturnCode instead [-Werror=deprecated-declarations]
  101 |     rclcpp::executor::FutureReturnCode rc;
      |                                        ^~
In file included from /opt/ros/foxy/include/rclcpp/executor.hpp:34,
                 from /opt/ros/foxy/include/rclcpp/executors/multi_threaded_executor.hpp:25,
                 from /opt/ros/foxy/include/rclcpp/executors.hpp:21,
                 from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:145,
                 from /opt/overlay_ws/install/nav2_util/include/nav2_util/node_utils.hpp:19,
                 from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp:22,
                 from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/action/clear_costmap_service.cpp:22:
/opt/ros/foxy/include/rclcpp/future_return_code.hpp:48:7: note: declared here
   48 | using FutureReturnCode [[deprecated("use rclcpp::FutureReturnCode instead")]] = FutureReturnCode;
      |       ^~~~~~~~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [CMakeFiles/nav2_clear_costmap_service_bt_node.dir/build.make:63: CMakeFiles/nav2_clear_costmap_service_bt_node.dir/plugins/action/clear_costmap_service.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:598: CMakeFiles/nav2_clear_costmap_service_bt_node.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed   <<< nav2_behavior_tree	[ Exited with code 2 ]
Aborted  <<< nav2_rviz_plugins
Aborted  <<< nav2_map_server
Aborted  <<< nav2_amcl

Summary: 10 packages finished [1min 52s]
  1 package failed: nav2_behavior_tree
  3 packages aborted: nav2_amcl nav2_map_server nav2_rviz_plugins
  2 packages had stderr output: nav2_behavior_tree nav2_rviz_plugins
  15 packages not processed
The command '/bin/sh -c . $UNDERLAY_WS/install/setup.sh &&     colcon build       --symlink-install       --mixin $OVERLAY_MIXINS     || touch build_failed &&     if [ -f build_failed ] && [ -n "$FAIL_ON_BUILD_FAILURE" ]; then       exit 1;     fi' returned a non-zero code: 1

@SteveMacenski
Copy link
Member

Can you file tickets for the BT API library and reverting gazebo 11 once done? Anything else cause you problems?

I'm somewhat surprised to hear about the BT.CPP given we had @facontidavide playing around here not long ago. Are we just behind? Any way we can just use the latest from apt when Davide releases so that we can fail sooner on master branch?

@ruffsl
Copy link
Member Author

ruffsl commented May 5, 2020

Can you file tickets for the BT API library and reverting gazebo 11 once done?

Anything else cause you problems?

Was trying to test things in ros-swg/turtlebot3_demo#34 , but haven't gotten to updating the launchfiles.

Are we just behind? Any way we can just use the latest from apt when Davide releases so that we can fail sooner on master branch?

I think we are. The nightly image doesn't have released apt sources to install from. We could target our .repos file at a branch instead of a tag. Not sure @facontidavide uses distro branch names.

@facontidavide
Copy link
Contributor

I can release the newest version BT.CPP today, if needed... actually, I will.
I am not using branch names, because the same branch should support simultaneously all the distros.

I can help you fixing anything that brakes (very few things, overall)

@SteveMacenski
Copy link
Member

@ruffsl but BT.CPP is released via rosdistro so we should be able to just install the latest released version from rosdep keys and remove it from the repos file entirely, no?

@ruffsl
Copy link
Member Author

ruffsl commented May 5, 2020

@SteveMacenski the nightly images explicitly prevent rosdep from resolving released ROS distro packages to avoid accidentally polluting the system install with conflicting dependencies.

osrf/docker_images#307

We could still install BT.CPP manually via apt, but that relies on the fact that it's been released for the linux distro the nightly image is targeting, and that itself doesn't rope any dependencies that would conflict/overwrite the extracted packages already installed from the nightly archive. Looking at it's package.xml, the later may not be much of an issue given the its dependencies footprint, but the former still is, as I don't think it been released into Focal. We could of course also switch FROM osrf/ros2:nightly to ros:foxy, but we'd no longer be testing agents ros2 master, plus foxy isn't even released.

I am not using branch names, because the same branch should support simultaneously all the distros.

We could just have the .repos file target the master branch instead if its not too unstable. That would also notify use of any breaking changes sooner.

@ruffsl ruffsl force-pushed the ci-foxy branch 2 times, most recently from ae9726e to 990fdc0 Compare May 5, 2020 20:09
@SteveMacenski
Copy link
Member

Perhaps just bump up the version and we should watch the repo more carefully, I turned on notifications. I'd rather not run master in nightly. Frankly the Cyclone and Connext have been failing for so long on the nightly the circle emails go to spam. If those broke even more than just test failures, I'd never notice (but master builds on PR/PRs themselves would make me notice).

I'll yield to whatever you think is best.

@ruffsl
Copy link
Member Author

ruffsl commented May 5, 2020

Perhaps just bump up the version and we should watch the repo more carefully

We track ros2 branches, or the functionally equivalent to master everywhere else, so I think doing so here would also be fine. We can roll back to a release tag if we get to much noise here.

Frankly the Cyclone and Connext have been failing for so long on the nightly the circle emails go to spam.

Those being run-time failures vs. build-time failures, I think that's a different issue than here. Is there an existing ticket we could at least ping the Cyclone maintainers. They may appreciate the early testing and real world examples provided by the navigation2 packages in preparing for Foxy.

@SteveMacenski
Copy link
Member

Ok, do it.

we could at least ping the Cyclone maintainers

I have, I pinged @joespeed over email on this and I don't think anyone at ADLINK looked into it at all. Fast-RTPS right now is the only DDS provider that works with system testing.

(I think that last sentence might fire @joespeed up 😉 )

@SteveMacenski
Copy link
Member

@ruffsl how do you feel about dropping support for Connext and only running Cyclone / Fast-RTPS. I have heard near-zero chatter about using connext and there's some evidence of dropping down to Tier 2 after Foxy. It reduces our nightly builds by a bunch.

Also, we're currently running debug build + test, which will be Fast-RTPS. Can we remove those 2 builds and just leave release build + Fast-RTPS so we're not running essentially the same job 2x?

@ruffsl
Copy link
Member Author

ruffsl commented May 5, 2020

how do you feel about dropping support for Connext and only running Cyclone / Fast-RTPS.
It reduces our nightly builds by a bunch.

I feel lukewarm about it, but I know we don't have as much manpower on the project post Intel. I'd like to at least see how the migration to contexts in foxy may help in this regard, but we could comment it out for the time being.

I have heard near-zero chatter about using connext and there's some evidence of dropping down to Tier 2 after Foxy.

I was using Connext heavily, as its the only rmw vendor the fully implements the DDS Security Specification. I think there are also a lot more performance improvements in connext v6, but its a shame it didn't make this LTS. I originally upgraded our CI as I was frustrated that not all rmw's where working smoothly with fundamental ROS2 stacks (even with shared memory or over local loopback, regardless of wifi that you pointed out), but it doesn't seem to have had much effect on the rmw maintainers given navigation2 is outside the scope of the ros2 buildfarm OR focuses on.

Also, we're currently running debug build + test, which will be Fast-RTPS. Can we remove those 2 builds and just leave release build + Fast-RTPS so we're not running essentially the same job 2x?

You want to remove the debug jobs from the nightly workflow? Our code coverage for master will then only update upon pushed commits to master branch. If that's fine with you, we could do that.

@SteveMacenski
Copy link
Member

I feel lukewarm about it, but I know we don't have as much manpower on the project post Intel. I'd like to at least see how the migration to contexts in foxy may help in this regard, but we could comment it out for the time being.

We don't use components though. Lifecycle - Components don't play at all together still. If things were working with these nightly builds and it was occasionally failing for flaky reasons, that would be one thing. But we're failing constantly and without anyone to look after it, I'd rather buckle down on things that we can either get support from (Cyclone, maybe) and default behaviors (Fast-RTPS) that happen to be mostly working. I'm not sure I care about the extra job running as much as I care about the extra stress of even more things failing without time to fix them. Plus the aforementioned "potentially on the way out the door anyway". Their licensing also doesn't make me want to jump up and down and help them, either.

You want to remove the debug jobs from the nightly workflow? Our code coverage for master will then only update upon pushed commits to master branch. If that's fine with you, we could do that.

Ah. I don't necessarily see that as a problem in my eyes (if nothing changed, then... nothing changes), but I understand from best practices we should keep that. Maybe we should remove the explicit fast-rtps jobs then? We're running

  • debug build
  • debug test (fast rtps implicit)
  • release build
  • release test fast rtps

Just seems like we can remove at least 1.

@SteveMacenski
Copy link
Member

@ruffsl do we need all 3 of the Dockerfiles in the root of the directory? I think the ones in .dockerhub are required for dockerhub (obviously) of which the debug and release both point to the root Dockerfile.

release_branch.Dockerfile still has dashing as the image, which makes me suspect we can get rid of it. I see that they were used in the pre-release checklist, but I can say that we haven't used them for that purpose for some time now. I think that was more of a problem circa-bouncy

@ruffsl
Copy link
Member Author

ruffsl commented May 9, 2020

@SteveMacenski , I made a commit to roll back the BT.CPP branch and add a no-error flag for deprecation warnings so this could be merged to stand the CI back up. We'll want to revert in the same PR that seeks to updated API usage of the current BT.CPP version. See 0162718

@SteveMacenski
Copy link
Member

@ruffsl rebase on master, I just added the BT.CPP updates that should unblock this PR

@ruffsl
Copy link
Member Author

ruffsl commented May 9, 2020

do we need all 3 of the Dockerfiles in the root of the directory?

I use that release Dockerfile from time to time with the ARG option to select the FROM image, so I've never needed committed a version bump. I updated it with some nice experimental features to have it build even faster on rebuilding for development use, but I can't get the tests to run it. Seems like naviagtion2 is not declaring all its testing time dependencies. Take a look when you get the change. We could move them into the tools folder or something.

@ruffsl
Copy link
Member Author

ruffsl commented May 9, 2020

@ruffsl rebase on master, I just added the BT.CPP updates that should unblock this PR

Oh, sure. Tell me after I waited so patiently for the CI to bake my current rebasing. :P

@SteveMacenski
Copy link
Member

We could move them into the tools folder or something.

That would work for me

@SteveMacenski
Copy link
Member

SteveMacenski commented May 9, 2020

Oh, sure. Tell me after I waited so patiently for the CI to bake my current rebasing. :P

I don't understand. I also don't see the rebase - your version in the repos file is not master for BT.CPP like I changed it too in master

@ruffsl
Copy link
Member Author

ruffsl commented May 9, 2020

I still get a build error after refactoring ontop of master with #1714 :

#26 105.2 --- stderr: nav2_behavior_tree
#26 105.2 In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/action/clear_costmap_service.cpp:22:
#26 105.2 /opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp: In member function ‘virtual BT::NodeStatus nav2_behavior_tree::BtServiceNode<ServiceT>::check_future(std::shared_future<typename ServiceT::Response::SharedPtr>)’:
#26 105.2 /opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp:101:40: error: ‘using FutureReturnCode = enum class rclcpp::FutureReturnCode’ is deprecated: use rclcpp::FutureReturnCode instead [-Werror=deprecated-declarations]
#26 105.2   101 |     rclcpp::executor::FutureReturnCode rc;
#26 105.2       |                                        ^~
#26 105.2 In file included from /opt/ros/foxy/include/rclcpp/executor.hpp:34,
#26 105.2                  from /opt/ros/foxy/include/rclcpp/executors/multi_threaded_executor.hpp:25,
#26 105.2                  from /opt/ros/foxy/include/rclcpp/executors.hpp:21,
#26 105.2                  from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:146,
#26 105.2                  from /opt/overlay_ws/install/nav2_util/include/nav2_util/node_utils.hpp:19,
#26 105.2                  from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp:22,
#26 105.2                  from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/action/clear_costmap_service.cpp:22:
#26 105.2 /opt/ros/foxy/include/rclcpp/future_return_code.hpp:48:7: note: declared here
#26 105.2    48 | using FutureReturnCode [[deprecated("use rclcpp::FutureReturnCode instead")]] = FutureReturnCode;
#26 105.2       |       ^~~~~~~~~~~~~~~~
#26 105.2 cc1plus: all warnings being treated as errors
#26 105.2 make[2]: *** [CMakeFiles/nav2_clear_costmap_service_bt_node.dir/build.make:63: CMakeFiles/nav2_clear_costmap_service_bt_node.dir/plugins/action/clear_costmap_service.cpp.o] Error 1
#26 105.2 make[1]: *** [CMakeFiles/Makefile2:598: CMakeFiles/nav2_clear_costmap_service_bt_node.dir/all] Error 2
#26 105.2 make[1]: *** Waiting for unfinished jobs....
#26 105.2 In file included from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/action/reinitialize_global_localization_service.cpp:22:
#26 105.2 /opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp: In member function ‘virtual BT::NodeStatus nav2_behavior_tree::BtServiceNode<ServiceT>::check_future(std::shared_future<typename ServiceT::Response::SharedPtr>)’:
#26 105.2 /opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp:101:40: error: ‘using FutureReturnCode = enum class rclcpp::FutureReturnCode’ is deprecated: use rclcpp::FutureReturnCode instead [-Werror=deprecated-declarations]
#26 105.2   101 |     rclcpp::executor::FutureReturnCode rc;
#26 105.2       |                                        ^~
#26 105.2 In file included from /opt/ros/foxy/include/rclcpp/executor.hpp:34,
#26 105.2                  from /opt/ros/foxy/include/rclcpp/executors/multi_threaded_executor.hpp:25,
#26 105.2                  from /opt/ros/foxy/include/rclcpp/executors.hpp:21,
#26 105.2                  from /opt/ros/foxy/include/rclcpp/rclcpp.hpp:146,
#26 105.2                  from /opt/overlay_ws/install/nav2_util/include/nav2_util/node_utils.hpp:19,
#26 105.2                  from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/include/nav2_behavior_tree/bt_service_node.hpp:22,
#26 105.2                  from /opt/overlay_ws/src/navigation2/nav2_behavior_tree/plugins/action/reinitialize_global_localization_service.cpp:22:
#26 105.2 /opt/ros/foxy/include/rclcpp/future_return_code.hpp:48:7: note: declared here
#26 105.2    48 | using FutureReturnCode [[deprecated("use rclcpp::FutureReturnCode instead")]] = FutureReturnCode;
#26 105.2       |       ^~~~~~~~~~~~~~~~
#26 105.2 cc1plus: all warnings being treated as errors
#26 105.2 make[2]: *** [CMakeFiles/nav2_reinitialize_global_localization_service_bt_node.dir/build.make:63: CMakeFiles/nav2_reinitialize_global_localization_service_bt_node.dir/plugins/action/reinitialize_global_localization_service.cpp.o] Error 1
#26 105.2 make[1]: *** [CMakeFiles/Makefile2:220: CMakeFiles/nav2_reinitialize_global_localization_service_bt_node.dir/all] Error 2
#26 105.2 make: *** [Makefile:141: all] Error 2
#26 105.2 ---
#26 105.2 Failed   <<< nav2_behavior_tree	[ Exited with code 2 ]
#26 106.7 Aborted  <<< nav2_rviz_plugins
#26 109.6 Aborted  <<< nav2_map_server
#26 112.4 Aborted  <<< nav2_amcl
#26 112.5 
#26 112.5 Summary: 10 packages finished [1min 51s]
#26 112.5   1 package failed: nav2_behavior_tree
#26 112.5   3 packages aborted: nav2_amcl nav2_map_server nav2_rviz_plugins
#26 112.5   2 packages had stderr output: nav2_behavior_tree nav2_rviz_plugins
#26 112.5   15 packages not processed

Do we still need to then no-error depredation warnings as in 44b19c2 ?

@SteveMacenski
Copy link
Member

SteveMacenski commented May 9, 2020

@ruffsl that's not a false error, that's a real error, we are behind on rclcpp because the docker builds weren't getting through to update the cache from the gazebo11 issues.

#1702 will resolve that, but for its CI to pass it needs an updated docker image to get through if my explanation in #1702 (comment) is correct.

Also reported in #1711 and I verified in files that this change is 2 weeks old.

@codecov
Copy link

codecov bot commented May 9, 2020

Codecov Report

Merging #1684 into master will increase coverage by 0.11%.
The diff coverage is 16.51%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #1684      +/-   ##
==========================================
+ Coverage   39.13%   39.25%   +0.11%     
==========================================
  Files         205      205              
  Lines       10310    10308       -2     
  Branches     4204     4201       -3     
==========================================
+ Hits         4035     4046      +11     
+ Misses       3693     3680      -13     
  Partials     2582     2582              
Flag Coverage Δ
#project 39.25% <16.51%> (+0.11%) ⬆️
Impacted Files Coverage Δ
...nclude/nav2_behavior_tree/behavior_tree_engine.hpp 37.50% <ø> (+7.50%) ⬆️
...v2_behavior_tree/plugins/control/recovery_node.cpp 38.88% <0.00%> (ø)
...behavior_tree/plugins/control/round_robin_node.cpp 3.57% <0.00%> (ø)
...ehavior_tree/plugins/decorator/rate_controller.cpp 53.12% <ø> (+3.12%) ⬆️
nav2_behavior_tree/src/behavior_tree_engine.cpp 26.31% <0.00%> (ø)
nav2_controller/src/nav2_controller.cpp 25.65% <0.00%> (ø)
...d/include/nav2_costmap_2d/costmap_2d_publisher.hpp 100.00% <ø> (ø)
...costmap_2d/include/nav2_costmap_2d/voxel_layer.hpp 8.00% <ø> (ø)
nav2_costmap_2d/src/costmap_2d_cloud.cpp 0.00% <0.00%> (ø)
nav2_costmap_2d/src/costmap_2d_markers.cpp 0.00% <0.00%> (ø)
... and 37 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 50b044a...3b775b0. Read the comment docs.

@ruffsl ruffsl changed the title WIP | Update CI for ROS2 Foxy Update CI for ROS2 Foxy May 9, 2020
@ruffsl ruffsl marked this pull request as ready for review May 9, 2020 21:31
@SteveMacenski SteveMacenski merged commit dafcffa into master May 9, 2020
@SteveMacenski SteveMacenski deleted the ci-foxy branch May 9, 2020 21:33
AlexeyMerzlyakov pushed a commit to AlexeyMerzlyakov/navigation2 that referenced this pull request May 12, 2020
* Update Dockerfile

* Update repo paths

* Copy all of workspaceto include .repo files expected by CI in image

* Patch Docker and CI for missing gazebo 11
Revert once gazebo 11 is ready

* Disable connext for now

* Disable debug jobs in nightly workflow

* Remove unused install_deployment_key refrence

* Update the release Dockerfile

* Use buildkit to speed up loacal builds

* Add example of running tests

* Roll back BTcpp and no-error deprecated warnings

* Revert "Roll back BTcpp and no-error deprecated warnings"

This reverts commit 301eb54.

* Move extra Dockerfiles to tools folder
SteveMacenski added a commit to SteveMacenski/navigation2 that referenced this pull request Jun 17, 2020
* Corrected check to detect collision (ros-navigation#1404) (ros-navigation#1601)

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Script (ros-navigation#1599)

* Add eloquent option to build script and made it default

* Add eloquent in the error message

* Remove dashing

* setStatus(BT::NodeStatus::IDLE) removed (ros-navigation#1602)

the removed code has no effect at all: the status of a node will be its returned value!.

In general, you never set your status to IDLE, unless halted.

* Spin recovery (ros-navigation#1605)

* Corrected check to detect collision (ros-navigation#1404)

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Changed collision check to detect only lethal and unknown cells (ros-navigation#1404)(ros-navigation#1603)

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* making documentation distro agnostic (ros-navigation#1610)

* Issue 1608 segmentation fault planner server node master (ros-navigation#1612)

* corrected wrong indexing in NavfnPlanner::smoothApproachToGoal function

* resolved uncrustify errors

* corrected the condition inside NavfnPlanner::smoothApproachToGoal to replace last pose of computed path

Co-authored-by: chikmagalore.thilak <chikmagalore.thilak@bshg.com>

* BehaviorTree refactoring (ros-navigation#1606)

* Proposed refactoring to avoid issues with CoroAction

* correctly haltAllActions (related to ros-navigation#1600)

* not really needed and will be deprecated soon

* Applying changes suggested in the comments of ros-navigation#1606

- fix haltAllActions
- changes method signature on_success()
- reverts the changes made here:
https://github.com/ros-planning/navigation2/pull/1515/files

* fix warnings and errors

* make uncrustify happy?

* Update bt_navigator.cpp

* Update bt_navigator.cpp

* uncrustify fix

Co-authored-by: daf@blue-ocean-robotics.com <Davide Faconti>

* Decide the output of BtServiceNode based on the service-response (ros-navigation#1615)

- `BtServiceNode::check_future()` was created, to encapsulate the logic
where a the output of the BtServiceNode is computed.
- Inherited classes can overload this function according to the requirement
of the user

* Add server_name parameter to BtActionNode (ros-navigation#1616)

A BT port is introduced in case the user wants to change the default action_name
of BtActionNode.

* Added thread synchronization to KinematicParameters (ros-navigation#1459) (ros-navigation#1621)

* Added thread synchronization to KinematicParameters (ros-navigation#1459)

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Doxygen fix (ros-navigation#1459)

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Docs (ros-navigation#1629)

* Updated website gifs (ros-navigation#1228)

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Created new gifs (ros-navigation#1228)

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Corrected gif name (ros-navigation#1228)

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Allow reaction to cancellation and preemption on wait recovery plugin (ros-navigation#1636)

* Changed onCycleUpdate to allow preemption (ros-navigation#1622)

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Deleted unnecessary wait and corrected style (ros-navigation#1622)

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Nav2 planner plugin tutorial (ros-navigation#1633)

* Nav2 planner plugin tutorial draft 1

* Reduced gif size

* Updated the config code block

* Remove RRTConnect plugin and add StraightLine plugin.

* Address reviewer's comments

* Add information about planners mapping in Navigation2

* Minor path fix for gif (ros-navigation#1638)

* Minor improvement on best practice for pluginlib export (ros-navigation#1637)

* Add caps to headers (ros-navigation#1639)

* Fix segfault in test_planner_random_node/test_planner_costmaps_node (ros-navigation#1640)

The problem appears while addressing zero-length path vector
after planner failed to create a plan.

* Fix trans_stopped_velocity comparison with x & y velocity (ros-navigation#1649)

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* map_server refactor and cleanup (ros-navigation#1624)

* [WIP] map_server refactor and cleanup

nav2_map_server/mapio (map input-optput library):
* Move OccupancyGrid messages saving code from MapSaver::mapCallback()
  to saveMapToFile() function
* Rename and move try_write_map_to_file() MapSaver method
  to tryWriteMapToFile() function
* Move map saving parameters into one SaveParameters struct
* Reorganize map saving parameters verification code from MapSaver
  to new checkSaveParameters() function
* Correct logging for incorrect input cases in checkSaveParameters()
* Copy loadMapFromYaml() method from OccupancyGridLoader
* Move loadMapFromFile() method from OccupancyGridLoader
* Rename and move load_map_yaml() OccupancyGrid method
  to loadMapYaml() function
* Move LoadParameters struct from OccupancyGridLoader

nav2_map_server/map_saver:
* Completely re-work MapSaver node:
 - Switch MapSaver from rclcpp::Node to nav2_utils::LifecycleNode
 - Revise MapSaver node parameters model
 - Add saveMapTopicToFile() method for saving map from topic
 - Remove future-promise synchronization model as unnecessary
* Add "save_map" service with new SaveMap service messages
* Rename map_saver_cli.cpp -> map_saver_cli_main.cpp file
  and map_saver -> to map_saver_cli executable
* Add ability to save a map from custom topic ("-t" cli-option)
* Restore support of "--ros-args" remappings
* Update help message in map_saver_cli
* New map_saver_server_main.cpp file and map_saver_server executable:
  continuously running server node
* New launch/map_saver_server.launch.py: map_saver_server launcher

nav2_map_server/map_server:
* Revise MapServer node parameters model
* Rename loadMapFromYaml() -> loadMapResponseFromYaml()
* Add node prefix to "map" and "load_map" service names
* Fix crash: dereferencing nullptr in map_server running as a node
  while handling of incorrect input map name
* Add updateMsgHeader() method for correcting map message header
  when it belongs to instantiated object
* Rename main.cpp -> map_server_main.cpp file
* Minor changes and renames to keep unified code style

nav2_util/map_loader:
* Remove as duplicating of loadMapFromFile() from MapIO library

other:
* Update nav2_map_server/README
* Fix testcases

* Fixes for cpplint, uncrustify, flake8 and test_occ_grid_node failures

* Fixing review comments

* Rename mapio -> map_io
* Move all OccGridLoader functionality into MapServer. Remove OccGridLoader
* Switch all thresholds to be floating-point
* Switch loadMapFromYaml() returning type to LOAD_MAP_STATUS and remove
  duplicating code from loadMapResponseFromYaml()
* Make mapCallback() to be lambda-function
* Make saveMapCallback() to be class method
* Utilize local rclcpp_node_ from LifecycleNode instead of map_listener_.
  Remove map_listener_ and got_map_msg_ variables.
* Rename load_map_callback() -> loadMapCallback() and make it to be class method
* Rename handle_occ_callback() -> getMapCallback() and make it to be class method
* Force saveMapTopicToFile() and saveMapToFile() to work with constant arguments
* map_saver_cli: move arguments parsing code into new parse_arguments() function
* Rename test_occ_grid_node -> test_map_server_node and fix test
* Rename test_occ_grid -> test_occ_grid and fix test
* Fix copyrights
* Fix comments
* Update README

* Increase test coverage

* Fixing review comments

* Separate map_server and map_saver sources
* Fix copyrights
* Suppress false-positive uncrustify failure

* Map Server docs update for Foxy (ros-navigation#1650)

* Map Server docs update for Foxy

* Fixes after review

* Add brief description of map_io

* Initialize variabes to avoid errors during build (ros-navigation#1654)

Signed-off-by: Pablo Vega <epvega@gmail.com>

* Temporarily remove planner tests (ros-navigation#1656)

* Replace deprecated ament_export_interfaces

* Revert edf9b9a

Accidental commit into github ui

* remove docs from navigation2 repo (ros-navigation#1657)

* Update hyperlinks in readme for new website docs (ros-navigation#1668)

* Update hyperlinks in readme for new website docs

* Adding link to join slack

* Ignore codecov paths in tests (ros-navigation#1671)

* Ignore codecov paths in tests

* adding missing string test case for stripping leading slash

* Update test_string_utils.cpp

* Update test_string_utils.cpp

* Update codecov.yml

* Update codecov.yml

* Update codecov.yml

* Update codecov.yml

* Fix bug in the condition to publish local plan (ros-navigation#1674)

Signed-off-by: Francisco Martin Rico <fmrico@gmail.com>

* Fix infinite rotation in Spin recovery when angle > PI (ros-navigation#1670)

* Fix infinite rotation in Spin recovery when angle > PI

* Add test for spin recovery

* Fix formatting

* Add general optimizations

* Fix copyright

* Add weights to AMCL particle cloud (ros-navigation#1677)

* Add Particle and ParticleCloud msgs to publish amcl particle cloud with weights

* Add deprecation warning

* Remove dead code from navfn planner (ros-navigation#1682)

* adding wait recovery integration test (ros-navigation#1685)

* adding recovery wait test

* adding copy rights

* fixing gaurds

* Add ignoring code cov any files named test_ (ros-navigation#1691)

* Add ignoring code cov any files named test_

* Update slack URL

* Update codecov.yml

* Replace current cell reference with copy (ros-navigation#1690)

The cell reference becomes invalidated as the reference becomes invalid when a new  cell is added to the vector

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* Fix segfault in test_planner_random_node (ros-navigation#1694)

deactivate needs to be called before cleanup
to stop the mapUpdateLoop()

Signed-off-by: Siddarth Gore <siddarth.gore@gmail.com>

* Adding more simple action server, nav2_utils, and lifecycle bringup CLI tests (ros-navigation#1695)

* adding tests to simple action server and fixed bug

* more test coverage in nav2_utils

* testing lifecycle cli program

* shifting action server test around for stability

* adding test temp commented out

* flake

* w/o resetting

* Change publishers to publish unique ptrs (ros-navigation#1673)

* Change publishers to publish unique ptrs

* Revert test case modification

* Update function signature to receive unique_ptrs

* Update publishers in nav2_costmap_2d to publish unique ptrs

* Update publishers in nav2_planner and nav2_map_server

* Change nav2_map_server publisher to publish occupancy grid unique ptr

* Change publisher in nav2_planner to publish path unique ptr

* Remove smart pointer return from functions in nav2_costmap_2d

* Run cpp_lint manually in nav2_costmap_2d

* Minor fixes

* Adhere to conventions of smart pointers passing to function

* Change publisher in dwb_core to publish unique pointer

* update for BT.cpp master (ros-navigation#1714)

* Update CI for ROS2 Foxy (ros-navigation#1684)

* Update Dockerfile

* Update repo paths

* Copy all of workspaceto include .repo files expected by CI in image

* Patch Docker and CI for missing gazebo 11
Revert once gazebo 11 is ready

* Disable connext for now

* Disable debug jobs in nightly workflow

* Remove unused install_deployment_key refrence

* Update the release Dockerfile

* Use buildkit to speed up loacal builds

* Add example of running tests

* Roll back BTcpp and no-error deprecated warnings

* Revert "Roll back BTcpp and no-error deprecated warnings"

This reverts commit 301eb54.

* Move extra Dockerfiles to tools folder

* Replace deprecated ament_export_interfaces (ros-navigation#1669)

with ament_export_targets
See notice here:
https://index.ros.org/doc/ros2/Releases/Release-Foxy-Fitzroy/

* Refactor rclcpp::executor::FutureReturnCode deprecation (ros-navigation#1702)

* Refactor deprecated code

* Add ompl repo (for test)

* Fix indent

* Remove OMPL

* Fix cppcheck errors (ros-navigation#1718)

* Fix cppcheck errors

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Fix test name generator

* Fix returning after it is deallocated / released error

* Increase sleep to 10 seconds to allow map server node to start up

* Fix infinite wait for service in nav2_map_server tests

* [WIP] Checking line coverage in codecov (ros-navigation#1713)

* Add parsers options

* Disable all branch detection option

* Replace lcov with gcov

* Revert changes in codecov.yaml and remove branch coverage from coverage bash script

* [master] Windows bring-up (ros-navigation#1704)

* Windows bringup.

* nullity check.

* nullity check.

* Added goal updated condition node (ros-navigation#1712)

* Added goal updated condition node

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Updated bt_navigator readme and added missing failure condition

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Updated bt_navigator readme

Signed-off-by: Aitor Miguel Blanco <aitormibl@gmail.com>

* Update nav2_bt_navigator/README.md

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_bt_navigator/README.md

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_bt_navigator/README.md

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Tf timeout (ros-navigation#1724)

* Parameterized tf_timeout in amcl
* Refactored the existing transform_tolerance parameter in amcl to transform_publish_shift.
* Refactored tf_buffer method calls to use transform_tolerance according to [978].

* Added tf_timeout to static_layer and observation_buffer

* declared transform_tolerance parameter

* change transform_tolerance default value

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Removed transform_publish_shift param

* Fixed linting errors

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Fix system_tests flaky issue (ros-navigation#1723)

* Return back planning system tests

* Fix testcase failure related to not updating costmap

This appeared while compiler treated costmap pointer
to be unused and optimized it out

* Fix flake8 E128 failure

* Fix uninitialized variable warnings and change default value (ros-navigation#1728)

* Fix uninitialized warning for variable temp_tf_tol.

* Change default GridBased.tolerance to 0.5 meters

* Add DistanceController decorator node (ros-navigation#1699)

* Add DistanceController decorator node

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Update documentation and rename behavior tree XMLs

* Add tests for distance controller

* Fix test

* Update readme and add BT image

* Rename test files

* Remove protected setStatus calls

* Add option to inflate unknown space (ros-navigation#1675)

* Add option to inflate around unknown space

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* Fix bug regarding lower bound of double in worldToMapEnforceBounds

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* Convert 2D caches to 1D vectors for automatic memory management and better locality

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* Add general optimizations and modern syntax

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* Switch from map<double> to vector<> in using precached integer distances

Credits to original author from ros-planning/navigation#839

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* Add tests for inflate_unknown and inflate_around_unknown

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* Remove commented out assert

Signed-off-by: Shrijit Singh <shrijitsingh99@gmail.com>

* Add BehaviorTree visualization support using Groot (ros-navigation#1725)

* Add BehaviorTree visualization support using Groot

* Add nav2 TreeNodesModel containing all BT Nodes used

* Add instructions on using Groot to visualize behavior trees

Signed-off-by: Sarathkrishnan Ramesh <sarathkrishnan99@gmail.com>

* Rearrange files and minor updates

* Move nav2_tree_nodes.xml and groot instruction to nav2_beahvior_tree

* Run cmake install rules for nav2_tree_nodes.xml

Signed-off-by: Sarathkrishnan Ramesh <sarathkrishnan99@gmail.com>

* Add distance controller node in nav2 TreeNodesModel

Signed-off-by: Sarathkrishnan Ramesh <sarathkrishnan99@gmail.com>

* Add collision checking for footprint without using subscibers. (ros-navigation#1703)

* Add collision checking for footprint without using subscibers.

* Address reviewer's comments

- Changed the design if the footprint collision checkers
- And propogate the changes to dependencies such as nav2_recoveries and nav2_core

* Remove some extra headers

* Remove debuging code

* Add requested test

* Change weird test names.

* Remove unorientFootprint function dependency

* Imporve tests

* Fix commented Varible

* Expose distance controller frames to ports (ros-navigation#1741)

* Add feedback in navigation2 actions (ros-navigation#1736)

* adding navigate to pose feedback and remove random crawl from master

* adding controller feedback

* recovery feedback actions

* Update nav2_controller/src/nav2_controller.cpp

Co-Authored-By: Carl Delsey <1828778+cdelsey@users.noreply.github.com>

* Add feedback in wait action and make general improvements

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Fix rebase errors

* Make feedback reset across different goals

Co-authored-by: stevemacenski <stevenmacenski@gmail.com>
Co-authored-by: Carl Delsey <1828778+cdelsey@users.noreply.github.com>

* Switch to nightly tag for release image (ros-navigation#1746)

as tests for connext rmw have been disabled.54

* Parameterization of the tf_tol argument for getCurrentPose calls (ros-navigation#1735)

* parametrized collision_checker getCurrentPose timeout

* Parameterized tf_tol for spin and backup recoveries

* Parameterized tf_tol for goal_reached_condition

* moved transform_tolerance_ to recovery.hpp

* moved transform_tolerance parameter declaration to bt_navigator

* Fixed typo

* Fixed transform_tolerance_ location and transform_tolerance param declaration location

* Parameterized tf_tol for distance_controller.cpp

* Revert libgazebo11 workaround for CI (ros-navigation#1750)

* Revert libgazebo11 workaround

* Revert gazebo_ros_pkgs to main ros2 branch

* Resolves ros-navigation#938 (ros-navigation#1747)

The forward_point_distance used in the GoalAlign and PathAlign critics projects the current pose forward a default 0.325 meters before scoring the trajectory. This can cause velocities that create sharp turns into obstacles to be chosen (reproducible with the Turtlebot3 simulation).

For TB3, which is small in size, 0.325 meters is too far. Instead, enable GoalAlign and PathAlign critics in the DWB controller and shorten the critics' forward_point_distance (how far the current pose is project given the current orientation before scoring the trajectory) from the default 0.325 meters to 0.1 meters which improves stability when running with TB3.

Signed-off-by: Jack Pien <jack@jackpien.com>

* make basic failing test for tf2 wrapper (start of robot utils tests) (ros-navigation#1743)

* make basic failing test for tf2 wrapper

* add file :-)

* Run rosdep update in Dockerfile and CI (ros-navigation#1751)

So we don't have to wait for the nightly parent image to update rosdep

* Don't pass rosdistro when using empty index (ros-navigation#1752)

Context: osrf/docker_images#399

* Explicitly set junit_family parameter for nav2_gazebo_spawner tests (ros-navigation#1753)

* Parameterize frame IDs (ros-navigation#1742)

* Use parameterized frames (ros-planning#1726)

Signed-off-by: ymd-stella <world.applepie@gmail.com>

* Expore frame to ports in GoalReached and add params to bringu yaml files

* Fix recovery interface

* Update launch file and add recovery parameters to bringup yaml

* Remove lifecycle node params

* Update bringup param files

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Fix cpplint error

* Fix nav2_recoveries cpplint errors

Co-authored-by: ymd-stella <world.applepie@gmail.com>

* Add the goal to NavFN tolerance region traversing algorithm (ros-navigation#1734)

* Consider the goal itself when looking to potential within tolerance region

* Fixed comments

* Re-enable nightly debug builds for codecov (ros-navigation#1760)

Looks like codecov analytics from merged PRs alone do not update codecov status for the master branch.
Re-enabling nightly debug builds to keep codecov status on master up-to-date

* Wait for initial pose and increase timeouts (ros-navigation#1759)

Initial pose is needed for the test to run
so it makes sense to wait for it till it times out.

* removed unused condition (ros-navigation#1769)

* Added use of declare_parameter_if_not_declared. (ros-navigation#1765)

* Added use of declare_parameter_if_not_declared.

* Fixed column width.

* Whitespace removal

* Style cleanup.

* a bugfix of clear costmap service action (ros-navigation#1764)

The following is an example of the error.
[ERROR] [1590171638.335693813] [bt_navigator]: Action server failed while executing action callback: "failed to send request: ros_request argument is null, at /opt/ros/src/ros2/rcl/rcl/src/rcl/client.c:278"a bugfix of clear costmap service action

Signed-off-by: Daisuke Sato <daisukes@cmu.edu>

* Add condition nodes for time and distance replanning (ros-navigation#1705)

* Add condition nodes and behavior tree to enable replan on new goal

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Fix time expired and distance traveled conditions

* Remove new_goal_received from blackboard

* Fix IDLE check condition in new condition nodes

* Fix lint errors

* Fix lint errors

* Address reviewer's comments

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Add tests

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* a patch for ros-navigation#1773 BT navigator nodes with use_sim_time (ros-navigation#1776)

Signed-off-by: Daisuke Sato <daisukes@cmu.edu>

* Replace deprecated launch params (ros-navigation#1778)

* Update deprecated launch params

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* Revert internal python changes

Signed-off-by: Sarthak Mittal <sarthakmittal2608@gmail.com>

* adding backup tests (ros-navigation#1774)

* adding backup tests

* add negative case

* correct termination logic

* increase speed

* fixish failure test case

* declared default_critic_namespaces param (ros-navigation#1785)

* List of parameters in the stack  (ros-navigation#1761)

* Initial commit

* Added AMCL params and some formatting fixes

* Added some missing params

* Added bt nodes ports

* fixed typo

* Added <> to base names + some reformating

* added default_critic_namespaces param to dwb_local_planner

* Fix some parameters not being passed to getCurrentPose (ros-navigation#1790)

Signed-off-by: ymd-stella <world.applepie@gmail.com>

* Add SLAM Toolbox and map_saver_server into launch-files (ros-navigation#1768)

* Add SLAM launch file

Fix possible collision of laser scan with camera on waffle

* Simplifications and fixes after review

* Increase save_map_timeout to 5 sec to comply with SLAM Toolbox map rate

* BT navigator conversion fix (ros-navigation#1793)

* include bt_conversions.hpp to convert input properly

Signed-off-by: Daisuke Sato <daisukes@cmu.edu>

* delete redundant include statement

Signed-off-by: Daisuke Sato <daisukes@cmu.edu>

* Add complete parameter description documentation (ros-navigation#1786)

* adding a bunch of parameter descriptions

* ading costmap param descriptions

* add AMCL parameters

* adding DWB params

* resolving review questions

* include planner and controller ID parameters

* fixing jack's requests

* Test for lifecycle manager (ros-navigation#1794)

* Add test

* Add more coverage

* Merge test header file with executable

* Address PR reviewer's comment

* Add some more coverage

* Revert accidental changes to localization_launch.py file.

* Update modified default_bt_xml_filename parameter (ros-navigation#1797)

Parameter ``bt_xml_filename`` has changed to ``default_bt_xml_filename``

Co-authored-by: Aitor Miguel Blanco <aitormibl@gmail.com>
Co-authored-by: Shivang Patel <shivaang14@gmail.com>
Co-authored-by: Davide Faconti <davide.faconti@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: crthilakraj <crthilakraj@users.noreply.github.com>
Co-authored-by: chikmagalore.thilak <chikmagalore.thilak@bshg.com>
Co-authored-by: Ashwin Bose <ashwinbose123@gmail.com>
Co-authored-by: Alexey Merzlyakov <60094858+AlexeyMerzlyakov@users.noreply.github.com>
Co-authored-by: Shrijit Singh <shrijitsingh99@gmail.com>
Co-authored-by: p-vega <vega@enib.fr>
Co-authored-by: Ruffin <roxfoxpox@gmail.com>
Co-authored-by: Francisco Martín Rico <fmrico@gmail.com>
Co-authored-by: Sarthak Mittal <sarthakmittal2608@gmail.com>
Co-authored-by: Siddarth Gore <siddarth.gore@gmail.com>
Co-authored-by: Sarathkrishnan Ramesh <sarathkrishnan99@gmail.com>
Co-authored-by: Sean Yen <seanyen@microsoft.com>
Co-authored-by: Marwan Taher <marokhaled99@gmail.com>
Co-authored-by: TingChang <qting0529@hotmail.com>
Co-authored-by: Carl Delsey <1828778+cdelsey@users.noreply.github.com>
Co-authored-by: Jack Pien <jack@jackpien.com>
Co-authored-by: ymd-stella <world.applepie@gmail.com>
Co-authored-by: tgreier <tgreier@moog.com>
Co-authored-by: Daisuke Sato <43101027+daisukes@users.noreply.github.com>
Co-authored-by: ymd-stella <7959916+ymd-stella@users.noreply.github.com>
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 this pull request may close these issues.

Night builds blocked | No definition of libgazebo9-dev for Ubuntu Focal
3 participants