Closed mikaelarguedas closed 5 years ago
@mikaelarguedas ros-planning/navigation2#860 has been merged
Great! thanks @crdelsey for the update!
Note to self about current status:
Currently released version of navigation (0.2.2) does not work for the demo because of map issues. Release candidate 0.2.3 seems to fix the issue.
With the repos listed in this PR as of https://github.com/mikaelarguedas/tb3_demo/pull/1/commits/56711e0752276204ad43e58f4fde9a4a00341993 allow to run the turtlebot3 demo using Gazebo and the navigation stack (without SROS2).
Currently unable to get the demo working with SROS2.
https://github.com/mikaelarguedas/tb3_demo/pull/1/commits/d11964b1b19439f8ced5224701b994db5cac967b adds a policy file with most of the policies necessary to get it to launch without issue. A couple of wildcards have been put as I haven't been able to figure out yet the missing permissions for amcl
/ amcl_rclcpp_node
Even using wildcards for all nodes / all topics / all services, the demo doesn't work as amcl never receives the map when running with security. Need to check if it's related to QoS or the overhead of adding security on top of a pretty heavy system.
Edit: other changes I needed to get closer to working with sros2: https://github.com/ROBOTIS-GIT/turtlebot3/pull/456 https://github.com/ROBOTIS-GIT/turtlebot3_simulations/pull/82
Edit2: amcl nodes say they use sim time but this error message seems to indicate otherwise:
[amcl-3] [INFO] [amcl]: initialPoseReceived
[amcl-3] [INFO] [amcl]: Setting pose (171.360000): -0.396 -0.389 -0.007
[amcl-3] [WARN] [amcl]: Failed to transform initial pose in time (Lookup would require extrapolation into the future. Requested time 1564092905.38770 but the latest data is at time 171.36000, when looking up transform from frame [odom] to frame [base_footprint])
Other weird thing is that there are 2 amcl
nodes and one amcl_rclcpp_node
running so the error message may not come from the same node as the one responding to the ros2 param get /amcl use_sim_time
query
$ ros2 node list | grep amcl
/amcl_rclcpp_node
/amcl
/amcl
Other error message when the map is received and costmap displayed: [rviz2-9] [ERROR] [navigation_dialog_action_client]: NavigateToPose action server is not available. Is the initial pose set?
More fun stuff:
Navigation2 launch file doesn't pass the use_sim_time
launch file argument value to the spawned nodes
Failure was due to temporary nodes created by the nav stack. Took a bit of time to track them down but here is the list of nodes that need to be allowed on the network for the demo to run:
/_client_node
/_ros2cli # this one is for my debugging and not required
/amcl
/amcl_rclcpp_node
/bt_navigator
/bt_navigator_client_node
/bt_navigator_global_localization_client
/bt_navigator_rclcpp_node
/dwb_controller
/dwb_controller_rclcpp_node
/gazebo
/global_costmap
/global_costmap/global_costmap
/global_costmap/global_costmap_rclcpp_node
/global_costmap_client
/global_localization
/launch_ros
/lifecycle_manager
/lifecycle_managerservice_client
/local_costmap
/local_costmap/local_costmap
/local_costmap/local_costmap_rclcpp_node
/local_costmap_client
/map_server
/navfn_planner
/navfn_planner_GetCostmap_client
/navfn_planner_GetRobotPose_client
/navfn_planner_rclcpp_node
/navigation_dialog_action_client
/recoveries
/recovery_GetRobotPose_client
/robot_state_publisher
/rviz2
/transform_listener_impl
/turtlebot3_diff_drive
/turtlebot3_imu
/turtlebot3_joint_state
/turtlebot3_laserscan
/world_model
I used this command to create them with wildcards:
ros2 security generate_artifacts -k keystore -n /lifecycle_manager /navigation_dialog_action_client /navfn_planner_rclcpp_node /navfn_planner /global_costmap_client /gazebo /lifecycle_managerservice_client /dwb_controller_rclcpp_node /recovery_GetRobotPose_client /launch_ros /dwb_controller /turtlebot3_diff_drive /amcl_rclcpp_node /bt_navigator_rclcpp_node /robot_state_publisher /global_costmap /global_costmap/global_costmap_rclcpp_node /global_costmap/global_costmap /turtlebot3_laserscan /bt_navigator /map_server /world_model /local_costmap_client /transform_listener_impl /local_costmap /local_costmap/local_costmap_rclcpp_node /local_costmap/local_costmap /navfn_planner_GetRobotPose_client /recoveries /navfn_planner_GetCostmap_client /amcl /rviz2 /turtlebot3_imu /_ros2cli /turtlebot3_joint_state /bt_navigator_client_node /_client_node /global_localization /bt_navigator_global_localization_client
As @ruffsl was able to reproduce this demo with encryption enabled, I will merge this first version.
Improvements to the policy files and documentation will be done in follow-up PRs
FYI @thomas-moulard @olaldiko
Signed-off-by: Mikael Arguedas mikael.arguedas@gmail.com