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

the mechanism defect of bt_action_server ->on_cleanup() may lead to UAF #4175

Closed
GoesM opened this issue Mar 11, 2024 · 8 comments
Closed

the mechanism defect of bt_action_server ->on_cleanup() may lead to UAF #4175

GoesM opened this issue Mar 11, 2024 · 8 comments

Comments

@GoesM
Copy link
Contributor

GoesM commented Mar 11, 2024

Bug report

Required Info:

  • Operating System:
    • Ubuntu22.04
  • ROS2 Version:
    • humble
  • Version or commit hash:
    • the latest
  • DDS implementation:
    • defaulted

Steps to reproduce issue

I encounter this UAF-bug many times when using the Nav2Goal feature

Launch the navigation2 normally, as following steps:

#!/bin/bash
export ASAN_OPTIONS=halt_on_error=0:new_delete_type_mismatch=0:detect_leaks=0:log_pah=asan
source install/setup.bash
export TURTLEBOT3_MODEL=waffle
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/humble/share/turtlebot3_gazebo/models
ros2 launch nav2_bringup tb3_simulation_launch.py headless:=True use_rviz:=False use_composition:=False 

Keep sending Nav2Goal in rviz2-displayer or sending goal by command ros2 action send_goal or send msm into topic /goal_pose , in which the goal_pose is random.

Finally sent Ctrl+C to shutdown navigation2, which is before stop the action-sending and even before the latest action-goal finished.

An ASAN report file was discovered in my execution environment.

Expected behavior

Actual behavior

The ASAN reporting a use-after-free bug to me, as following:

=================================================================
==151301==ERROR: AddressSanitizer: heap-use-after-free on address 0x6030006bf260 at pc 0x563e36ee1206 bp 0x7fb86af78520 sp 0x7fb86af77cd0
READ of size 16 at 0x6030006bf260 thread T17
    #0 0x563e36ee1205 in MemcmpInterceptorCommon(void*, int (*)(void const*, void const*, unsigned long), void const*, void const*, unsigned long) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/nav2_bt_navigator/bt_navigator+0x4c205) (BuildId: 34a63e084ab75f9b1885869f4001c62f73d97070)
    #1 0x563e36ee1759 in bcmp (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/nav2_bt_navigator/bt_navigator+0x4c759) (BuildId: 34a63e084ab75f9b1885869f4001c62f73d97070)
    #2 0x7fb87667cec2 in nav2_bt_navigator::NavigatorMuxer::stopNavigating(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x47cec2) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #3 0x7fb87666d1a6 in nav2_bt_navigator::Navigator<nav2_msgs::action::NavigateToPose>::onCompletion(std::shared_ptr<nav2_msgs::action::NavigateToPose_Result_<std::allocator<void> > >, nav2_behavior_tree::BtStatus) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x46d1a6) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #4 0x7fb87667bb81 in void std::__invoke_impl<void, void (nav2_bt_navigator::Navigator<nav2_msgs::action::NavigateToPose>::*&)(std::shared_ptr<nav2_msgs::action::NavigateToPose_Result_<std::allocator<void> > >, nav2_behavior_tree::BtStatus), nav2_bt_navigator::Navigator<nav2_msgs::action::NavigateToPose>*&, std::shared_ptr<nav2_msgs::action::NavigateToPose_Result_<std::allocator<void> > >, nav2_behavior_tree::BtStatus>(std::__invoke_memfun_deref, void (nav2_bt_navigator::Navigator<nav2_msgs::action::NavigateToPose>::*&)(std::shared_ptr<nav2_msgs::action::NavigateToPose_Result_<std::allocator<void> > >, nav2_behavior_tree::BtStatus), nav2_bt_navigator::Navigator<nav2_msgs::action::NavigateToPose>*&, std::shared_ptr<nav2_msgs::action::NavigateToPose_Result_<std::allocator<void> > >&&, nav2_behavior_tree::BtStatus&&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x47bb81) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #5 0x7fb87667b6e6 in std::_Function_handler<void (std::shared_ptr<nav2_msgs::action::NavigateToPose_Result_<std::allocator<void> > >, nav2_behavior_tree::BtStatus), std::_Bind<void (nav2_bt_navigator::Navigator<nav2_msgs::action::NavigateToPose>::* (nav2_bt_navigator::Navigator<nav2_msgs::action::NavigateToPose>*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<nav2_msgs::action::NavigateToPose_Result_<std::allocator<void> > >, nav2_behavior_tree::BtStatus)> >::_M_invoke(std::_Any_data const&, std::shared_ptr<nav2_msgs::action::NavigateToPose_Result_<std::allocator<void> > >&&, nav2_behavior_tree::BtStatus&&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x47b6e6) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #6 0x7fb87667ea2f in nav2_behavior_tree::BtActionServer<nav2_msgs::action::NavigateToPose>::executeCallback() (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x47ea2f) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #7 0x7fb8766a9cef in nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::work() (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a9cef) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #8 0x7fb8766a9208 in std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void>::operator()() const (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a9208) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #9 0x7fb8766a8f29 in std::enable_if<is_invocable_r_v<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void>&>, std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> >::type std::__invoke_r<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter>, std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void>&>(std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void>&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a8f29) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #10 0x7fb8766a8db0 in std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<void>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void> >::_M_invoke(std::_Any_data const&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a8db0) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #11 0x7fb8792457f6 in std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (/home/*****/nav2_humble/install/nav2_behavior_tree/lib/libnav2_compute_path_to_pose_action_bt_node.so+0x307f6) (BuildId: 552cfd70a84cf279d69712ed189efea8e25d71f0)
    #12 0x7fb875899ee7 in __pthread_once_slow nptl/./nptl/pthread_once.c:116:7
    #13 0x7fb8766a6b8a in std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void>::_M_run() (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a6b8a) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #14 0x7fb875cdc252  (/lib/x86_64-linux-gnu/libstdc++.so.6+0xdc252) (BuildId: e37fe1a879783838de78cbc8c80621fa685d58a2)
    #15 0x7fb875894ac2 in start_thread nptl/./nptl/pthread_create.c:442:8
    #16 0x7fb87592684f  misc/../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

0x6030006bf260 is located 0 bytes inside of 31-byte region [0x6030006bf260,0x6030006bf27f)
freed by thread T0 here:
    #0 0x563e36f8511d in operator delete(void*) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/nav2_bt_navigator/bt_navigator+0xf011d) (BuildId: 34a63e084ab75f9b1885869f4001c62f73d97070)
    #1 0x7fb876596e21 in nav2_bt_navigator::BtNavigator::~BtNavigator() (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x396e21) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #2 0x7fb875829d8f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

previously allocated by thread T13 here:
    #0 0x563e36f848bd in operator new(unsigned long) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/nav2_bt_navigator/bt_navigator+0xef8bd) (BuildId: 34a63e084ab75f9b1885869f4001c62f73d97070)
    #1 0x7fb875d4bfee in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/lib/x86_64-linux-gnu/libstdc++.so.6+0x14bfee) (BuildId: e37fe1a879783838de78cbc8c80621fa685d58a2)

Thread T17 created by T0 here:
    #0 0x563e36f32f6c in __interceptor_pthread_create (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/nav2_bt_navigator/bt_navigator+0x9df6c) (BuildId: 34a63e084ab75f9b1885869f4001c62f73d97070)
    #1 0x7fb875cdc328 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xdc328) (BuildId: e37fe1a879783838de78cbc8c80621fa685d58a2)
    #2 0x7fb8766a6509 in std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void>::_Async_state_impl<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()>(nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()&&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a6509) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #3 0x7fb8766a5e50 in std::_Sp_counted_ptr_inplace<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void>, std::allocator<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void> >, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()>(std::allocator<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void> >, nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()&&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a5e50) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #4 0x7fb8766a365a in std::future<std::__invoke_result<std::decay<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()>::type>::type> std::async<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()>(std::launch, nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()&&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a365a) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #5 0x7fb87668c533 in nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x48c533) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #6 0x7fb8766af3ae in void std::__invoke_impl<void, void (nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::*&)(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >), nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>*&, std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> > >(std::__invoke_memfun_deref, void (nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::*&)(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >), nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>*&, std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >&&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4af3ae) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #7 0x7fb876694973 in rclcpp_action::Server<nav2_msgs::action::NavigateToPose>::call_goal_accepted_callback(std::shared_ptr<rcl_action_goal_handle_s>, std::array<unsigned char, 16ul>, std::shared_ptr<void>) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x494973) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #8 0x7fb877a7e1b6 in rclcpp_action::ServerBase::execute_goal_request_received(std::shared_ptr<void>&) (/opt/ros/humble/lib/librclcpp_action.so+0x131b6) (BuildId: 8da0710b8af025b200f6ce73ffc85c5ed5c45a8d)

Thread T13 created by T0 here:
    #0 0x563e36f32f6c in __interceptor_pthread_create (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/nav2_bt_navigator/bt_navigator+0x9df6c) (BuildId: 34a63e084ab75f9b1885869f4001c62f73d97070)
    #1 0x7fb875cdc328 in std::thread::_M_start_thread(std::unique_ptr<std::thread::_State, std::default_delete<std::thread::_State> >, void (*)()) (/lib/x86_64-linux-gnu/libstdc++.so.6+0xdc328) (BuildId: e37fe1a879783838de78cbc8c80621fa685d58a2)
    #2 0x7fb8766a6509 in std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void>::_Async_state_impl<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()>(nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()&&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a6509) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #3 0x7fb8766a5e50 in std::_Sp_counted_ptr_inplace<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void>, std::allocator<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void> >, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()>(std::allocator<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()> >, void> >, nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()&&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a5e50) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #4 0x7fb8766a365a in std::future<std::__invoke_result<std::decay<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()>::type>::type> std::async<nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()>(std::launch, nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >)::'lambda'()&&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4a365a) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #5 0x7fb87668c533 in nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::handle_accepted(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x48c533) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #6 0x7fb8766af3ae in void std::__invoke_impl<void, void (nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::*&)(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >), nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>*&, std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> > >(std::__invoke_memfun_deref, void (nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>::*&)(std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >), nav2_util::SimpleActionServer<nav2_msgs::action::NavigateToPose>*&, std::shared_ptr<rclcpp_action::ServerGoalHandle<nav2_msgs::action::NavigateToPose> >&&) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x4af3ae) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #7 0x7fb876694973 in rclcpp_action::Server<nav2_msgs::action::NavigateToPose>::call_goal_accepted_callback(std::shared_ptr<rcl_action_goal_handle_s>, std::array<unsigned char, 16ul>, std::shared_ptr<void>) (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/libbt_navigator_core.so+0x494973) (BuildId: 014f746fc22fa55b4dda12be8ead56d03af59e4e)
    #8 0x7fb877a7e1b6 in rclcpp_action::ServerBase::execute_goal_request_received(std::shared_ptr<void>&) (/opt/ros/humble/lib/librclcpp_action.so+0x131b6) (BuildId: 8da0710b8af025b200f6ce73ffc85c5ed5c45a8d)

SUMMARY: AddressSanitizer: heap-use-after-free (/home/*****/nav2_humble/install/nav2_bt_navigator/lib/nav2_bt_navigator/bt_navigator+0x4c205) (BuildId: 34a63e084ab75f9b1885869f4001c62f73d97070) in MemcmpInterceptorCommon(void*, int (*)(void const*, void const*, unsigned long), void const*, void const*, unsigned long)
Shadow bytes around the buggy address:
  0x0c06800cfdf0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c06800cfe00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c06800cfe10: fa fa fa fa fa fa 00 00 00 00 fa fa 00 00 00 03
  0x0c06800cfe20: fa fa 00 00 00 fa fa fa fa fa fa fa fa fa fa fa
  0x0c06800cfe30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
=>0x0c06800cfe40: fa fa fa fa fa fa fa fa fa fa fa fa[fd]fd fd fd
  0x0c06800cfe50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c06800cfe60: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x0c06800cfe70: fa fa fa fa fa fa fd fd fd fa fa fa fd fd fd fa
  0x0c06800cfe80: fa fa fa fa fa fa fa fa fd fd fd fa fa fa fa fa
  0x0c06800cfe90: fa fa fa fa fd fd fd fa fa fa fd fd fd fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb

Additional information


simple analysis:
1> During the shutdown period, a difficult to execute action thread is currently blocking and has received a shutdown signal
2> nav2 starts resource cleaning, and finally nav2_bt_navigator is released as a whole. The destructor releases all the pointers it creates, but the actionServer thread is still executing, resulting in UAF access.

@SteveMacenski
Copy link
Member

It is not considered a valid shutdown mid-execution. You should wait between executions, then bring down the lifecycle nodes, then exit the program cleanly. With that said, if you want to improve cleanup using normal-operations signals, power to you!

server_timeout_ the spin timeout is there to handle so we can handle lack of responses. Though, it seems odd to me looking at it now that in those if statements, we don't return after the log.

You could also adjust the definition of should_cancel_goal() https://github.com/ros-planning/navigation2/blob/47374622dee01a27e5f9b8ae08f3d19a15de9b3a/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_node.hpp#L338-L356 to look at the context / rclcpp::ok() to not cancel in case of halt() in the shutdown case, thereby bypassing all of this.

@SteveMacenski
Copy link
Member

I don't have an immediate answer, it could be many things I'd need to catch myself to see where it happened - but if we handle it the way I describe above, maybe its moot :-)

@GoesM
Copy link
Contributor Author

GoesM commented Mar 13, 2024

I found that I have some misunderstanding before. I'm so sorry for my fault.

I've deleted the additional information before, and here's a more clear one.

Additional information

code analysis

To clearly understand why use-after-free within multi-threads, it's first to find which thread / function use and which thread free.

the thread for use
It's obvious that the pointer is used in the function BtActionServer::executeCallback()->CompletionCallback() (also named as onCompletion()) -> stopNavigating()

And the function BtActionServer::executeCallback() is called in another thread by the bt_action_server_'s member action_server_ , refer to following code:

https://github.com/ros-planning/navigation2/blob/0897da9252b4cb537b1110e88831a1e63ac157d3/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server_impl.hpp#L146-L152

the thread for free

however, there's only action_server_.reset() in bt_action_server_->on_cleanup(), but no wait for action_server_'s sub-thread finished.

https://github.com/ros-planning/navigation2/blob/0897da9252b4cb537b1110e88831a1e63ac157d3/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server_impl.hpp#L203-L215

Also, there's only bt_action_server_->oncleanup() in nav2_bt_navigator->on_cleanup(), but also no wait for action_server_'s sub-thread finished.

https://github.com/ros-planning/navigation2/blob/0897da9252b4cb537b1110e88831a1e63ac157d3/nav2_bt_navigator/src/bt_navigator.cpp#L175-L193

result
So that if action_server_'s sub-thread is still running after action_server_.reset() or even after bt_action_server_->on_cleanup() or even after nav2_bt_navigator->on_cleanup() or even after ~nav2_bt_navigator(), the sub-thread would access the freed pointers of nav2_bt_navigator (then UAF occurs).

experiments / POC

To make sure the executeCallback() is still working after the ~nav2_bt_navigator(), I insert some code into executeCallback() as following to extend the time-cost of sub-thread:

template<class ActionT>
void BtActionServer<ActionT>::executeCallback()
{
...
    // insert
      std::this_thread::sleep_for(std::chrono::seconds(4));
    // insert end
  on_completion_callback_(result, rc);
...
}

then launch nav2 normally

then publish a goal_pose like :

ros2 topic pub /goal_pose geometry_msgs/msg/PoseStamped " 
header:
  stamp:
    sec: 1706255138
    nanosec: 811244537
  frame_id: map
pose:
  position:
    x: 0.7312569618225098
    y: 1.8531221151351929
    z: 0.0
  orientation:
    x: 0.0
    y: 0.0
    z: -0.7723305100496971
    w: 0.635220893269715" -1

then Ctrl+C to nav2 before goal-achieved

then asan-report would occur.

It proves that ** the executeCallback() is still working after the ~nav2_bt_navigator() **

similar ticket

I believe it's quite simliar to another UAF-issue #4166, they both just do a shared-pointer reset() but no wait for the sub-thread / sub-process created by the shared-pointer, which brings in the UAF.

suggestion to fix

Is there any way to let the sub-thread / process created by action_server_ joint into the function bt_action_server_->on_cleanup() or nav2_bt_navigator->on_cleanup() ?

@SteveMacenski
Copy link
Member

SteveMacenski commented Mar 13, 2024

Spin thread appears to be false, so the simple action server isn't using its own executor, so I suppose the first thing to find is where that new thread is created to decide where we want to make sure its joined on the action server's reset().

reset() would destroy the object's members, including the executor and related assets

  rclcpp::CallbackGroup::SharedPtr callback_group_{nullptr};
  rclcpp::executors::SingleThreadedExecutor::SharedPtr executor_;
  std::unique_ptr<nav2_util::NodeThread> executor_thread_;

And as we've shown before, the NodeThread's destructor join()s the thread before exiting. So that all seems fine to me. Finding where that thread is the important part. I don't see that the action server has a new thread - but not that there is one from the client node https://github.com/ros-planning/navigation2/blob/0897da9252b4cb537b1110e88831a1e63ac157d3/nav2_behavior_tree/include/nav2_behavior_tree/bt_action_server_impl.hpp#L127 for the internals of the BT nodes. I leave it to your sleuthing to find where the issue thread is at to join.

@GoesM
Copy link
Contributor Author

GoesM commented Mar 14, 2024

Conclusion :

UAF is caused by the error thrown in function SimpleActionServer::deactivate() in [nav2_uti/include/nav2_util/simple_action_server.hpp] of nav2_humble

https://github.com/ros-planning/navigation2/blob/a45b151ceb3aa9edebad8a528cd672935f0c668d/nav2_util/include/nav2_util/simple_action_server.hpp#L289-L296

if here's some error thrown here, it would step in try..catch mechanism of ros2/rclcpp, refer to code link

node_interfaces::LifecycleNodeInterface::CallbackReturn
LifecycleNode::LifecycleNodeInterfaceImpl::execute_callback(
  unsigned int cb_id, const State & previous_state) const
{
  // in case no callback was attached, we forward directly
  auto cb_success = node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS;


  auto it = cb_map_.find(static_cast<uint8_t>(cb_id));
  if (it != cb_map_.end()) {
    auto callback = it->second;
    try {
      cb_success = callback(State(previous_state));
    } catch (const std::exception & e) {
      RCLCPP_ERROR(
        node_logging_interface_->get_logger(),
        "Caught exception in callback for transition %d", it->first);
      RCLCPP_ERROR(
        node_logging_interface_->get_logger(),
        "Original error: %s", e.what());
      cb_success = node_interfaces::LifecycleNodeInterface::CallbackReturn::ERROR;
    }
  }
  return cb_success;
}

Following that, it interrupts the process's original deactivate() function, causing the process to exit without completing the task of waiting for the thread to exit, resulting in a UAF.

@GoesM
Copy link
Contributor Author

GoesM commented Mar 14, 2024

SO, it seems that we should solve error-thrown here, if we want to avoid UAF.

error thrown 1 : the lack of nullptr-check bring in bad function call error catched

in nav2-main stack , here's a nullptr-check for completion_callback_ function-pointer, which is used to avoid nullptr-accessed

https://github.com/ros-planning/navigation2/blob/09ba08b7f45004df92f77fa683ea33d8afa2acce/nav2_util/include/nav2_util/simple_action_server.hpp#L317

However, here's the lack of it in nav2-humble version:

https://github.com/ros-planning/navigation2/blob/a45b151ceb3aa9edebad8a528cd672935f0c668d/nav2_util/include/nav2_util/simple_action_server.hpp#L293

BUT, according to the code of bt_navigator, this pointer is always NULL, so that NullPtr-accessed would be catched as "bad function call".

debug info for error thrown 1

I insert some log here for debug, as following:

 while (execution_future_.wait_for(milliseconds(100)) != std::future_status::ready) {
      info_msg("Waiting for async process to finish.");
      if (steady_clock::now() - start_time >= server_timeout_) {
           // goes insert
              warn_msg("terminate_all() started. ");
           // insert end
        terminate_all();
          // goes insert
            warn_msg("terminate_all() finished. ");
            warn_msg("completion_callback_ start ");
          // insert end
      if(completion_callback_) completion_callback_();
          // goes insert
            warn_msg("completion_callback_ finished.");
            warn_msg("before throw error. ");
          // insert end
        throw std::runtime_error("Action callback is still running and missed deadline to stop");
      }
    debug_msg("Deactivation completed.");
  }

then, the log of nav2_bt_navigator shows:

[INFO] [1710427380.141387057] [rclcpp]: signal_handler(signum=2)
[INFO] [1710427380.141517732] [bt_navigator]: Running Nav2 LifecycleNode rcl preshutdown (bt_navigator)
[INFO] [1710427380.141572676] [bt_navigator]: Deactivating
[WARN] [1710427380.141646003] [bt_navigator]: [navigate_to_pose] [ActionServer] Requested to deactivate server but goal is still executing. Should check if action server is running before deactivating.
[ERROR] [1710427380.171597874] [bt_navigator_navigate_to_pose_rclcpp_node]: Failed to get result for follow_path in node halt!
[INFO] [1710427380.241779538] [bt_navigator]: [navigate_to_pose] [ActionServer] Waiting for async process to finish.
[INFO] [1710427380.341846408] [bt_navigator]: [navigate_to_pose] [ActionServer] Waiting for async process to finish.
[INFO] [1710427380.442045833] [bt_navigator]: [navigate_to_pose] [ActionServer] Waiting for async process to finish.
[INFO] [1710427380.542353693] [bt_navigator]: [navigate_to_pose] [ActionServer] Waiting for async process to finish.
[INFO] [1710427380.642514433] [bt_navigator]: [navigate_to_pose] [ActionServer] Waiting for async process to finish.
[WARN] [1710427380.642575567] [bt_navigator]: [navigate_to_pose] [ActionServer] terminate_all() started. 
[WARN] [1710427380.642596713] [bt_navigator]: [navigate_to_pose] [ActionServer] Aborting handle.
[WARN] [1710427381.642985458] [bt_navigator]: [navigate_to_pose] [ActionServer] terminate_all() finished. 
[WARN] [1710427381.642994046] [bt_navigator]: [navigate_to_pose] [ActionServer] completion_callback_ start 
[ERROR] [1710427381.643055223] [bt_navigator]: Caught exception in callback for transition 14
[ERROR] [1710427381.643063858] [bt_navigator]: Original error: bad_function_call
[WARN] [1710427381.643086517] [bt_navigator]: Error occurred while doing error handling.
[FATAL] [1710427381.643113948] [bt_navigator]: Lifecycle node bt_navigator does not have error state implemented
[INFO] [1710427381.643134721] [bt_navigator]: Destroying bond (bt_navigator) to lifecycle manager.

As we can see, the log is interrupted after completion_callback_ start and before completion_callback_ finished, which proves that the interruption is caused by the nullptr-accessed here.

error thrown 2 : the proactive "throw error" leads to error catched

To avoid NullPtr-accessed, I fixed as how it's fixed in nav2-main:

 while (execution_future_.wait_for(milliseconds(100)) != std::future_status::ready) {
      info_msg("Waiting for async process to finish.");
      if (steady_clock::now() - start_time >= server_timeout_) {
           // goes insert
              warn_msg("terminate_all() started. ");
           // insert end
        terminate_all();
          // goes insert
            warn_msg("terminate_all() finished. ");
            warn_msg("completion_callback_ start ");
          // insert end
     if(completion_callback_) completion_callback_();
          // goes insert
            warn_msg("completion_callback_ finished.");
            warn_msg("before throw error. ");
          // insert end
        throw std::runtime_error("Action callback is still running and missed deadline to stop");
      }
    debug_msg("Deactivation completed.");
  }

BUT, the UAF still occurs. That because the code throw an runtime_error here, also catched by rclcpp:

https://github.com/ros-planning/navigation2/blob/a45b151ceb3aa9edebad8a528cd672935f0c668d/nav2_util/include/nav2_util/simple_action_server.hpp#L294

debug info for error thrown 2

we can see the log is as following:

[INFO] [1710427133.548628103] [rclcpp]: signal_handler(signum=2)
[INFO] [1710427133.548761756] [bt_navigator]: Running Nav2 LifecycleNode rcl preshutdown (bt_navigator)
[INFO] [1710427133.548870713] [bt_navigator]: Deactivating
[WARN] [1710427133.548921523] [bt_navigator]: [navigate_to_pose] [ActionServer] Requested to deactivate server but goal is still executing. Should check if action server is running before deactivating.
[ERROR] [1710427133.572469539] [bt_navigator_navigate_to_pose_rclcpp_node]: Failed to get result for follow_path in node halt!
[INFO] [1710427133.649079516] [bt_navigator]: [navigate_to_pose] [ActionServer] Waiting for async process to finish.
[INFO] [1710427133.749291894] [bt_navigator]: [navigate_to_pose] [ActionServer] Waiting for async process to finish.
[INFO] [1710427133.849653475] [bt_navigator]: [navigate_to_pose] [ActionServer] Waiting for async process to finish.
[INFO] [1710427133.949895585] [bt_navigator]: [navigate_to_pose] [ActionServer] Waiting for async process to finish.
[INFO] [1710427134.050078388] [bt_navigator]: [navigate_to_pose] [ActionServer] Waiting for async process to finish.
[WARN] [1710427134.050137301] [bt_navigator]: [navigate_to_pose] [ActionServer] terminate_all() started. 
[WARN] [1710427134.050147568] [bt_navigator]: [navigate_to_pose] [ActionServer] Aborting handle.
[WARN] [1710427135.050402705] [bt_navigator]: [navigate_to_pose] [ActionServer] terminate_all() finished. 
[WARN] [1710427135.050417258] [bt_navigator]: [navigate_to_pose] [ActionServer] before throw error. 
[ERROR] [1710427135.050471087] [bt_navigator]: Caught exception in callback for transition 14
[ERROR] [1710427135.050495290] [bt_navigator]: Original error: Action callback is still running and missed deadline to stop
[WARN] [1710427135.050514797] [bt_navigator]: Error occurred while doing error handling.
[FATAL] [1710427135.050531012] [bt_navigator]: Lifecycle node bt_navigator does not have error state implemented
[INFO] [1710427135.050548761] [bt_navigator]: Destroying bond (bt_navigator) to lifecycle manager.

it shows that the runtime_error is catched by rclcpp, and no final debug_msg Deactivation completed. occurs, which proves that the processes is also interrupted by try-catch of rclcpp

@GoesM
Copy link
Contributor Author

GoesM commented Mar 14, 2024

suggestion to fix ?

1> add nullptr-check in nav2_humble

2> just warn but no throw error ?

I'm not very clear about the details of why there's a proactive "throw error" approach and why there's a “try-catch” mechanism in rclcpp, but I believe they are set for mitigating the harm caused by errors.

However, if such methods end up introducing more harmful UAF-type bugs, personally, I think it might be better for us not to proactively "throw errors" but just warn_msg() it for the user ?

Since, if user wrongly shutdown the navigation when some tasks are still on-work , it should be better to show a warning for his own operation than bring a more harmful security-issue like UAF ? I think....

@SteveMacenski
Copy link
Member

Please submit a PR! I think a strongly worded error message would be sufficient as well

SteveMacenski pushed a commit that referenced this issue Mar 14, 2024
…4180)

* replace throw-error with error-log to avoid UAF

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* fix typo

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
SteveMacenski pushed a commit that referenced this issue Apr 4, 2024
…4180)

* replace throw-error with error-log to avoid UAF

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* fix typo

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
SteveMacenski added a commit that referenced this issue Apr 4, 2024
* nav2_controller: add loop rate log (#4171)

* update smac_planner README

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* added current controller loop rate logging

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* linting

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* uncrustify lint

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* Update nav2_controller/src/controller_server.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_controller/src/controller_server.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_controller/src/controller_server.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: ARK3r <kermani.areza@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* completely shutdown inital_pose_sub_ (#4176)

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* chore(nav2_behavior_tree): log actual wait period in bt_action_node (#4178)

Signed-off-by: Felix <felix@fzeltner.de>
Co-authored-by: Felix <felix@fzeltner.de>

* replace throw-error with error-log to avoid UAF mentioned in #4175 (#4180)

* replace throw-error with error-log to avoid UAF

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* fix typo

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* fix typos in description messages (#4188)

Signed-off-by: Antonio Park <kaypaklabs@gmail.com>

* AMCL: Set an initial guess by service call (#4182)

* Added initial guess service. Signed-off-by: Alexander Mock

Signed-off-by: Alexander Mock <amock@uos.de>

* - Removed added empty line
- Renamed initialGuessCallback to initialPoseReceivedSrv
- Added new line to SetInitialPose service definition
- Removed mutex from initialPoseReceived
- Cleanup service server

Signed-off-by: Alexander Mock <amock@uos.de>

* added whitespace

Signed-off-by: Alexander Mock <amock@uos.de>

* renamed initial pose service in callback bind

Signed-off-by: Alexander Mock <amock@uos.de>

---------

Signed-off-by: Alexander Mock <amock@uos.de>

* Move lines for pre-computation to outside a loop (#4191)

Signed-off-by: Kyungsik Park <dkalxkwl@gmail.com>

* Fix typo (#4196)

* Fix BT.CPP import

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* Update README.md

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* Update footprint iif changed (#4193)

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* fix missing param declare (#4203)

Signed-off-by: nelson <kaichie.lee@gmail.com>

* Revert "nav2_controller: add loop rate log (#4171)" (#4210)

This reverts commit 4737462.

* add polygon_subscribe_transient_local parameter in collision monitor (#4207)

Signed-off-by: asarazin <anaelle.sarazin@robocc.com>
Co-authored-by: asarazin <anaelle.sarazin@robocc.com>

* nav2_controller: add loop rate log (#4228)

* added current loop rate printout

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* remove empty line

Signed-off-by: ARK3r <kermani.areza@gmail.com>

---------

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* bump to 1.2.7 for iron sync

* change pointer free order in amcl to avoid use-after-free bug mentioned in #4068 (#4070)

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* Allow path end pose deviation revive (#4065)

* Support stitching paths in compute path to poses

* Update nav2_planner/src/planner_server.cpp

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

* Rename parameter to allow_path_through_poses_goal_deviation

* Fix description

* restore nav2_params

* missing whitespace

* lint fix

* removed parameter

Signed-off-by: gg <josho.wallace@gmail.com>

* Update planner_server.hpp

* Update planner_server.cpp

---------

Signed-off-by: gg <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Change costmap_queue to shared library (#4072)

Signed-off-by: cybaol <cybao292261@163.com>

* free `map_sub_` before `map_free(map_)` to avoid UAF&&NullPtr bug mentioned in #4078 (#4079)

* free `map_sub_` before `map_free(map_)`

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* reformat

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* Fix typo (#4087)

Fix AttributeError: 'BasicNavigator' object has no attribute '_BasicNavigator__getPathThroughPosesImpl'

Signed-off-by: nfriedrich00 <69539098+nfriedrich00@users.noreply.github.com>

* Add velocity based polygon (#3708)

* add velocity based polygon

* fix header, copyright and variable name change

* optimise polygon update

* optimise duplicated code with setPolygonShape

* add warning log for uncovered speed

* update feedback

* rename polygon velocity to velocity polygon

* cleanup

* fix typo

* add dynamic support for velocity polygon

* wrap try catch for getting parameters

* update naming and linting

* use switch case

* Revert "use switch case"

This reverts commit 1230ede.

* fix proper return for invalid parameters

* remove topic parameter for velocity polygon

* fix formatting manually

* continue if points are not defined

* rewrite velocity polygon with polygon base class

Signed-off-by: nelson <kaichie.lee@gmail.com>

* update review comments and description

Signed-off-by: nelson <kaichie.lee@gmail.com>

* add VelocityPolygon to detector node

Signed-off-by: nelson <kaichie.lee@gmail.com>

* review update

Signed-off-by: nelson <kaichie.lee@gmail.com>

* fix cpplint

Signed-off-by: nelson <kaichie.lee@gmail.com>

* Update nav2_collision_monitor/src/velocity_polygon.cpp

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: nelson <kaichie.lee@gmail.com>

* add velocity polygon tests

Signed-off-by: nelson <kaichie.lee@gmail.com>

* fix cpplint

Signed-off-by: nelson <kaichie.lee@gmail.com>

* add in-line comment

Signed-off-by: nelson <kaichie.lee@gmail.com>

* fix push back

Signed-off-by: nelson <kaichie.lee@gmail.com>

* minor change and update README

Signed-off-by: nelson <kaichie.lee@gmail.com>

* update README

Signed-off-by: nelson <kaichie.lee@gmail.com>

---------

Signed-off-by: nelson <kaichie.lee@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* avoid implicit type case (#4098)

* adding progress checker selector BT node (#4109)

* New MPPI Cost Critic (Contrib: Brice Renaudeau) (#4090)

* Share code

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Update inflation_cost_critic.hpp

- copyright
- ifndef

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* fix lint cpp

- extra space

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Fix Smac Planner confined collision checker  (#4055)

* Update collision_checker.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Fix tests

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update test_a_star.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Prevent analytic expansions from shortcutting Smac Planner feasible paths (#3962)

* a potential solution to smac shortcutting

* costmap reoslution

* some fixes

* completed prototype

* some fixes for collision detection and performance

* completing shortcutting fix

* updating tests

* adding readme

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* change pointer free order in amcl to avoid use-after-free bug mentioned in #4068 (#4070)

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* [Smac Planner] Massive Improvement of Behavior for SE2 Footprint Checking (ie non-circular robots) In Confined Settings (#4067)

* prototype to test SE2 footprint H improvements

* some fixes

* fixed

* invert logic

* Working final prototype to be tested

* complete unit test conversions

* Update inflation_layer.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Adding new Smac paper to readme

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Update README.md

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* [behavior_tree] don't repeat yourself in "blackboard->set" (#4074)

* don't repeat yourself: templates in tests

Signed-off-by: Davide Faconti <davide.faconti@gmail.com>

* misse change

Signed-off-by: Davide Faconti <davide.faconti@gmail.com>

---------

Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Allow path end pose deviation revive (#4065)

* Support stitching paths in compute path to poses

* Update nav2_planner/src/planner_server.cpp

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

* Rename parameter to allow_path_through_poses_goal_deviation

* Fix description

* restore nav2_params

* missing whitespace

* lint fix

* removed parameter

Signed-off-by: gg <josho.wallace@gmail.com>

* Update planner_server.hpp

* Update planner_server.cpp

---------

Signed-off-by: gg <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Updated code to use getInflationLayer() method (#4076)

* updated code to use getInflationLayer method

Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>

* Fix linting

Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>

---------

Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* 1594 twist stamped publisher (#4077)

* Add TwistStamped to controller_server via TwistPublisher util

* Add a new util class for publishing either Twist or TwistStamped
* Add a new parameter for selecting to stamp the twist data
* Consume TwistPublisher in nav2_controller

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix small issues

* Unused variable
* Incorrect doxygen

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove stored node and assert

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add tests for node

* Facing timeout even though it does the same thing as velocity smoother test

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add missing spin call to solve timeout

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix copyright (me instead of intel)

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add full test coverage with subscriber

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove unused rclcpp fixture

* Can't use it due to needing to join the pub thread after rclcpp shuts down

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistStamped in nav2_behaviors

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistStamped in collision monitor node

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add TwistStamped readme updates to velocity smoother

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add TwistSubscriber implementation

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix syntax errors

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in test_velocity_smoother

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in assisted_teleop

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in collision monitor node

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in velocity smoother

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove unused code

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* add timestamp and frame_id to TwistStamped message

* Add missing utility include

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Document TwistPublisher and TwistSubscriber usage

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use pass-by-reference

* Instead of std::move(std::unique_ptr<TwistStamped>)

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Finish twist subscriber tests

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add other constructor and docs

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix linter issues

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Manually fix paren alignment

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove GSoC reference

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Document twist bool param in README

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Handle twistPublisher in collision monitor

* Implement behavior in the stamped callback
* Unstamped callback calls the stamped callback
* Switch to unique pointer for publisher

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Convert to using TwistStamped interally

* Use incoming twistStamped timestamp if available
* Convert all internal representations to use TwistStamped

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove nav2_util usage instructions

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove unused Twist only subscriber

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* More linter fixes

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Prefer working with unique_ptr for cmd_vel

* This makes it easier to switch to std::move instead of dereference on
  publish

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Completing twist stamped migration

* shared to unique ptr

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* twist add stamps and properly propogated

* nav2_util: fix for compiling with clang

- Resolve error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>

---------

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Change costmap_queue to shared library (#4072)

Signed-off-by: cybaol <cybao292261@163.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* fix include of hpp

Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com>

* inflation cost optmiizations and cleanu

* rename, add defaults, and docs

* smoke test addition

* lintg

* normalize weight

* update readme

* increment cache

* Update cost_critic.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update cost_critic.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Brice <brice.renaudeau@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Signed-off-by: gg <josho.wallace@gmail.com>
Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: cybaol <cybao292261@163.com>
Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com>
Co-authored-by: BriceRenaudeau <48433002+BriceRenaudeau@users.noreply.github.com>
Co-authored-by: GoesM <130988564+GoesM@users.noreply.github.com>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: Davide Faconti <davide.faconti@gmail.com>
Co-authored-by: Joshua Wallace <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: jncfa <20467009+jncfa@users.noreply.github.com>
Co-authored-by: Ryan <ryanfriedman5410+github@gmail.com>
Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com>
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Co-authored-by: Kino <cybao292261@163.com>

* Use ament_export_targets for all targets (#4112)

* Matches new internal ALIAS targets
* Use ALIAS targets for all internal linkage
* Remove unnecessary calls to ament_target_dependencies in test code
* Export includes in proper folders for overlays in colcon

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Update default recommendation from Obstacles to Cost critic in MPPI (#4170)

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* fix merge conflict

* Revert "Add velocity based polygon (#3708)"

This reverts commit a3ed745.

* custom backported version of cost critic inscribed cost

---------

Signed-off-by: ARK3r <kermani.areza@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: Felix <felix@fzeltner.de>
Signed-off-by: Antonio Park <kaypaklabs@gmail.com>
Signed-off-by: Alexander Mock <amock@uos.de>
Signed-off-by: Kyungsik Park <dkalxkwl@gmail.com>
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>
Signed-off-by: nelson <kaichie.lee@gmail.com>
Signed-off-by: asarazin <anaelle.sarazin@robocc.com>
Signed-off-by: gg <josho.wallace@gmail.com>
Signed-off-by: cybaol <cybao292261@163.com>
Signed-off-by: nfriedrich00 <69539098+nfriedrich00@users.noreply.github.com>
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com>
Co-authored-by: Reza Kermani <kermani.areza@gmail.com>
Co-authored-by: GoesM <130988564+GoesM@users.noreply.github.com>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: bi0ha2ard <bi0ha2ard@users.noreply.github.com>
Co-authored-by: Felix <felix@fzeltner.de>
Co-authored-by: Antonio Park <kaypaklabs@gmail.com>
Co-authored-by: Alexander Mock <amock@uos.de>
Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com>
Co-authored-by: BriceRenaudeau <48433002+BriceRenaudeau@users.noreply.github.com>
Co-authored-by: nelson <kaichie.lee@gmail.com>
Co-authored-by: anaelle-sw <63144493+anaelle-sw@users.noreply.github.com>
Co-authored-by: asarazin <anaelle.sarazin@robocc.com>
Co-authored-by: Joshua Wallace <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Kino <cybao292261@163.com>
Co-authored-by: nfriedrich00 <69539098+nfriedrich00@users.noreply.github.com>
Co-authored-by: Davide Faconti <davide.faconti@gmail.com>
Co-authored-by: jncfa <20467009+jncfa@users.noreply.github.com>
Co-authored-by: Ryan <ryanfriedman5410+github@gmail.com>
Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com>
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
ajtudela pushed a commit to grupo-avispa/navigation2 that referenced this issue Apr 19, 2024
…gation#4175 (ros-navigation#4180)

* replace throw-error with error-log to avoid UAF

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* fix typo

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
SteveMacenski pushed a commit that referenced this issue May 7, 2024
…4180) (#4305)

* replace throw-error with error-log to avoid UAF



* fix typo



---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
enricosutera pushed a commit to enricosutera/navigation2 that referenced this issue May 19, 2024
…gation#4175 (ros-navigation#4180)

* replace throw-error with error-log to avoid UAF

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* fix typo

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: enricosutera <enricosutera@outlook.com>
maksymdidukh pushed a commit to logivations/navigation2 that referenced this issue Jun 24, 2024
* nav2_controller: add loop rate log (ros-navigation#4171)

* update smac_planner README

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* added current controller loop rate logging

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* linting

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* uncrustify lint

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* Update nav2_controller/src/controller_server.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_controller/src/controller_server.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_controller/src/controller_server.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: ARK3r <kermani.areza@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* completely shutdown inital_pose_sub_ (ros-navigation#4176)

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* chore(nav2_behavior_tree): log actual wait period in bt_action_node (ros-navigation#4178)

Signed-off-by: Felix <felix@fzeltner.de>
Co-authored-by: Felix <felix@fzeltner.de>

* replace throw-error with error-log to avoid UAF mentioned in ros-navigation#4175 (ros-navigation#4180)

* replace throw-error with error-log to avoid UAF

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* fix typo

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* fix typos in description messages (ros-navigation#4188)

Signed-off-by: Antonio Park <kaypaklabs@gmail.com>

* AMCL: Set an initial guess by service call (ros-navigation#4182)

* Added initial guess service. Signed-off-by: Alexander Mock

Signed-off-by: Alexander Mock <amock@uos.de>

* - Removed added empty line
- Renamed initialGuessCallback to initialPoseReceivedSrv
- Added new line to SetInitialPose service definition
- Removed mutex from initialPoseReceived
- Cleanup service server

Signed-off-by: Alexander Mock <amock@uos.de>

* added whitespace

Signed-off-by: Alexander Mock <amock@uos.de>

* renamed initial pose service in callback bind

Signed-off-by: Alexander Mock <amock@uos.de>

---------

Signed-off-by: Alexander Mock <amock@uos.de>

* Move lines for pre-computation to outside a loop (ros-navigation#4191)

Signed-off-by: Kyungsik Park <dkalxkwl@gmail.com>

* Fix typo (ros-navigation#4196)

* Fix BT.CPP import

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* Update README.md

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* Update footprint iif changed (ros-navigation#4193)

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* fix missing param declare (ros-navigation#4203)

Signed-off-by: nelson <kaichie.lee@gmail.com>

* Revert "nav2_controller: add loop rate log (ros-navigation#4171)" (ros-navigation#4210)

This reverts commit 4737462.

* add polygon_subscribe_transient_local parameter in collision monitor (ros-navigation#4207)

Signed-off-by: asarazin <anaelle.sarazin@robocc.com>
Co-authored-by: asarazin <anaelle.sarazin@robocc.com>

* nav2_controller: add loop rate log (ros-navigation#4228)

* added current loop rate printout

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* remove empty line

Signed-off-by: ARK3r <kermani.areza@gmail.com>

---------

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* bump to 1.2.7 for iron sync

* change pointer free order in amcl to avoid use-after-free bug mentioned in ros-navigation#4068 (ros-navigation#4070)

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* Allow path end pose deviation revive (ros-navigation#4065)

* Support stitching paths in compute path to poses

* Update nav2_planner/src/planner_server.cpp

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

* Rename parameter to allow_path_through_poses_goal_deviation

* Fix description

* restore nav2_params

* missing whitespace

* lint fix

* removed parameter

Signed-off-by: gg <josho.wallace@gmail.com>

* Update planner_server.hpp

* Update planner_server.cpp

---------

Signed-off-by: gg <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Change costmap_queue to shared library (ros-navigation#4072)

Signed-off-by: cybaol <cybao292261@163.com>

* free `map_sub_` before `map_free(map_)` to avoid UAF&&NullPtr bug mentioned in ros-navigation#4078 (ros-navigation#4079)

* free `map_sub_` before `map_free(map_)`

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* reformat

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* Fix typo (ros-navigation#4087)

Fix AttributeError: 'BasicNavigator' object has no attribute '_BasicNavigator__getPathThroughPosesImpl'

Signed-off-by: nfriedrich00 <69539098+nfriedrich00@users.noreply.github.com>

* Add velocity based polygon (ros-navigation#3708)

* add velocity based polygon

* fix header, copyright and variable name change

* optimise polygon update

* optimise duplicated code with setPolygonShape

* add warning log for uncovered speed

* update feedback

* rename polygon velocity to velocity polygon

* cleanup

* fix typo

* add dynamic support for velocity polygon

* wrap try catch for getting parameters

* update naming and linting

* use switch case

* Revert "use switch case"

This reverts commit 1230ede.

* fix proper return for invalid parameters

* remove topic parameter for velocity polygon

* fix formatting manually

* continue if points are not defined

* rewrite velocity polygon with polygon base class

Signed-off-by: nelson <kaichie.lee@gmail.com>

* update review comments and description

Signed-off-by: nelson <kaichie.lee@gmail.com>

* add VelocityPolygon to detector node

Signed-off-by: nelson <kaichie.lee@gmail.com>

* review update

Signed-off-by: nelson <kaichie.lee@gmail.com>

* fix cpplint

Signed-off-by: nelson <kaichie.lee@gmail.com>

* Update nav2_collision_monitor/src/velocity_polygon.cpp

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: nelson <kaichie.lee@gmail.com>

* add velocity polygon tests

Signed-off-by: nelson <kaichie.lee@gmail.com>

* fix cpplint

Signed-off-by: nelson <kaichie.lee@gmail.com>

* add in-line comment

Signed-off-by: nelson <kaichie.lee@gmail.com>

* fix push back

Signed-off-by: nelson <kaichie.lee@gmail.com>

* minor change and update README

Signed-off-by: nelson <kaichie.lee@gmail.com>

* update README

Signed-off-by: nelson <kaichie.lee@gmail.com>

---------

Signed-off-by: nelson <kaichie.lee@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* avoid implicit type case (ros-navigation#4098)

* adding progress checker selector BT node (ros-navigation#4109)

* New MPPI Cost Critic (Contrib: Brice Renaudeau) (ros-navigation#4090)

* Share code

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Update inflation_cost_critic.hpp

- copyright
- ifndef

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* fix lint cpp

- extra space

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Fix Smac Planner confined collision checker  (ros-navigation#4055)

* Update collision_checker.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Fix tests

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update test_a_star.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Prevent analytic expansions from shortcutting Smac Planner feasible paths (ros-navigation#3962)

* a potential solution to smac shortcutting

* costmap reoslution

* some fixes

* completed prototype

* some fixes for collision detection and performance

* completing shortcutting fix

* updating tests

* adding readme

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* change pointer free order in amcl to avoid use-after-free bug mentioned in ros-navigation#4068 (ros-navigation#4070)

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* [Smac Planner] Massive Improvement of Behavior for SE2 Footprint Checking (ie non-circular robots) In Confined Settings (ros-navigation#4067)

* prototype to test SE2 footprint H improvements

* some fixes

* fixed

* invert logic

* Working final prototype to be tested

* complete unit test conversions

* Update inflation_layer.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Adding new Smac paper to readme

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Update README.md

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* [behavior_tree] don't repeat yourself in "blackboard->set" (ros-navigation#4074)

* don't repeat yourself: templates in tests

Signed-off-by: Davide Faconti <davide.faconti@gmail.com>

* misse change

Signed-off-by: Davide Faconti <davide.faconti@gmail.com>

---------

Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Allow path end pose deviation revive (ros-navigation#4065)

* Support stitching paths in compute path to poses

* Update nav2_planner/src/planner_server.cpp

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

* Rename parameter to allow_path_through_poses_goal_deviation

* Fix description

* restore nav2_params

* missing whitespace

* lint fix

* removed parameter

Signed-off-by: gg <josho.wallace@gmail.com>

* Update planner_server.hpp

* Update planner_server.cpp

---------

Signed-off-by: gg <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Updated code to use getInflationLayer() method (ros-navigation#4076)

* updated code to use getInflationLayer method

Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>

* Fix linting

Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>

---------

Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* 1594 twist stamped publisher (ros-navigation#4077)

* Add TwistStamped to controller_server via TwistPublisher util

* Add a new util class for publishing either Twist or TwistStamped
* Add a new parameter for selecting to stamp the twist data
* Consume TwistPublisher in nav2_controller

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix small issues

* Unused variable
* Incorrect doxygen

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove stored node and assert

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add tests for node

* Facing timeout even though it does the same thing as velocity smoother test

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add missing spin call to solve timeout

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix copyright (me instead of intel)

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add full test coverage with subscriber

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove unused rclcpp fixture

* Can't use it due to needing to join the pub thread after rclcpp shuts down

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistStamped in nav2_behaviors

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistStamped in collision monitor node

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add TwistStamped readme updates to velocity smoother

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add TwistSubscriber implementation

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix syntax errors

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in test_velocity_smoother

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in assisted_teleop

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in collision monitor node

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in velocity smoother

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove unused code

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* add timestamp and frame_id to TwistStamped message

* Add missing utility include

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Document TwistPublisher and TwistSubscriber usage

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use pass-by-reference

* Instead of std::move(std::unique_ptr<TwistStamped>)

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Finish twist subscriber tests

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add other constructor and docs

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix linter issues

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Manually fix paren alignment

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove GSoC reference

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Document twist bool param in README

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Handle twistPublisher in collision monitor

* Implement behavior in the stamped callback
* Unstamped callback calls the stamped callback
* Switch to unique pointer for publisher

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Convert to using TwistStamped interally

* Use incoming twistStamped timestamp if available
* Convert all internal representations to use TwistStamped

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove nav2_util usage instructions

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove unused Twist only subscriber

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* More linter fixes

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Prefer working with unique_ptr for cmd_vel

* This makes it easier to switch to std::move instead of dereference on
  publish

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Completing twist stamped migration

* shared to unique ptr

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* twist add stamps and properly propogated

* nav2_util: fix for compiling with clang

- Resolve error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>

---------

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Change costmap_queue to shared library (ros-navigation#4072)

Signed-off-by: cybaol <cybao292261@163.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* fix include of hpp

Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com>

* inflation cost optmiizations and cleanu

* rename, add defaults, and docs

* smoke test addition

* lintg

* normalize weight

* update readme

* increment cache

* Update cost_critic.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update cost_critic.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Brice <brice.renaudeau@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Signed-off-by: gg <josho.wallace@gmail.com>
Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: cybaol <cybao292261@163.com>
Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com>
Co-authored-by: BriceRenaudeau <48433002+BriceRenaudeau@users.noreply.github.com>
Co-authored-by: GoesM <130988564+GoesM@users.noreply.github.com>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: Davide Faconti <davide.faconti@gmail.com>
Co-authored-by: Joshua Wallace <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: jncfa <20467009+jncfa@users.noreply.github.com>
Co-authored-by: Ryan <ryanfriedman5410+github@gmail.com>
Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com>
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Co-authored-by: Kino <cybao292261@163.com>

* Use ament_export_targets for all targets (ros-navigation#4112)

* Matches new internal ALIAS targets
* Use ALIAS targets for all internal linkage
* Remove unnecessary calls to ament_target_dependencies in test code
* Export includes in proper folders for overlays in colcon

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Update default recommendation from Obstacles to Cost critic in MPPI (ros-navigation#4170)

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* fix merge conflict

* Revert "Add velocity based polygon (ros-navigation#3708)"

This reverts commit a3ed745.

* custom backported version of cost critic inscribed cost

---------

Signed-off-by: ARK3r <kermani.areza@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: Felix <felix@fzeltner.de>
Signed-off-by: Antonio Park <kaypaklabs@gmail.com>
Signed-off-by: Alexander Mock <amock@uos.de>
Signed-off-by: Kyungsik Park <dkalxkwl@gmail.com>
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>
Signed-off-by: nelson <kaichie.lee@gmail.com>
Signed-off-by: asarazin <anaelle.sarazin@robocc.com>
Signed-off-by: gg <josho.wallace@gmail.com>
Signed-off-by: cybaol <cybao292261@163.com>
Signed-off-by: nfriedrich00 <69539098+nfriedrich00@users.noreply.github.com>
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com>
Co-authored-by: Reza Kermani <kermani.areza@gmail.com>
Co-authored-by: GoesM <130988564+GoesM@users.noreply.github.com>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: bi0ha2ard <bi0ha2ard@users.noreply.github.com>
Co-authored-by: Felix <felix@fzeltner.de>
Co-authored-by: Antonio Park <kaypaklabs@gmail.com>
Co-authored-by: Alexander Mock <amock@uos.de>
Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com>
Co-authored-by: BriceRenaudeau <48433002+BriceRenaudeau@users.noreply.github.com>
Co-authored-by: nelson <kaichie.lee@gmail.com>
Co-authored-by: anaelle-sw <63144493+anaelle-sw@users.noreply.github.com>
Co-authored-by: asarazin <anaelle.sarazin@robocc.com>
Co-authored-by: Joshua Wallace <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Kino <cybao292261@163.com>
Co-authored-by: nfriedrich00 <69539098+nfriedrich00@users.noreply.github.com>
Co-authored-by: Davide Faconti <davide.faconti@gmail.com>
Co-authored-by: jncfa <20467009+jncfa@users.noreply.github.com>
Co-authored-by: Ryan <ryanfriedman5410+github@gmail.com>
Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com>
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Marc-Morcos pushed a commit to Marc-Morcos/navigation2 that referenced this issue Jul 4, 2024
* nav2_controller: add loop rate log (ros-navigation#4171)

* update smac_planner README

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* added current controller loop rate logging

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* linting

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* uncrustify lint

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* Update nav2_controller/src/controller_server.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_controller/src/controller_server.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update nav2_controller/src/controller_server.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: ARK3r <kermani.areza@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* completely shutdown inital_pose_sub_ (ros-navigation#4176)

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* chore(nav2_behavior_tree): log actual wait period in bt_action_node (ros-navigation#4178)

Signed-off-by: Felix <felix@fzeltner.de>
Co-authored-by: Felix <felix@fzeltner.de>

* replace throw-error with error-log to avoid UAF mentioned in ros-navigation#4175 (ros-navigation#4180)

* replace throw-error with error-log to avoid UAF

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* fix typo

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* fix typos in description messages (ros-navigation#4188)

Signed-off-by: Antonio Park <kaypaklabs@gmail.com>

* AMCL: Set an initial guess by service call (ros-navigation#4182)

* Added initial guess service. Signed-off-by: Alexander Mock

Signed-off-by: Alexander Mock <amock@uos.de>

* - Removed added empty line
- Renamed initialGuessCallback to initialPoseReceivedSrv
- Added new line to SetInitialPose service definition
- Removed mutex from initialPoseReceived
- Cleanup service server

Signed-off-by: Alexander Mock <amock@uos.de>

* added whitespace

Signed-off-by: Alexander Mock <amock@uos.de>

* renamed initial pose service in callback bind

Signed-off-by: Alexander Mock <amock@uos.de>

---------

Signed-off-by: Alexander Mock <amock@uos.de>

* Move lines for pre-computation to outside a loop (ros-navigation#4191)

Signed-off-by: Kyungsik Park <dkalxkwl@gmail.com>

* Fix typo (ros-navigation#4196)

* Fix BT.CPP import

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* Update README.md

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* Update footprint iif changed (ros-navigation#4193)

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* fix missing param declare (ros-navigation#4203)

Signed-off-by: nelson <kaichie.lee@gmail.com>

* Revert "nav2_controller: add loop rate log (ros-navigation#4171)" (ros-navigation#4210)

This reverts commit 4737462.

* add polygon_subscribe_transient_local parameter in collision monitor (ros-navigation#4207)

Signed-off-by: asarazin <anaelle.sarazin@robocc.com>
Co-authored-by: asarazin <anaelle.sarazin@robocc.com>

* nav2_controller: add loop rate log (ros-navigation#4228)

* added current loop rate printout

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* remove empty line

Signed-off-by: ARK3r <kermani.areza@gmail.com>

---------

Signed-off-by: ARK3r <kermani.areza@gmail.com>

* bump to 1.2.7 for iron sync

* change pointer free order in amcl to avoid use-after-free bug mentioned in ros-navigation#4068 (ros-navigation#4070)

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* Allow path end pose deviation revive (ros-navigation#4065)

* Support stitching paths in compute path to poses

* Update nav2_planner/src/planner_server.cpp

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

* Rename parameter to allow_path_through_poses_goal_deviation

* Fix description

* restore nav2_params

* missing whitespace

* lint fix

* removed parameter

Signed-off-by: gg <josho.wallace@gmail.com>

* Update planner_server.hpp

* Update planner_server.cpp

---------

Signed-off-by: gg <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Change costmap_queue to shared library (ros-navigation#4072)

Signed-off-by: cybaol <cybao292261@163.com>

* free `map_sub_` before `map_free(map_)` to avoid UAF&&NullPtr bug mentioned in ros-navigation#4078 (ros-navigation#4079)

* free `map_sub_` before `map_free(map_)`

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* reformat

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* Fix typo (ros-navigation#4087)

Fix AttributeError: 'BasicNavigator' object has no attribute '_BasicNavigator__getPathThroughPosesImpl'

Signed-off-by: nfriedrich00 <69539098+nfriedrich00@users.noreply.github.com>

* Add velocity based polygon (ros-navigation#3708)

* add velocity based polygon

* fix header, copyright and variable name change

* optimise polygon update

* optimise duplicated code with setPolygonShape

* add warning log for uncovered speed

* update feedback

* rename polygon velocity to velocity polygon

* cleanup

* fix typo

* add dynamic support for velocity polygon

* wrap try catch for getting parameters

* update naming and linting

* use switch case

* Revert "use switch case"

This reverts commit 1230ede.

* fix proper return for invalid parameters

* remove topic parameter for velocity polygon

* fix formatting manually

* continue if points are not defined

* rewrite velocity polygon with polygon base class

Signed-off-by: nelson <kaichie.lee@gmail.com>

* update review comments and description

Signed-off-by: nelson <kaichie.lee@gmail.com>

* add VelocityPolygon to detector node

Signed-off-by: nelson <kaichie.lee@gmail.com>

* review update

Signed-off-by: nelson <kaichie.lee@gmail.com>

* fix cpplint

Signed-off-by: nelson <kaichie.lee@gmail.com>

* Update nav2_collision_monitor/src/velocity_polygon.cpp

Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: nelson <kaichie.lee@gmail.com>

* add velocity polygon tests

Signed-off-by: nelson <kaichie.lee@gmail.com>

* fix cpplint

Signed-off-by: nelson <kaichie.lee@gmail.com>

* add in-line comment

Signed-off-by: nelson <kaichie.lee@gmail.com>

* fix push back

Signed-off-by: nelson <kaichie.lee@gmail.com>

* minor change and update README

Signed-off-by: nelson <kaichie.lee@gmail.com>

* update README

Signed-off-by: nelson <kaichie.lee@gmail.com>

---------

Signed-off-by: nelson <kaichie.lee@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* avoid implicit type case (ros-navigation#4098)

* adding progress checker selector BT node (ros-navigation#4109)

* New MPPI Cost Critic (Contrib: Brice Renaudeau) (ros-navigation#4090)

* Share code

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Update inflation_cost_critic.hpp

- copyright
- ifndef

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* fix lint cpp

- extra space

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Fix Smac Planner confined collision checker  (ros-navigation#4055)

* Update collision_checker.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Fix tests

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update test_a_star.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Prevent analytic expansions from shortcutting Smac Planner feasible paths (ros-navigation#3962)

* a potential solution to smac shortcutting

* costmap reoslution

* some fixes

* completed prototype

* some fixes for collision detection and performance

* completing shortcutting fix

* updating tests

* adding readme

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* change pointer free order in amcl to avoid use-after-free bug mentioned in ros-navigation#4068 (ros-navigation#4070)

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* [Smac Planner] Massive Improvement of Behavior for SE2 Footprint Checking (ie non-circular robots) In Confined Settings (ros-navigation#4067)

* prototype to test SE2 footprint H improvements

* some fixes

* fixed

* invert logic

* Working final prototype to be tested

* complete unit test conversions

* Update inflation_layer.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Adding new Smac paper to readme

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Update README.md

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* [behavior_tree] don't repeat yourself in "blackboard->set" (ros-navigation#4074)

* don't repeat yourself: templates in tests

Signed-off-by: Davide Faconti <davide.faconti@gmail.com>

* misse change

Signed-off-by: Davide Faconti <davide.faconti@gmail.com>

---------

Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Allow path end pose deviation revive (ros-navigation#4065)

* Support stitching paths in compute path to poses

* Update nav2_planner/src/planner_server.cpp

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

* Rename parameter to allow_path_through_poses_goal_deviation

* Fix description

* restore nav2_params

* missing whitespace

* lint fix

* removed parameter

Signed-off-by: gg <josho.wallace@gmail.com>

* Update planner_server.hpp

* Update planner_server.cpp

---------

Signed-off-by: gg <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Updated code to use getInflationLayer() method (ros-navigation#4076)

* updated code to use getInflationLayer method

Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>

* Fix linting

Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>

---------

Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* 1594 twist stamped publisher (ros-navigation#4077)

* Add TwistStamped to controller_server via TwistPublisher util

* Add a new util class for publishing either Twist or TwistStamped
* Add a new parameter for selecting to stamp the twist data
* Consume TwistPublisher in nav2_controller

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix small issues

* Unused variable
* Incorrect doxygen

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove stored node and assert

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add tests for node

* Facing timeout even though it does the same thing as velocity smoother test

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add missing spin call to solve timeout

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix copyright (me instead of intel)

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add full test coverage with subscriber

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove unused rclcpp fixture

* Can't use it due to needing to join the pub thread after rclcpp shuts down

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistStamped in nav2_behaviors

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistStamped in collision monitor node

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add TwistStamped readme updates to velocity smoother

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add TwistSubscriber implementation

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix syntax errors

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in test_velocity_smoother

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in assisted_teleop

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in collision monitor node

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use TwistSubscriber in velocity smoother

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove unused code

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* add timestamp and frame_id to TwistStamped message

* Add missing utility include

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Document TwistPublisher and TwistSubscriber usage

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Use pass-by-reference

* Instead of std::move(std::unique_ptr<TwistStamped>)

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Finish twist subscriber tests

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Add other constructor and docs

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Fix linter issues

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Manually fix paren alignment

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove GSoC reference

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Document twist bool param in README

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Handle twistPublisher in collision monitor

* Implement behavior in the stamped callback
* Unstamped callback calls the stamped callback
* Switch to unique pointer for publisher

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Convert to using TwistStamped interally

* Use incoming twistStamped timestamp if available
* Convert all internal representations to use TwistStamped

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove nav2_util usage instructions

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Remove unused Twist only subscriber

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* More linter fixes

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Prefer working with unique_ptr for cmd_vel

* This makes it easier to switch to std::move instead of dereference on
  publish

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Completing twist stamped migration

* shared to unique ptr

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* twist add stamps and properly propogated

* nav2_util: fix for compiling with clang

- Resolve error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]

Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>

---------

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Change costmap_queue to shared library (ros-navigation#4072)

Signed-off-by: cybaol <cybao292261@163.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>

* fix include of hpp

Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com>

* inflation cost optmiizations and cleanu

* rename, add defaults, and docs

* smoke test addition

* lintg

* normalize weight

* update readme

* increment cache

* Update cost_critic.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update cost_critic.cpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Brice <brice.renaudeau@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Signed-off-by: gg <josho.wallace@gmail.com>
Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: cybaol <cybao292261@163.com>
Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com>
Co-authored-by: BriceRenaudeau <48433002+BriceRenaudeau@users.noreply.github.com>
Co-authored-by: GoesM <130988564+GoesM@users.noreply.github.com>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: Davide Faconti <davide.faconti@gmail.com>
Co-authored-by: Joshua Wallace <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: jncfa <20467009+jncfa@users.noreply.github.com>
Co-authored-by: Ryan <ryanfriedman5410+github@gmail.com>
Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com>
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Co-authored-by: Kino <cybao292261@163.com>

* Use ament_export_targets for all targets (ros-navigation#4112)

* Matches new internal ALIAS targets
* Use ALIAS targets for all internal linkage
* Remove unnecessary calls to ament_target_dependencies in test code
* Export includes in proper folders for overlays in colcon

Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>

* Update default recommendation from Obstacles to Cost critic in MPPI (ros-navigation#4170)

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* fix merge conflict

* Revert "Add velocity based polygon (ros-navigation#3708)"

This reverts commit a3ed745.

* custom backported version of cost critic inscribed cost

---------

Signed-off-by: ARK3r <kermani.areza@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: Felix <felix@fzeltner.de>
Signed-off-by: Antonio Park <kaypaklabs@gmail.com>
Signed-off-by: Alexander Mock <amock@uos.de>
Signed-off-by: Kyungsik Park <dkalxkwl@gmail.com>
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>
Signed-off-by: nelson <kaichie.lee@gmail.com>
Signed-off-by: asarazin <anaelle.sarazin@robocc.com>
Signed-off-by: gg <josho.wallace@gmail.com>
Signed-off-by: cybaol <cybao292261@163.com>
Signed-off-by: nfriedrich00 <69539098+nfriedrich00@users.noreply.github.com>
Signed-off-by: Davide Faconti <davide.faconti@gmail.com>
Signed-off-by: Jose Faria <20467009+jncfa@users.noreply.github.com>
Signed-off-by: Ryan Friedman <ryanfriedman5410+github@gmail.com>
Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: Brice Renaudeau <brice.renaudeau@gmail.com>
Co-authored-by: Reza Kermani <kermani.areza@gmail.com>
Co-authored-by: GoesM <130988564+GoesM@users.noreply.github.com>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: bi0ha2ard <bi0ha2ard@users.noreply.github.com>
Co-authored-by: Felix <felix@fzeltner.de>
Co-authored-by: Antonio Park <kaypaklabs@gmail.com>
Co-authored-by: Alexander Mock <amock@uos.de>
Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com>
Co-authored-by: BriceRenaudeau <48433002+BriceRenaudeau@users.noreply.github.com>
Co-authored-by: nelson <kaichie.lee@gmail.com>
Co-authored-by: anaelle-sw <63144493+anaelle-sw@users.noreply.github.com>
Co-authored-by: asarazin <anaelle.sarazin@robocc.com>
Co-authored-by: Joshua Wallace <josho.wallace@gmail.com>
Co-authored-by: pepisg <pedro.gonzalez@eia.edu.co>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Kino <cybao292261@163.com>
Co-authored-by: nfriedrich00 <69539098+nfriedrich00@users.noreply.github.com>
Co-authored-by: Davide Faconti <davide.faconti@gmail.com>
Co-authored-by: jncfa <20467009+jncfa@users.noreply.github.com>
Co-authored-by: Ryan <ryanfriedman5410+github@gmail.com>
Co-authored-by: pedro-fuoco <pedrofuoco6@gmail.com>
Co-authored-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Signed-off-by: MarcM0 <marc.morcos9@gmail.com>
Manos-G pushed a commit to Manos-G/navigation2 that referenced this issue Aug 1, 2024
…gation#4175 (ros-navigation#4180)

* replace throw-error with error-log to avoid UAF

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

* fix typo

Signed-off-by: GoesM <GoesM@buaa.edu.cn>

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
RBT22 pushed a commit to EnjoyRobotics/navigation2 that referenced this issue Sep 26, 2024
…gation#4175 (ros-navigation#4180) (ros-navigation#4305)

* replace throw-error with error-log to avoid UAF



* fix typo



---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
emilnovak pushed a commit to EnjoyRobotics/navigation2 that referenced this issue Sep 27, 2024
* replace throw-error with error-log to avoid UAF mentioned in ros-navigation#4175 (ros-navigation#4180) (ros-navigation#4305)

* replace throw-error with error-log to avoid UAF



* fix typo



---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>

* Cherry-pick from 15c9be0 (ros-navigation#4317)

Convert all wall timers and wall rates to ROS clock respecting rates and timers (ros-navigation#4000)

* Convert all wall timers and wall rates to ROS clock respecting rates and timers

* linty mclint face

* WPF wait plugin respect time

* move duration metrics to use local clocks

* bumping version for cache to break it

* complete timing refactor

* remove old variable

* Add dynamic parameter (ros-navigation#4319)

To fix ros-navigation#4315

Signed-off-by: Huy Nguyen Van <34271857+Huyhust13@users.noreply.github.com>

* Humble release 11: May 23, 2024 (ros-navigation#4365)

* Scale cost critic's weight when dynamically updated (ros-navigation#4246)

* Scale cost critic's weight when dynamically updated

Signed-off-by: pepisg <pedro.gonzalez@eia.edu.co>

* sign off

Signed-off-by: pepisg <pedro.gonzalez@eia.edu.co>

---------

Signed-off-by: pepisg <pedro.gonzalez@eia.edu.co>

* Add expanding the ~/ to the full home dir of user in the path to the map yaml.  (ros-navigation#4258)

* Add user home expander of home sequence

Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>

* Add passing home dir as string instead of const char*

Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>

* Add docs

Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>

* Fix function declaration

Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>

* Fix linter issues

Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>

* Uncrustify linter

Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>

* Uncrustify linter

Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>

* Uncrustify linter: remove remove whitespace

Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>

---------

Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>

* Implement Critic for Velocity Deadband Hardware Constraints (ros-navigation#4256)

* Adding new velocity deadband critic.

- add some tests
- cast double to float
- add new features from "main" branch

- fix formating

- add cost test
- fix linting issue
- add README

Signed-off-by: Denis Sokolov <denis.sokolov48@gmail.com>

* Remove velocity deadband critic from defaults

Signed-off-by: Denis Sokolov <denis.sokolov48@gmail.com>

* remove old weight

Signed-off-by: Denis Sokolov <denis.sokolov48@gmail.com>

* fix velocity deadband critic tests

Signed-off-by: Denis Sokolov <denis.sokolov48@gmail.com>

---------

Signed-off-by: Denis Sokolov <denis.sokolov48@gmail.com>

* removing clearable layer param (unused) (ros-navigation#4280)

* provide message validation check API (ros-navigation#4276)

* provide validation_message.hpp

Signed-off-by: goes <GoesM@buaa.edu.cn>

* fix typo

Signed-off-by: goes <GoesM@buaa.edu.cn>

* add test_validation_messages.cpp

Signed-off-by: goes <GoesM@buaa.edu.cn>

* change include-order

Signed-off-by: goes <GoesM@buaa.edu.cn>

* reformat

Signed-off-by: goes <GoesM@buaa.edu.cn>

* update test

Signed-off-by: goes <GoesM@buaa.edu.cn>

---------

Signed-off-by: goes <GoesM@buaa.edu.cn>
Co-authored-by: goes <GoesM@buaa.edu.cn>

* Add footprint clearing for static layer (ros-navigation#4282)

* Add footprint clearing for static layer

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* fix flckering

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* Fix ros-navigation#4268 (ros-navigation#4296)

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Update README.md of nav2_bt_navigator (ros-navigation#4309)

Update link to docs

Signed-off-by: João Britto <cbn.joao@gmail.com>

* Fix undefined symbols in `libpf_lib.so` (ros-navigation#4312)

When I build `nav2_amcl` with `-Wl,--no-undefined` I noticed
`libpf_lib.so` has undefined symbols. This PR correctly links
`libpf_lib.so` to `libm` so all symbols can be found.

You can verify this by executing the following command:
```
ldd -r ./build/nav2_amcl/src/pf/libpf_lib.so
	linux-vdso.so.1 (0x00007ffd1f8c0000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000074e909a00000)
	/lib64/ld-linux-x86-64.so.2 (0x000074e909e60000)
undefined symbol: ceil	(./build/nav2_amcl/src/pf/libpf_lib.so)
undefined symbol: atan2	(./build/nav2_amcl/src/pf/libpf_lib.so)
undefined symbol: sin	(./build/nav2_amcl/src/pf/libpf_lib.so)
undefined symbol: hypot	(./build/nav2_amcl/src/pf/libpf_lib.so)
undefined symbol: cos	(./build/nav2_amcl/src/pf/libpf_lib.so)
undefined symbol: log	(./build/nav2_amcl/src/pf/libpf_lib.so)
undefined symbol: sqrt	(./build/nav2_amcl/src/pf/libpf_lib.so)
undefined symbol: floor	(./build/nav2_amcl/src/pf/libpf_lib.so)
```

Signed-off-by: Ramon Wijnands <ramon.wijnands@nobleo.nl>

* msg validation check for `/initialpose`  in `nav2_amcl` (ros-navigation#4301)

* add validation check for PoseWithCovarianceStamped

Signed-off-by: goes <GoesM@buaa.edu.cn>

* remove rebundant check before

Signed-off-by: goes <GoesM@buaa.edu.cn>

* reformat

Signed-off-by: goes <GoesM@buaa.edu.cn>

* typo fixed

Signed-off-by: goes <GoesM@buaa.edu.cn>

* change the type-name

Signed-off-by: goes <GoesM@buaa.edu.cn>

* update test

Signed-off-by: goes <GoesM@buaa.edu.cn>

* reformat

Signed-off-by: goes <GoesM@buaa.edu.cn>

* .

Signed-off-by: goes <GoesM@buaa.edu.cn>

* add comment

Signed-off-by: goes <GoesM@buaa.edu.cn>

* update comment

Signed-off-by: goes <GoesM@buaa.edu.cn>

* change header

Signed-off-by: goes <GoesM@buaa.edu.cn>

* update test

Signed-off-by: goes <GoesM@buaa.edu.cn>

* typo fixed

Signed-off-by: goes <GoesM@buaa.edu.cn>

---------

Signed-off-by: goes <GoesM@buaa.edu.cn>
Co-authored-by: goes <GoesM@buaa.edu.cn>

* 4320: Changed precision of calculations of the HybridNode MotionTable::getClosestAngularBin. (ros-navigation#4324)

Signed-off-by: Krzysztof Pawełczyk <k.t.pawelczyk@gmail.com>
Co-authored-by: Krzysztof Pawełczyk <kpawelczyk@autonomous-systems.pl>

* [LifecycleNode] add bond_heartbeat_period (ros-navigation#4342)

* add bond_heartbeat_period

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>

* lint

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>

---------

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>

* Update path_longer_on_approach.cpp (ros-navigation#4344)

Fix the bug that isPathUpdated function will return false for the reason that it compare the timestaped between new path and old path's last pose

Signed-off-by: StetroF <120172218+StetroF@users.noreply.github.com>

* [LifecycleManagerClient] clean set_initial_pose and navigate_to_pose (ros-navigation#4346)

Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>

* Move projectState after getPointsInside (ros-navigation#4356)

* Modify test to check fix

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* Add static polygon check before simulation

Signed-off-by: Brice <brice.renaudeau@gmail.com>

---------

Signed-off-by: Brice <brice.renaudeau@gmail.com>

* adding final pose in analytic expansion to check (ros-navigation#4353)

* fix sync merge conflicts

* bump humble to 1.1.15 for release

* Revert "[LifecycleNode] add bond_heartbeat_period (ros-navigation#4342)"

This reverts commit 6e44178.

---------

Signed-off-by: pepisg <pedro.gonzalez@eia.edu.co>
Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>
Signed-off-by: Denis Sokolov <denis.sokolov48@gmail.com>
Signed-off-by: goes <GoesM@buaa.edu.cn>
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: João Britto <cbn.joao@gmail.com>
Signed-off-by: Ramon Wijnands <ramon.wijnands@nobleo.nl>
Signed-off-by: Krzysztof Pawełczyk <k.t.pawelczyk@gmail.com>
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Signed-off-by: StetroF <120172218+StetroF@users.noreply.github.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Wiktor Bajor <69388767+Wiktor-99@users.noreply.github.com>
Co-authored-by: Sokolov Denis <52282102+perchess@users.noreply.github.com>
Co-authored-by: GoesM <130988564+GoesM@users.noreply.github.com>
Co-authored-by: goes <GoesM@buaa.edu.cn>
Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com>
Co-authored-by: João Britto <cbn.joao@gmail.com>
Co-authored-by: Ramon Wijnands <ramon.wijnands@nobleo.nl>
Co-authored-by: AzaelCicero <k.t.pawelczyk@gmail.com>
Co-authored-by: Krzysztof Pawełczyk <kpawelczyk@autonomous-systems.pl>
Co-authored-by: Guillaume Doisy <doisyg@users.noreply.github.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: StetroF <120172218+StetroF@users.noreply.github.com>
Co-authored-by: BriceRenaudeau <48433002+BriceRenaudeau@users.noreply.github.com>

* adding mutex lock around map resizing due to dynamic parameter changes and associated processes (ros-navigation#4373) (ros-navigation#4378)

(cherry picked from commit b0abc78)

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

* Make BT nodes have configurable wait times (Backport ros-navigation#3960 ros-navigation#4178 ros-navigation#4203) (ros-navigation#4409)

* WIP: Make BT nodes have configurable wait times. (ros-navigation#3960)

* Make BT nodes have configurable wait times.

Previous solution provided hardcoded 1s value.
Right now the value can be configured for BT
Action, Cancel and Service nodes.

[ros-navigation#3920]

Signed-off-by: Adam Galecki <embeddedadam@gmail.com>

* Make BT nodes have configurable wait times.

Previous solution provided hardcoded 1s value.
Right now the value can be configured for BT
Action, Cancel and Service nodes.

[ros-navigation#3920]

Signed-off-by: Adam Galecki <embeddedadam@gmail.com>

* Fix typos, linting errors and value type from float to int

* Fix extra underscores

* Fix extra underscore

* Update unit tests with blackboard parameter

Signed-off-by: Adam Galecki <embeddedadam@gmail.com>

* Fix formatting errors

Signed-off-by: Adam Galecki <embeddedadam@gmail.com>

* Update system tests to match new parameter

Signed-off-by: Adam Galecki <embeddedadam@gmail.com>

---------

Signed-off-by: Adam Galecki <embeddedadam@gmail.com>
Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>

* chore(nav2_behavior_tree): log actual wait period in bt_action_node (ros-navigation#4178)

Signed-off-by: Felix <felix@fzeltner.de>
Co-authored-by: Felix <felix@fzeltner.de>
Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>

* fix missing param declare (ros-navigation#4203)

Signed-off-by: nelson <kaichie.lee@gmail.com>
Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>

* Fix error messages (ros-navigation#4411)

Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>

---------

Signed-off-by: Adam Galecki <embeddedadam@gmail.com>
Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>
Signed-off-by: Felix <felix@fzeltner.de>
Signed-off-by: nelson <kaichie.lee@gmail.com>
Co-authored-by: Adam Gałecki <73710544+embeddedadam@users.noreply.github.com>
Co-authored-by: bi0ha2ard <bi0ha2ard@users.noreply.github.com>
Co-authored-by: Felix <felix@fzeltner.de>
Co-authored-by: nelson <kaichie.lee@gmail.com>

* Enable reloading BT xml file with same name (ros-navigation#4209) (ros-navigation#4422)

* Let BtActionServer overwrite xml

* Make a ROS parameter for it

* Rename flag to always reload BT xml file

---------

Signed-off-by: Johannes Huemer <johannes.huemer@ait.ac.at>
Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>
Co-authored-by: Johannes Huemer <johannes.huemer@ait.ac.at>

* fix bug mentioned in ros-navigation#3958 (ros-navigation#3972) (ros-navigation#4463)

* bug fixed

* add space

* Update planner_server.cpp

* add space for code style

* add childLifecycleNode mode to costmap_2d_ros

* add childLifecycleNode mode to costmap_2d_ros

* add childLifecycleNode mode to costmap_2d_ros

* add childLifecycleNode mode in costmap_2d_ros

* add childLifecycleNode mode in costmap_2d_ros

* add childLifecycleNode mode in costmap_2d_ros

* add ChildLifecycleNode mode in costmap_2d_ros

* NodeOption: is_lifecycle_follower_

* NodeOption: is_lifecycle_follower_

* fit to NodeOption: is_lifecycle_follower_

* NodeOption: is_lifecycle_follower_

* fit to NodeOption: is_lifecycle_follower

* fit to NodeOption: is_lifecycle_follower

* fit reorder Werror

* fix wrong use of is_lifecycle_follower

* remove blank line

* NodeOption: is_lifecycle_follower_

* NodeOption: is_lifecycle_follower_

* Add files via upload

* NodeOption: is_lifecycle_follower_

* NodeOption:is_lifecycle_follower_

* NodeOption:is_lifecycle_follower

* NodeOption:is_lifecycle_follower

* NodeOption:is_lifecycle_follower

* change default

* add NodeOption for costmap_2d_ros

* add node options for costmap2dros as an independent node

* code style reformat

* fit to NodeOption of Costmap2DROS

* fit to NodeOption of Costmap2DROS

* fit to NodeOption of Costmap2DROS

* Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp



* Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp



* Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp



* changes

* comment changes

* change get_parameter into =false

* comment modification

* missing line

* Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp

* Update nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp

* delete last line

* change lifecycle_test fit to NodeOption

---------

Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* bt_service_node and bt_action_node: Don't block BT loop (backport ros-navigation#4214) (ros-navigation#4408) (ros-navigation#4475)

* bt_service_node and bt_action_node: Don't block BT loop (ros-navigation#4214)

* Set smaller timeout for service node



* Fix timeout calculation for service node



* Add a feasible timeout also for action node



---------



* Increasing test count from timeout handling changes (ros-navigation#4234)



---------

Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Behavior tree node for extracting pose from path (ros-navigation#4518) (ros-navigation#4525)

* add get pose from path action

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>

* cleanup from PR suggestions

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>

* Updates for main compatibility

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>

* Lint and build fix

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>

* More Lint and warnings

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>

* More Lint and build

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>

* remove code left over from older file

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>

* fix test blackboard var name

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>

* only populate pose frame if empty

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>

* lint

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>

---------

Signed-off-by: MarcM0 <marc.morcos9@gmail.com>
(cherry picked from commit 12a9c1d)

Co-authored-by: Marc Morcos <30278842+MarcM0@users.noreply.github.com>

* Make ros-navigation#4525 compile on humble (ros-navigation#4526)

* Make it compile on humble

Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>

* Remove formatting

Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>

---------

Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>

* Fix backward motion for graceful controller (ros-navigation#4527) (ros-navigation#4566)

* Fix backward motion for graceful controller

Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

* Update smooth_control_law.cpp

Signed-off-by: Alberto Tudela <ajtudela@gmail.com>

---------

Signed-off-by: Alberto Tudela <ajtudela@gmail.com>
(cherry picked from commit d1ad640)

Co-authored-by: Alberto Tudela <ajtudela@gmail.com>

* nav2_collision_monitor dynamic parameters polygon and source enabled for Humble (ros-navigation#4615)

* Copy modification from c2d84df into humble collision_monitor for dynamic parameter enabled in polygon

* Add the enabled dynamic parameter for source. Signed-off-by: Enzo Ghisoni <enzo.ghisoni@hotmail.fr>

* Start backport action_state_ declaration in collision_monitor_node_test.cpp

Signed-off-by: EnzoGhisoni <enzo.ghisoni@botronics.be>

---------

Signed-off-by: EnzoGhisoni <enzo.ghisoni@botronics.be>
Co-authored-by: EnzoGhisoni <enzo.ghisoni@botronics.be>

* Humble release 12: August 23 (ros-navigation#4644)

* Add configure and cleanup transitions to lifecycle manager and client (ros-navigation#4371)

Signed-off-by: Joni Pöllänen <joni.pollanen@karelics.fi>

* [RotationShimController] Rotate to goal heading (ros-navigation#4332)

When arriving in the goal xy tolerance, the rotation shim controller
takes back the control to command the robot to rotate in the goal
heading orientation.

The initial goal of the rotationShimController was to rotate the robot
at the beginning of a navigation towards the paths orientation because
some controllers are not good at performing in place rotations. For the
same reason, the rotationShimController should be able to rotate the
robot towards the goal heading.

Signed-off-by: Antoine Gennart <gennart.antoine@gmail.com>

* [RotationShimController] Fix test for rotate to goal heading (ros-navigation#4289) (ros-navigation#4391)

* Fix rotate to goal heading tests

Signed-off-by: Antoine Gennart <gennartan@disroot.org>

* reset laser_scan_filter before reinit (ros-navigation#4397)

Signed-off-by: goes <GoesM@buaa.edu.cn>
Co-authored-by: goes <GoesM@buaa.edu.cn>

* Warn if inflation_radius_ < inscribed_radius_ (ros-navigation#4423)

* Warn if inflation_radius_ < inscribed_radius_

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* convert to error

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

---------

Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>

* chore: cleanup ros1 leftovers (ros-navigation#4446)

Signed-off-by: Rein Appeldoorn <rein.appeldoorn@nobleo.nl>

* precomputeDistanceHeuristic is now computed once (ros-navigation#4451)

Signed-off-by: Vincent Belpois <vincent.belpois@gmail.com>
Co-authored-by: SiddharthaUpase <s1dupase34@gmail.com>

* shutdown services in destructor of `ClearCostmapService` (ros-navigation#4495)

Signed-off-by: GoesM_server <GoesM@buaa.edu.cn>
Co-authored-by: GoesM_server <GoesM@buaa.edu.cn>

* fix(nav2_costmap_2d): make obstacle layer not current on enabled toggle (ros-navigation#4507)

Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com>
Co-authored-by: Kemal Bektas <kemal.bektas@node-robotics.com>

* min_turning_r_ getting param fix (ros-navigation#4510)

* min_turning_r_ getting param fix

Signed-off-by: Ivan Radionov <i.a.radionov@gmail.com.com>

* Update nav2_mppi_controller/include/nav2_mppi_controller/motion_models.hpp

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Ivan Radionov <i.a.radionov@gmail.com.com>

---------

Signed-off-by: Ivan Radionov <i.a.radionov@gmail.com.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Ivan Radionov <i.a.radionov@gmail.com.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>

* Return out of map update if frames mismatch. Signed-off-by Joey Yang (ros-navigation#4517)

Signed-off-by: Joey Yang <joeyyang.ai@gmail.com>

* check nullptr in smoothPlan() (ros-navigation#4544)

* check nullptr in smoothPlan()

Signed-off-by: GoesM <goesm@buaa.edu.cn>

* code-style

Signed-off-by: GoesM <goesm@buaa.edu.cn>

* code-style

Signed-off-by: GoesM <goesm@buaa.edu.cn>

* simple change

Signed-off-by: GoesM <goesm@buaa.edu.cn>

---------

Signed-off-by: GoesM <goesm@buaa.edu.cn>
Co-authored-by: GoesM <goesm@buaa.edu.cn>

* bump to 1.1.15

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* Revert "Add configure and cleanup transitions to lifecycle manager and client (ros-navigation#4371)"

This reverts commit 06ec958.

* fix merge conflict with humble sync

* fix merge conflict with humble sync

---------

Signed-off-by: Joni Pöllänen <joni.pollanen@karelics.fi>
Signed-off-by: Antoine Gennart <gennart.antoine@gmail.com>
Signed-off-by: Antoine Gennart <gennartan@disroot.org>
Signed-off-by: goes <GoesM@buaa.edu.cn>
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Signed-off-by: Rein Appeldoorn <rein.appeldoorn@nobleo.nl>
Signed-off-by: Vincent Belpois <vincent.belpois@gmail.com>
Signed-off-by: GoesM_server <GoesM@buaa.edu.cn>
Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com>
Signed-off-by: Ivan Radionov <i.a.radionov@gmail.com.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: Joey Yang <joeyyang.ai@gmail.com>
Signed-off-by: GoesM <goesm@buaa.edu.cn>
Co-authored-by: Joni Pöllänen <jonipol@users.noreply.github.com>
Co-authored-by: Saitama <gennartan@users.noreply.github.com>
Co-authored-by: GoesM <130988564+GoesM@users.noreply.github.com>
Co-authored-by: goes <GoesM@buaa.edu.cn>
Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com>
Co-authored-by: Rein Appeldoorn <reinzor@gmail.com>
Co-authored-by: Vincent <46542431+VincidaB@users.noreply.github.com>
Co-authored-by: SiddharthaUpase <s1dupase34@gmail.com>
Co-authored-by: Kemal Bektas <34746077+bektaskemal@users.noreply.github.com>
Co-authored-by: Kemal Bektas <kemal.bektas@node-robotics.com>
Co-authored-by: Ivan Radionov <45877502+JJRedmond@users.noreply.github.com>
Co-authored-by: Ivan Radionov <i.a.radionov@gmail.com.com>
Co-authored-by: Joey Yang <joeyyang.ai@gmail.com>

* Fixing ros-navigation#4661: MPPI ackermann reversing taking incorrect sign sometimes (ros-navigation#4664) (ros-navigation#4668)

* Fixing ros-navigation#4661: MPPI ackermann reversing taking incorrect sign sometimes

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

* fixing unit test for type implicit cast

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>

---------

Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
(cherry picked from commit 7eb47d8)

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

---------

Signed-off-by: GoesM <GoesM@buaa.edu.cn>
Signed-off-by: Huy Nguyen Van <34271857+Huyhust13@users.noreply.github.com>
Signed-off-by: pepisg <pedro.gonzalez@eia.edu.co>
Signed-off-by: Wiktor Bajor <wiktorbajor1@gmail.com>
Signed-off-by: Denis Sokolov <denis.sokolov48@gmail.com>
Signed-off-by: goes <GoesM@buaa.edu.cn>
Signed-off-by: Tony Najjar <tony.najjar.1997@gmail.com>
Signed-off-by: Steve Macenski <stevenmacenski@gmail.com>
Signed-off-by: João Britto <cbn.joao@gmail.com>
Signed-off-by: Ramon Wijnands <ramon.wijnands@nobleo.nl>
Signed-off-by: Krzysztof Pawełczyk <k.t.pawelczyk@gmail.com>
Signed-off-by: Guillaume Doisy <guillaume@dexory.com>
Signed-off-by: StetroF <120172218+StetroF@users.noreply.github.com>
Signed-off-by: Brice <brice.renaudeau@gmail.com>
Signed-off-by: Adam Galecki <embeddedadam@gmail.com>
Signed-off-by: Christoph Froehlich <christoph.froehlich@ait.ac.at>
Signed-off-by: Felix <felix@fzeltner.de>
Signed-off-by: nelson <kaichie.lee@gmail.com>
Signed-off-by: Johannes Huemer <johannes.huemer@ait.ac.at>
Signed-off-by: EnzoGhisoni <enzo.ghisoni@botronics.be>
Signed-off-by: Joni Pöllänen <joni.pollanen@karelics.fi>
Signed-off-by: Antoine Gennart <gennart.antoine@gmail.com>
Signed-off-by: Antoine Gennart <gennartan@disroot.org>
Signed-off-by: Rein Appeldoorn <rein.appeldoorn@nobleo.nl>
Signed-off-by: Vincent Belpois <vincent.belpois@gmail.com>
Signed-off-by: GoesM_server <GoesM@buaa.edu.cn>
Signed-off-by: Kemal Bektas <kemal.bektas@node-robotics.com>
Signed-off-by: Ivan Radionov <i.a.radionov@gmail.com.com>
Signed-off-by: Joey Yang <joeyyang.ai@gmail.com>
Signed-off-by: GoesM <goesm@buaa.edu.cn>
Co-authored-by: GoesM <130988564+GoesM@users.noreply.github.com>
Co-authored-by: GoesM <GoesM@buaa.edu.cn>
Co-authored-by: Benjamin-Tan <tan.benjaminkx@gmail.com>
Co-authored-by: Huy Nguyen Van <34271857+Huyhust13@users.noreply.github.com>
Co-authored-by: Steve Macenski <stevenmacenski@gmail.com>
Co-authored-by: Pedro Alejandro González <71234974+pepisg@users.noreply.github.com>
Co-authored-by: Wiktor Bajor <69388767+Wiktor-99@users.noreply.github.com>
Co-authored-by: Sokolov Denis <52282102+perchess@users.noreply.github.com>
Co-authored-by: Tony Najjar <tony.najjar.1997@gmail.com>
Co-authored-by: João Britto <cbn.joao@gmail.com>
Co-authored-by: Ramon Wijnands <ramon.wijnands@nobleo.nl>
Co-authored-by: AzaelCicero <k.t.pawelczyk@gmail.com>
Co-authored-by: Krzysztof Pawełczyk <kpawelczyk@autonomous-systems.pl>
Co-authored-by: Guillaume Doisy <doisyg@users.noreply.github.com>
Co-authored-by: Guillaume Doisy <guillaume@dexory.com>
Co-authored-by: StetroF <120172218+StetroF@users.noreply.github.com>
Co-authored-by: BriceRenaudeau <48433002+BriceRenaudeau@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: Christoph Fröhlich <christophfroehlich@users.noreply.github.com>
Co-authored-by: Adam Gałecki <73710544+embeddedadam@users.noreply.github.com>
Co-authored-by: bi0ha2ard <bi0ha2ard@users.noreply.github.com>
Co-authored-by: Felix <felix@fzeltner.de>
Co-authored-by: nelson <kaichie.lee@gmail.com>
Co-authored-by: Johannes Huemer <johannes.huemer@ait.ac.at>
Co-authored-by: Marc Morcos <30278842+MarcM0@users.noreply.github.com>
Co-authored-by: Alberto Tudela <ajtudela@gmail.com>
Co-authored-by: Enzo Ghisoni <33607172+EnzoGhisoni@users.noreply.github.com>
Co-authored-by: EnzoGhisoni <enzo.ghisoni@botronics.be>
Co-authored-by: Joni Pöllänen <jonipol@users.noreply.github.com>
Co-authored-by: Saitama <gennartan@users.noreply.github.com>
Co-authored-by: Rein Appeldoorn <reinzor@gmail.com>
Co-authored-by: Vincent <46542431+VincidaB@users.noreply.github.com>
Co-authored-by: SiddharthaUpase <s1dupase34@gmail.com>
Co-authored-by: Kemal Bektas <34746077+bektaskemal@users.noreply.github.com>
Co-authored-by: Kemal Bektas <kemal.bektas@node-robotics.com>
Co-authored-by: Ivan Radionov <45877502+JJRedmond@users.noreply.github.com>
Co-authored-by: Ivan Radionov <i.a.radionov@gmail.com.com>
Co-authored-by: Joey Yang <joeyyang.ai@gmail.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

No branches or pull requests

2 participants