ros-navigation / navigation2_tutorials Goto Github PK
View Code? Open in Web Editor NEWTutorial code referenced in https://docs.nav2.org/
Tutorial code referenced in https://docs.nav2.org/
I am trying to use the costmap filter demo but its unable to find some libraries
This was the command
ros2 launch nav2_costmap_filters_demo costmap_filter_info.launch.py params_file:=src/nav2_costmap_filters_demo/params/keepout_params.yaml mask:=/home/user/tmp/keepout_mask.yaml
This was the error i was facing
Task exception was never retrieved
future: <Task finished name='Task-2' coro=<LaunchService._process_one_event() done, defined at /opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py:274> exception=SubstitutionFailure("executable 'costmap_filter_info_server' not found on the libexec directory '/opt/ros/foxy/lib/nav2_map_server' ")>
Traceback (most recent call last):
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py", line 276, in _process_one_event
await self.__process_event(next_event)
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/launch_service.py", line 296, in __process_event
visit_all_entities_and_collect_futures(entity, self.__context))
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 45, in visit_all_entities_and_collect_futures
futures_to_return += visit_all_entities_and_collect_futures(sub_entity, context)
[Previous line repeated 1 more time]
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/visit_all_entities_and_collect_futures_impl.py", line 38, in visit_all_entities_and_collect_futures
sub_entities = entity.visit(context)
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/action.py", line 108, in visit
return self.execute(context)
File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/actions/node.py", line 426, in execute
ret = super().execute(context)
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/actions/execute_process.py", line 823, in execute
self.__expand_substitutions(context)
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/actions/execute_process.py", line 668, in __expand_substitutions
cmd = [perform_substitutions(context, x) for x in self.__cmd]
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/actions/execute_process.py", line 668, in <listcomp>
cmd = [perform_substitutions(context, x) for x in self.__cmd]
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in perform_substitutions
return ''.join([context.perform_substitution(sub) for sub in subs])
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/utilities/perform_substitutions_impl.py", line 26, in <listcomp>
return ''.join([context.perform_substitution(sub) for sub in subs])
File "/opt/ros/foxy/lib/python3.8/site-packages/launch/launch_context.py", line 197, in perform_substitution
return substitution.perform(self)
File "/opt/ros/foxy/lib/python3.8/site-packages/launch_ros/substitutions/executable_in_package.py", line 84, in perform
raise SubstitutionFailure(
launch.substitutions.substitution_failure.SubstitutionFailure: executable 'costmap_filter_info_server' not found on the libexec directory '/opt/ros/foxy/lib/nav2_map_server'
i am using ros2 foxy on ubuntu 20.04
Please help me solve this
I am trying to follow the sam_bot tutorial but got stuck at the robot_localization demo using ekf_node. Below is the error/warning when running
ros2 launch sam_bot_description display.launch.py
By running "ros2 run tf2_ros tf2_echo odom base_link", similar errors/warning occured. In rviz the odom franme seems to drift. I reinstalled ros2, navigation2 both binary and build from source...no luck. Anyone know what the problem is?... Thanks
[rviz2-6] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-6] at line 292 in /home/xxx/ros2_humble/src/ros2/geometry2/tf2/src/buffer_core.cpp
[ekf_node-5] Warning: TF_OLD_DATA ignoring data from the past for frame drivewhl_l_link at time 755.451000 according to authority Authority undetectable
[ekf_node-5] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[ekf_node-5] at line 292 in /home/xxx/ros2_humble/src/ros2/geometry2/tf2/src/buffer_core.cpp
[rviz2-6] Warning: TF_OLD_DATA ignoring data from the past for frame drivewhl_l_link at time 755.451000 according to authority Authority undetectable
[rviz2-6] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[rviz2-6] at line 292 in /home/xxx/ros2_humble/src/ros2/geometry2/tf2/src/buffer_core.cpp
[ekf_node-5] Warning: TF_OLD_DATA ignoring data from the past for frame drivewhl_r_link at time 755.461000 according to authority Authority undetectable
[ekf_node-5] Possible reasons are listed at http://wiki.ros.org/tf/Errors%20explained
[ekf_node-5] at line 292 in /home/xxx/ros2_humble/src/ros2/geometry2/tf2/src/buffer_core.cpp
[rviz2-6] Warning: TF_OLD_DATA ignoring data from the past for frame drivewhl_r_link at time 755.461000 according to authority Authority undetectable
I am follow the tutorials in the nav2: https://navigation.ros.org/setup_guides/sensors/setup_sensors.html ... and I am finding the pointcloud2 rotated in the rviz.
I double check copying the urdf from the link: https://github.com/ros-planning/navigation2_tutorials/blob/master/sam_bot_description/src/description/sam_bot_description.urdf and it really has shown the rotated pointcloud2 in the rviz.
I have been following along with this tutorial, and gotten to the section regarding visualization of costmaps. However, at this point, I run into 2 issues:
"
ros2 topic echo /global_costmap/costmap
header:
stamp:
sec: 1702383893
nanosec: 146251016
frame_id: map
info:
map_load_time:
sec: 0
nanosec: 0
resolution: 0.05000000074505806
width: 44
height: 36
origin:
position:
x: -1.1546438506086725
y: -0.6746192693179669
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.0
w: 1.0
"
After running "display.launch.py" it opens rviz2 and gazebo as expected, but after sometime the terminal starts outputting the following:
[rviz2-5] [INFO] [1702383769.153491354] [rviz2]: Message Filter dropping message: frame 'map' at time 1702383754.146 for reason 'discarding message because the queue is full'
[rviz2-5] [INFO] [1702383770.177533838] [rviz2]: Message Filter dropping message: frame 'map' at time 1702383755.146 for reason 'discarding message because the queue is full'
[rviz2-5] [INFO] [1702383772.160809140] [rviz2]: Message Filter dropping message: frame 'map' at time 1702383757.146 for reason 'discarding message because the queue is full'
[rviz2-5] [INFO] [1702383774.177586825] [rviz2]: Message Filter dropping message: frame 'map' at time 1702383758.146 for reason 'discarding message because the queue is full'
[rviz2-5] [INFO] [1702383775.168952119] [rviz2]: Message Filter dropping message: frame 'map' at time 1702383759.146 for reason 'discarding message because the queue is full'
[rviz2-5] [INFO] [1702383776.161561609] [rviz2]: Message Filter dropping message: frame 'map' at time 1702383761.146 for reason 'discarding message because the queue is full'
[rviz2-5] [INFO] [1702383777.153654436] [rviz2]: Message Filter dropping message: frame 'map' at time 1702383763.146 for reason 'discarding message because the queue is full'
Which is also represented by a drifting map frame in rviz i.e. the frame starts moving up the z-axis.
Any suggestions as to what this might be caused by?
Hello
I wanted to compile the package but I got the error as below.
What could have caused the error ?
Finished <<< turtlebot3 [0.39s]
--- stderr: nav2_gradient_costmap_plugin
/home/ieu/ros2_ws/src/navigation2_tutorials/nav2_gradient_costmap_plugin/src/gradient_layer.cpp: In member function ‘virtual void nav2_gradient_costmap_plugin::GradientLayer::onInitialize()’:
/home/ieu/ros2_ws/src/navigation2_tutorials/nav2_gradient_costmap_plugin/src/gradient_layer.cpp:70:21: error: ‘using SharedPtr = class std::shared_ptr<rclcpp_lifecycle::LifecycleNode>’ {aka ‘class std::shared_ptr<rclcpp_lifecycle::LifecycleNode>’} has no member named ‘lock’
70 | auto node = node_.lock();
| ^~~~
make[2]: *** [CMakeFiles/nav2_gradient_costmap_plugin_core.dir/build.make:63: CMakeFiles/nav2_gradient_costmap_plugin_core.dir/src/gradient_layer.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:105: CMakeFiles/nav2_gradient_costmap_plugin_core.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed <<< nav2_gradient_costmap_plugin [4.81s, exited with code 2]
Aborted <<< nav2_straightline_planner [5.00s]
Aborted <<< nav2_sms_recovery [5.30s]
I think we need to change the structure of this package.
I was following the turorial to try ekf on ros2 foxy. On launching display.launch.py
bot spawned in gazebo and rviz, and I can see the ekf topics but on echoing /odometry/filtered
there is no message being published. I checked and there is data is getting published on /demo/odom
and /demo/imu
.
I am running Ubuntu 20.04 and ros-foxy.
Here are the published topics:
/accel/filtered
/clock
/demo/cmd_vel
/demo/imu
/demo/odom
/diagnostics
/joint_states
/odometry/filtered
/parameter_events
/robot_description
/rosout
/set_pose
/tf
/tf_static
Ekf node info:
/ekf_filter_node
Subscribers:
/clock: rosgraph_msgs/msg/Clock
/demo/imu: sensor_msgs/msg/Imu
/demo/odom: nav_msgs/msg/Odometry
/parameter_events: rcl_interfaces/msg/ParameterEvent
/set_pose: geometry_msgs/msg/PoseWithCovarianceStamped
Publishers:
/accel/filtered: geometry_msgs/msg/AccelWithCovarianceStamped
/diagnostics: diagnostic_msgs/msg/DiagnosticArray
/odometry/filtered: nav_msgs/msg/Odometry
/parameter_events: rcl_interfaces/msg/ParameterEvent
/rosout: rcl_interfaces/msg/Log
/tf: tf2_msgs/msg/TFMessage
Service Servers:
/ekf_filter_node/describe_parameters: rcl_interfaces/srv/DescribeParameters
/ekf_filter_node/get_parameter_types: rcl_interfaces/srv/GetParameterTypes
/ekf_filter_node/get_parameters: rcl_interfaces/srv/GetParameters
/ekf_filter_node/list_parameters: rcl_interfaces/srv/ListParameters
/ekf_filter_node/set_parameters: rcl_interfaces/srv/SetParameters
/ekf_filter_node/set_parameters_atomically: rcl_interfaces/srv/SetParametersAtomically
/enable: std_srvs/srv/Empty
/set_pose: robot_localization/srv/SetPose
/toggle: robot_localization/srv/ToggleFilterProcessing
Service Clients:
Action Servers:
Action Clients:
Launch log:
1620618863.7946322 [INFO] [launch]: All log files can be found below /home/maaruf/.ros/log/2021-05-10-09-24-23-791827-maaruf-Strix-15-GL503GE-9948
1620618863.7947869 [INFO] [launch]: Default logging verbosity is set to INFO
1620618863.9245000 [INFO] [gazebo-1]: process started with pid [9951]
1620618863.9249437 [INFO] [robot_state_publisher-2]: process started with pid [9953]
1620618863.9251087 [INFO] [spawn_entity.py-3]: process started with pid [9955]
1620618863.9252398 [INFO] [ekf_node-4]: process started with pid [9957]
1620618863.9253635 [INFO] [rviz2-5]: process started with pid [9959]
1620618863.9446864 [robot_state_publisher-2] Parsing robot urdf xml string.
1620618863.9452262 [robot_state_publisher-2] The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia. As a workaround, you can add an extra dummy link to your URDF.
1620618863.9453862 [robot_state_publisher-2] Link base_footprint had 0 children
1620618863.9454966 [robot_state_publisher-2] Link front_caster had 0 children
1620618863.9455602 [robot_state_publisher-2] Link drivewhl_l_link had 0 children
1620618863.9456286 [robot_state_publisher-2] Link drivewhl_r_link had 0 children
1620618863.9457018 [robot_state_publisher-2] Link imu_link had 0 children
1620618863.9457703 [robot_state_publisher-2] [INFO] [1620618863.944830383] [robot_state_publisher]: got segment base_footprint
1620618863.9458444 [robot_state_publisher-2] [INFO] [1620618863.944961115] [robot_state_publisher]: got segment base_link
1620618863.9459641 [robot_state_publisher-2] [INFO] [1620618863.944977239] [robot_state_publisher]: got segment drivewhl_l_link
1620618863.9460473 [robot_state_publisher-2] [INFO] [1620618863.944983669] [robot_state_publisher]: got segment drivewhl_r_link
1620618863.9465437 [robot_state_publisher-2] [INFO] [1620618863.944988418] [robot_state_publisher]: got segment front_caster
1620618863.9466844 [robot_state_publisher-2] [INFO] [1620618863.944994314] [robot_state_publisher]: got segment imu_link
1620618865.6764433 [INFO] [spawn_entity.py-3]: process has finished cleanly [pid 9955]
Please let me know if more information is required about the issue.
@SteveMacenski
Hi ,
ros-navigation/navigation2@eff208e was introduced to execute tasks at waypoint arrivals. We now want to add a tutorial to help people understand how to build their own plugins using provided interface.
For this purpose the tutorial plugin does following;
subscribes to specified image topic
takes photos at waypoint arrivals and saves taken photos to a specified directory with stamp.
An initial work has been committed jediofgever@9b774af
I would like to get an rough feedback on code and styling then I will be happy to submit a PR with requested modifications
Have been tasked with creating a wrapper to use a specific controller on ros2 navigation stack.
Came across this tutorial that has been really helpfull on understanding how it works:
https://navigation.ros.org/plugin_tutorials/docs/writing_new_nav2controller_plugin.html
As a first step I'm trying to test this nav2_pure_pursuit_controller example, but can't get pass building.
Steps to reproduce:
colcon build --packages-select nav2
Output:
~/ros/navigation2_tutorials$ colcon build --packages-select nav2_pure_pursuit_controller
Starting >>> nav2_pure_pursuit_controller
--- stderr: nav2_pure_pursuit_controller
In file included from /opt/ros/foxy/include/class_loader/class_loader_core.hpp:57,
from /opt/ros/foxy/include/class_loader/class_loader.hpp:55,
from /opt/ros/foxy/include/class_loader/multi_library_class_loader.hpp:52,
from /opt/ros/foxy/include/pluginlib/class_loader.hpp:58,
from /opt/ros/foxy/include/nav2_costmap_2d/costmap_2d_ros.hpp:53,
from /opt/ros/foxy/include/nav2_core/controller.hpp:42,
from /home/diogoesa/ros/navigation2_tutorials/src/navigation2_tutorials/nav2_pure_pursuit_controller/include/nav2_pure_pursuit_controller/pure_pursuit_controller.hpp:15,
from /home/diogoesa/ros/navigation2_tutorials/src/navigation2_tutorials/nav2_pure_pursuit_controller/src/pure_pursuit_controller.cpp:14:
/opt/ros/foxy/include/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = nav2_pure_pursuit_controller::PurePursuitController; B = nav2_core::Controller]’:
/opt/ros/foxy/include/class_loader/meta_object.hpp:190:7: required from here
/opt/ros/foxy/include/class_loader/meta_object.hpp:192:12: error: invalid new-expression of abstract class type ‘nav2_pure_pursuit_controller::PurePursuitController’
192 | return new C;
| ^~~~~
In file included from /home/diogoesa/ros/navigation2_tutorials/src/navigation2_tutorials/nav2_pure_pursuit_controller/src/pure_pursuit_controller.cpp:14:
/home/diogoesa/ros/navigation2_tutorials/src/navigation2_tutorials/nav2_pure_pursuit_controller/include/nav2_pure_pursuit_controller/pure_pursuit_controller.hpp:23:7: note: because the following virtual functions are pure within ‘nav2_pure_pursuit_controller::PurePursuitController’:
23 | class PurePursuitController : public nav2_core::Controller
| ^~~~~~~~~~~~~~~~~~~~~
In file included from /home/diogoesa/ros/navigation2_tutorials/src/navigation2_tutorials/nav2_pure_pursuit_controller/include/nav2_pure_pursuit_controller/pure_pursuit_controller.hpp:15,
from /home/diogoesa/ros/navigation2_tutorials/src/navigation2_tutorials/nav2_pure_pursuit_controller/src/pure_pursuit_controller.cpp:14:
/opt/ros/foxy/include/nav2_core/controller.hpp:74:16: note: ‘virtual void nav2_core::Controller::configure(const SharedPtr&, std::string, const std::shared_ptr<tf2_ros::Buffer>&, const std::shared_ptr<nav2_costmap_2d::Costmap2DROS>&)’
74 | virtual void configure(
| ^~~~~~~~~
make[2]: *** [CMakeFiles/nav2_pure_pursuit_controller.dir/build.make:63: CMakeFiles/nav2_pure_pursuit_controller.dir/src/pure_pursuit_controller.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/nav2_pure_pursuit_controller.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed <<< nav2_pure_pursuit_controller [23.7s, exited with code 2]
Summary: 0 packages finished [24.1s]
1 package failed: nav2_pure_pursuit_controller
1 package had stderr output: nav2_pure_pursuit_controller
please share some resource related to the modifications needed to be done for foxy ros2
I am trying to use the straightline_planner plugin in ROS2 Foxy. I placed the straightline_planner in a separate workspace (not the main navigation2_ws) Building the package is successful.
I followed the tutorial and modified the nav2_params.yaml file in my navigation2_ws to use the straigline_planner as the global planner. Unfortunately when I start the example with:
$ ros2 launch nav2_bringup tb3_simulation_launch.py
there seems to be a problem with loading the new planner plugin.
I am not sure if the planner is not properly loaded or if the problem is with the straighline_planner itself (or the location of the package)? I also tried different variants of declaring the planner plugin in the yaml file. The simulation works, except that it is not possible to generate a path to the goal position, as the console output below shows. The planner-server complains that the planner is no valid planner.
I did modify the straightline_planner code. (More specifically, the configure() function was modified, and I am not sure how this effected the the planner code)
Thank you very much for your time !
Tutorial Code for the nav2_params.yaml file:
planner_server:
ros__parameters:
planner_plugin_types: ["nav2_straightline_planner/StraightLine"] # For Foxy and earlier
planner_plugin_ids: ["GridBased"] # For Foxy and earlier
plugins: ["GridBased"] # For Galactic and later
use_sim_time: True
GridBased:
plugin: nav2_straightline_planner/StraightLine # For Galactic and later
interpolation_resolution: 0.1
Using the suggested lines for Foxie and commenting out the lines for Galactic and later is not working at all, as this will lead to the usage of the default nav2_navfn_planner, completely ignoring the straighline_planner.
...
[lifecycle_manager-13] [INFO] [1612121985.772204302] [lifecycle_manager_navigation]: Managed nodes are active
[rviz2-4] [INFO] [1612121985.773500244] [rviz2]: Waiting for the lifecycle_manager_localization/is_active service...
[rviz2-4] [INFO] [1612121985.773628489] [rviz2]: Sending lifecycle_manager_localization/is_active request
[rviz2-4] [INFO] [1612121985.796956654] [rviz2]: Trying to create a map of size 384 x 384 using 1 swatches
[rviz2-4] Start navigation
[bt_navigator-11] [INFO] [1612121987.372087209] [bt_navigator]: Begin navigating from current location to (-1.61, 1.47)
[planner_server-9] [ERROR] [1612121987.374854305] [planner_server]: planner GridBased is not a valid planner. Planner names are: GridBased
[planner_server-9] [WARN] [1612121987.374901048] [planner_server]: Planning algorithm GridBased failed to generate a valid path to (-1.61, 1.47)
[planner_server-9] [WARN] [1612121987.374919063] [planner_server_rclcpp_node]: [compute_path_to_pose] [ActionServer] Aborting handle.
[planner_server-9] [INFO] [1612121987.394338651] [global_costmap.global_costmap]: Received request to clear entirely the global_costmap
[planner_server-9] [ERROR] [1612121987.395192696] [planner_server]: planner GridBased is not a valid planner. Planner names are: GridBased
[planner_server-9] [WARN] [1612121987.395233277] [planner_server]: Planning algorithm GridBased failed to generate a valid path to (-1.61, 1.47)
[planner_server-9] [WARN] [1612121987.395249987] [planner_server_rclcpp_node]: [compute_path_to_pose] [ActionServer] Aborting handle.
[controller_server-8] [INFO] [1612121987.404362275] [local_costmap.local_costmap]: Received request to clear entirely the local_costmap
[planner_server-9] [INFO] [1612121987.405222963] [global_costmap.global_costmap]: Received request to clear entirely the global_costmap
[recoveries_server-10] [INFO] [1612121987.405698346] [recoveries_server]: Attempting spin
[recoveries_server-10] [INFO] [1612121987.406445149] [recoveries_server]: Turning 1.57 for spin recovery.
[recoveries_server-10] [INFO] [1612121988.406905943] [recoveries_server]: spin running...
[recoveries_server-10] [INFO] [1612121989.206973602] [recoveries_server]: spin completed successfully
[recoveries_server-10] [INFO] [1612121989.234869369] [recoveries_server]: Attempting wait
[recoveries_server-10] [INFO] [1612121990.235019975] [recoveries_server]: wait running...
[recoveries_server-10] [INFO] [1612121991.234981786] [recoveries_server]: wait running...
[recoveries_server-10] [INFO] [1612121992.234988247] [recoveries_server]: wait running...
[rviz2-4] [INFO] [1612121992.764902519] [rviz2]: Message Filter dropping message: frame 'odom' at time 3,808 for reason 'Unknown'
[rviz2-4] [INFO] [1612121992.969423367] [rviz2]: Message Filter dropping message: frame 'odom' at time 4,009 for reason 'Unknown'
[rviz2-4] [INFO] [1612121993.173612944] [rviz2]: Message Filter dropping message: frame 'odom' at time 4,210 for reason 'Unknown'
[recoveries_server-10] [INFO] [1612121993.234997738] [recoveries_server]: wait running...
[rviz2-4] [INFO] [1612121993.378075367] [rviz2]: Message Filter dropping message: frame 'odom' at time 4,410 for reason 'Unknown'
[rviz2-4] [INFO] [1612121993.548095092] [rviz2]: Message Filter dropping message: frame 'base_scan' at time 3,801 for reason 'Unknown'
[rviz2-4] [INFO] [1612121993.549621195] [rviz2]: Message Filter dropping message: frame 'odom' at time 4,611 for reason 'Unknown'
[rviz2-4] [INFO] [1612121993.752391465] [rviz2]: Message Filter dropping message: frame 'base_scan' at time 4,001 for reason 'Unknown'
...
Is there any way to make nav2_gps_waypoint_follower_demo package work on ros2 humble????
or
Is there any way to Navigate using gps localisation on ros2 humble or ros2 foxxy????
There was probably an update on nav2 that wasn't updated in the basic setup here: https://navigation.ros.org/setup_guides/footprint/setup_footprint.html
The configuration file nav2_params.yaml
needs one line to work, under the bt_navigator
, approx. line 50:
just add default_bt_xml_filename: "navigate_w_replanning_and_recovery.xml"
after groot_zmq_server_port: 1667
and before plugin_lib_names:
.
I compared with the original file that was installed with the nav2 package.
Hey @SteveMacenski,
not sure which discourse post this was but I remember you mentioned there aren't any good Ackermann urdfs to make a demo for MPPI.
I've been trying to add a steering controller
demo to ros2_control_demos, so I made a CarlikeBot
which you can find here. You can use ros2 launch ros2_control_demo_example_11 view_robot.launch.py
to take a look.
I don't promise changes won't be made to it, and I don't know how realistic the physical attributes of it are as I just copied what I found for diffbot, but hopefully, it can be a good starting point. I'd also be glad to contribute to this tutorial, though I'm new to nav2.
After following all the instructions in https://navigation.ros.org/tutorials/docs/navigation2_with_keepout_filter.html I can't get gazebo to load the world and the robot, only the sensor raytrace is shown and no errors seem to pop up in the terminal.
I tried following the steps explained in this tutorial to apply them on a project that I'm doing on webots but the keepout_mask is not loading on rviz. Everything seems to be fine as in no obvious errors pop up in the terminal but the costmap filter won't show up no matter what I try. One weird thing I noticed is that after changing the turtlebot3_world.yaml filename in the file nav2_params nothing changes, no errors show up, maybe the whole file is not being used properly?
Hello,
I downloaded ROS2 Galactic from source and Nav2 Galactic from source and am able to run the examples fine.
I am trying to run the Nav2 StraightLine plugin following this tutorial and this repo.
However, when change the nav2_params.yaml file as per the instructions on the tutorial,linked above, the Gazeebo is not imported to Rviz and I am not able to set the robot initial position or goal for it to move.
I am using the nav2_params.yaml file as here and swapped the planner_server to
planner_server:
ros__parameters:
planner_plugin_types: ["nav2_straightline_planner/StraightLine"] # For Eloquent and earlier
planner_plugin_ids: ["GridBased"] # For Eloquent and earlier
plugins: ["GridBased"] # For Foxy and later
use_sim_time: True
GridBased:
plugin: nav2_straightline_planner/StraightLine # For Foxy and later
interpolation_resolution: 0.1
Can someone let em know if I have the right .yaml file or how I can resolve this issue.
Thank you,
Need to sync it up in par with Humble I think.
Hello to everybody,
I am trying to build the nav2_straightline_planner package following the navigation2 Planner plugin tutorial.
When I compile:
colcon build --packages-select nav2_straightline_planner
I get the following error:
Starting >>> nav2_straightline_planner
--- stderr: nav2_straightline_planner
In file included from /home/srl/Documents/Github/nav_ws/src/navigation2/nav2_straightline_planner/src/straight_line_planner.cpp:46:
/home/srl/Documents/Github/nav_ws/src/navigation2/nav2_straightline_planner/include/nav2_straightline_planner/straight_line_planner.hpp:67:8: error: ‘void nav2_straightline_planner::StraightLine::configure(const WeakPtr&, std::string, std::shared_ptr<tf2_ros::Buffer>, std::shared_ptr<nav2_costmap_2d::Costmap2DROS>)’ marked ‘override’, but does not override
67 | void configure(
| ^~~~~~~~~
In file included from /opt/ros/foxy/include/class_loader/class_loader_core.hpp:57,
from /opt/ros/foxy/include/class_loader/class_loader.hpp:55,
from /opt/ros/foxy/include/class_loader/multi_library_class_loader.hpp:52,
from /opt/ros/foxy/include/pluginlib/class_loader.hpp:58,
from /home/srl/Documents/Github/nav_ws/install/nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp:53,
from /home/srl/Documents/Github/nav_ws/install/nav2_core/include/nav2_core/global_planner.hpp:21,
from /home/srl/Documents/Github/nav_ws/src/navigation2/nav2_straightline_planner/include/nav2_straightline_planner/straight_line_planner.hpp:51,
from /home/srl/Documents/Github/nav_ws/src/navigation2/nav2_straightline_planner/src/straight_line_planner.cpp:46:
/opt/ros/foxy/include/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = nav2_straightline_planner::StraightLine; B = nav2_core::GlobalPlanner]’:
/opt/ros/foxy/include/class_loader/meta_object.hpp:216:7: required from here
/opt/ros/foxy/include/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘nav2_straightline_planner::StraightLine’
218 | return new C;
| ^~~~~
In file included from /home/srl/Documents/Github/nav_ws/src/navigation2/nav2_straightline_planner/src/straight_line_planner.cpp:46:
/home/srl/Documents/Github/nav_ws/src/navigation2/nav2_straightline_planner/include/nav2_straightline_planner/straight_line_planner.hpp:60:7: note: because the following virtual functions are pure within ‘nav2_straightline_planner::StraightLine’:
60 | class StraightLine : public nav2_core::GlobalPlanner
| ^~~~~~~~~~~~
In file included from /home/srl/Documents/Github/nav_ws/src/navigation2/nav2_straightline_planner/include/nav2_straightline_planner/straight_line_planner.hpp:51,
from /home/srl/Documents/Github/nav_ws/src/navigation2/nav2_straightline_planner/src/straight_line_planner.cpp:46:
/home/srl/Documents/Github/nav_ws/install/nav2_core/include/nav2_core/global_planner.hpp:50:16: note: ‘virtual void nav2_core::GlobalPlanner::configure(rclcpp_lifecycle::LifecycleNode::SharedPtr, std::string, std::shared_ptr<tf2_ros::Buffer>, std::shared_ptr<nav2_costmap_2d::Costmap2DROS>)’
50 | virtual void configure(
| ^~~~~~~~~
make[2]: *** [CMakeFiles/nav2_straightline_planner_plugin.dir/build.make:63: CMakeFiles/nav2_straightline_planner_plugin.dir/src/straight_line_planner.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/nav2_straightline_planner_plugin.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed <<< nav2_straightline_planner [3.64s, exited with code 2]
Summary: 0 packages finished [3.94s]
1 package failed: nav2_straightline_planner
1 package had stderr output: nav2_straightline_planner
I saw there was a closed issue related to this, but it was closed without writing the solution, and the one proposed by Philison doesn't work for me.
Can anyone help me?
Thank you very much
Hi, I'm starting to use nav2 and I was following your tutorial: https://navigation.ros.org/tutorials/docs/navigation2_with_gps.html#
at the "Localization Testing" step when I run the second command
ros2 launch nav2_gps_waypoint_follower_demo mapviz.launch.py
I get the following error:
[mapviz-1] [WARN] [1699186927.537189075] [mapviz]: [transform_manager]: No transformer from 'wgs84' to 'map'. If 'map' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [ERROR] [1699186927.537354140] [mapviz]: Error: No transform between wgs84 and map
.
.
[mapviz-1] [WARN] [1699186929.295457865] [mapviz]: [transform_manager]: No transformer from '' to 'tf'. If '' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [WARN] [1699186929.314493185] [mapviz]: [transform_manager]: No transformer from 'base_link' to 'tf'. If 'base_link' is a /tf frame, it may not have been broadcast recently.
Below is the complete error
ros2 launch nav2_gps_waypoint_follower_demo mapviz.launch.py
[INFO] [launch]: All log files can be found below /home/kevin/.ros/log/2023-11-05-13-22-00-531001-kevin-ThinkPad-T480-7436
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [mapviz-1]: process started with pid [7446]
[INFO] [initialize_origin.py-2]: process started with pid [7448]
[INFO] [static_transform_publisher-3]: process started with pid [7450]
[static_transform_publisher-3] [WARN] [1699186922.433718400] []: Old-style arguments are deprecated; see --help for new-style arguments
[static_transform_publisher-3] [INFO] [1699186922.684386487] [swri_transform]: Spinning until stopped - publishing transform
[static_transform_publisher-3] translation: ('0.000000', '0.000000', '0.000000')
[static_transform_publisher-3] rotation: ('0.000000', '0.000000', '0.000000', '1.000000')
[static_transform_publisher-3] from 'map' to 'origin'
[mapviz-1] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[mapviz-1] [INFO] [1699186926.091411025] [mapviz]: Target frame selected: <none>
[initialize_origin.py-2] [INFO] [1699186926.684224944] [initialize_origin]: Origin: auto
[initialize_origin.py-2] [INFO] [1699186926.691551299] [initialize_origin]: Frame: map
[initialize_origin.py-2] /home/kevin/ros2_humble/install/rclpy/local/lib/python3.10/dist-packages/rclpy/qos.py:307: UserWarning: DurabilityPolicy.RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL is deprecated. Use DurabilityPolicy.TRANSIENT_LOCAL instead.
[initialize_origin.py-2] warnings.warn(
[mapviz-1] [INFO] [1699186927.135734224] [mapviz]: View scale: 1.000000 meters/pixel
[initialize_origin.py-2] [INFO] [1699186927.270977861] [initialize_origin]: Got NavSat message.
[initialize_origin.py-2] [INFO] [1699186927.291337853] [initialize_origin]: Origin from 'navsat' source set to 38.1614563499149, -122.45460631151656, 488.32879648171365
[initialize_origin.py-2] [INFO] [1699186927.305467454] [initialize_origin]: Successfully set origin; unsubscribing.
[mapviz-1] [INFO] [1699186927.306416807] [mapviz]: Subscribing to /local_xy_origin
[mapviz-1] [INFO] [1699186927.359070807] [mapviz]: Found mapviz plugin: mapviz_plugins/attitude_indicator
[mapviz-1] [INFO] [1699186927.359166139] [mapviz]: Found mapviz plugin: mapviz_plugins/coordinate_picker
[mapviz-1] [INFO] [1699186927.359196662] [mapviz]: Found mapviz plugin: mapviz_plugins/disparity
[mapviz-1] [INFO] [1699186927.359220443] [mapviz]: Found mapviz plugin: mapviz_plugins/draw_polygon
[mapviz-1] [INFO] [1699186927.359245504] [mapviz]: Found mapviz plugin: mapviz_plugins/float
[mapviz-1] [INFO] [1699186927.359280008] [mapviz]: Found mapviz plugin: mapviz_plugins/gps
[mapviz-1] [INFO] [1699186927.359312167] [mapviz]: Found mapviz plugin: mapviz_plugins/grid
[mapviz-1] [INFO] [1699186927.359343791] [mapviz]: Found mapviz plugin: mapviz_plugins/image
[mapviz-1] [INFO] [1699186927.359375453] [mapviz]: Found mapviz plugin: mapviz_plugins/laserscan
[mapviz-1] [INFO] [1699186927.359417993] [mapviz]: Found mapviz plugin: mapviz_plugins/marker
[mapviz-1] [INFO] [1699186927.359438878] [mapviz]: Found mapviz plugin: mapviz_plugins/measuring
[mapviz-1] [INFO] [1699186927.359460504] [mapviz]: Found mapviz plugin: mapviz_plugins/multires_image
[mapviz-1] [INFO] [1699186927.359482773] [mapviz]: Found mapviz plugin: mapviz_plugins/navsat
[mapviz-1] [INFO] [1699186927.359519369] [mapviz]: Found mapviz plugin: mapviz_plugins/occupancy_grid
[mapviz-1] [INFO] [1699186927.359553258] [mapviz]: Found mapviz plugin: mapviz_plugins/odometry
[mapviz-1] [INFO] [1699186927.359578606] [mapviz]: Found mapviz plugin: mapviz_plugins/path
[mapviz-1] [INFO] [1699186927.359612085] [mapviz]: Found mapviz plugin: mapviz_plugins/plan_route
[mapviz-1] [INFO] [1699186927.359665948] [mapviz]: Found mapviz plugin: mapviz_plugins/point_click_publisher
[mapviz-1] [INFO] [1699186927.359727957] [mapviz]: Found mapviz plugin: mapviz_plugins/pointcloud2
[mapviz-1] [INFO] [1699186927.359778964] [mapviz]: Found mapviz plugin: mapviz_plugins/pose
[mapviz-1] [INFO] [1699186927.359825089] [mapviz]: Found mapviz plugin: mapviz_plugins/robot_image
[mapviz-1] [INFO] [1699186927.359883716] [mapviz]: Found mapviz plugin: mapviz_plugins/route
[mapviz-1] [INFO] [1699186927.360032253] [mapviz]: Found mapviz plugin: mapviz_plugins/string
[mapviz-1] [INFO] [1699186927.360129547] [mapviz]: Found mapviz plugin: mapviz_plugins/textured_marker
[mapviz-1] [INFO] [1699186927.360264900] [mapviz]: Found mapviz plugin: mapviz_plugins/tf_frame
[mapviz-1] [INFO] [1699186927.360550336] [mapviz]: Found mapviz plugin: mapviz_plugins/tile_map
[mapviz-1] [INFO] [1699186927.366819335] [mapviz]: Loading configuration from /home/kevin/kev_ws/install/nav2_gps_waypoint_follower_demo/share/nav2_gps_waypoint_follower_demo/config/gps_wpf_demo.mvc
[mapviz-1] [INFO] [1699186927.367797404] [mapviz]: fixed frame selected: map
[mapviz-1] [INFO] [1699186927.367930217] [mapviz]: Target frame selected: map
[mapviz-1] [INFO] [1699186927.371868189] [mapviz]: creating: mapviz_plugins/tile_map
[mapviz-1] [WARN] [1699186927.537189075] [mapviz]: [transform_manager]: No transformer from 'wgs84' to 'map'. If 'map' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [ERROR] [1699186927.537354140] [mapviz]: Error: No transform between wgs84 and map
[mapviz-1] [INFO] [1699186927.537915991] [mapviz]: Reorder displays
[mapviz-1] [INFO] [1699186927.543621743] [mapviz]: creating: mapviz_plugins/point_click_publisher
[mapviz-1] [INFO] [1699186928.373131851] [mapviz]: Publishing points to topic: clicked_point
[mapviz-1] [INFO] [1699186928.383323504] [mapviz]: Ready.
[mapviz-1] [INFO] [1699186928.429633950] [mapviz]: Reorder displays
[mapviz-1] [INFO] [1699186928.429773572] [mapviz]: Publishing points to topic: clicked_point
[mapviz-1] [INFO] [1699186928.450993260] [mapviz]: creating: mapviz_plugins/tf_frame
[mapviz-1] [INFO] [1699186928.493739732] [mapviz]: Reorder displays
[mapviz-1] [WARN] [1699186928.496914266] [mapviz]: Waiting for transform.
[mapviz-1] [INFO] [1699186928.497490327] [mapviz]: Setting target frame to to base_link
[mapviz-1] [INFO] [1699186928.504547484] [mapviz]: creating: mapviz_plugins/navsat
[mapviz-1] [INFO] [1699186928.576091935] [mapviz]: Reorder displays
[mapviz-1] [WARN] [1699186928.581271037] [mapviz]: No messages received.
[mapviz-1] [INFO] [1699186928.622145884] [mapviz]: Subscribing to /gps/fix
[mapviz-1] [WARN] [1699186928.669973665] [mapviz]: [transform_manager]: No transformer from 'base_link' to 'map'. If 'base_link' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [INFO] [1699186928.940983553] [mapviz]: OK
[mapviz-1] [WARN] [1699186928.966091841] [mapviz]: [transform_manager]: No transformer from '' to 'tf'. If '' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [WARN] [1699186928.966204912] [mapviz]: [transform_manager]: No transformer from '' to 'tf'. If '' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [WARN] [1699186929.295457865] [mapviz]: [transform_manager]: No transformer from '' to 'tf'. If '' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [WARN] [1699186929.314493185] [mapviz]: [transform_manager]: No transformer from 'base_link' to 'tf'. If 'base_link' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [WARN] [1699186929.334351789] [mapviz]: [transform_manager]: No transformer from '' to 'tf'. If '' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [WARN] [1699186929.419833049] [mapviz]: [transform_manager]: No transformer from '' to 'tf'. If '' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [ERROR] [1699186929.432907198] [mapviz]: NETWORK ERROR: Protocol "" is unknown
[mapviz-1] [WARN] [1699186929.440230266] [mapviz]: [transform_manager]: No transformer from '' to 'tf'. If '' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [WARN] [1699186929.443635410] [mapviz]: [transform_manager]: No transformer from 'base_link' to 'tf'. If 'base_link' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [WARN] [1699186929.454462204] [mapviz]: [transform_manager]: No transformer from '' to 'tf'. If '' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [ERROR] [1699186929.468745364] [mapviz]: NETWORK ERROR: Protocol "" is unknown
[mapviz-1] [WARN] [1699186929.469391118] [mapviz]: [transform_manager]: No transformer from '' to 'tf'. If '' is a /tf frame, it may not have been broadcast recently.
[mapviz-1] [ERROR] [1699186929.477346367] [mapviz]: NETWORK ERROR: Protocol "" is unknown
[mapviz-1] [INFO] [1699186929.492517608] [mapviz]: OK
[mapviz-1] [INFO] [1699186929.785185251] [mapviz]: OK
How do I fix it?
My version of ros2 is humble, i installed mapviz and robot localization as mentioned at the beginning after i copied the folder into my workspace and did build.
I'm following this tutorial: https://navigation.ros.org/plugin_tutorials/docs/writing_new_nav2planner_plugin.html
and trying to compile nav2_straightline_planner package in navigation2 workspace on ros2 foxy using following command line:
colcon build --packages-select nav2_straightline_planner
Then I received these errors:
~/navigation2_ws$ colcon build --packages-select nav2_straightline_planner Starting >>> nav2_straightline_planner --- stderr: nav2_straightline_planner In file included from /home/kai/navigation2_ws/src/navigation2/nav2_straightline_planner/src/straight_line_planner.cpp:46: /home/kai/navigation2_ws/src/navigation2/nav2_straightline_planner/include/nav2_straightline_planner/straight_line_planner.hpp:67:8: error: ‘void nav2_straightline_planner::StraightLine::configure(const WeakPtr&, std::string, std::shared_ptr<tf2_ros::Buffer>, std::shared_ptr<nav2_costmap_2d::Costmap2DROS>)’ marked ‘override’, but does not override 67 | void configure( | ^~~~~~~~~ In file included from /opt/ros/foxy/include/class_loader/class_loader_core.hpp:57, from /opt/ros/foxy/include/class_loader/class_loader.hpp:55, from /opt/ros/foxy/include/class_loader/multi_library_class_loader.hpp:52, from /opt/ros/foxy/include/pluginlib/class_loader.hpp:58, from /home/kai/navigation2_ws/install/nav2_costmap_2d/include/nav2_costmap_2d/costmap_2d_ros.hpp:53, from /home/kai/navigation2_ws/install/nav2_core/include/nav2_core/global_planner.hpp:21, from /home/kai/navigation2_ws/src/navigation2/nav2_straightline_planner/include/nav2_straightline_planner/straight_line_planner.hpp:51, from /home/kai/navigation2_ws/src/navigation2/nav2_straightline_planner/src/straight_line_planner.cpp:46: /opt/ros/foxy/include/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = nav2_straightline_planner::StraightLine; B = nav2_core::GlobalPlanner]’: /opt/ros/foxy/include/class_loader/meta_object.hpp:190:7: required from here /opt/ros/foxy/include/class_loader/meta_object.hpp:192:12: error: invalid new-expression of abstract class type ‘nav2_straightline_planner::StraightLine’ 192 | return new C; | ^~~~~ In file included from /home/kai/navigation2_ws/src/navigation2/nav2_straightline_planner/src/straight_line_planner.cpp:46: /home/kai/navigation2_ws/src/navigation2/nav2_straightline_planner/include/nav2_straightline_planner/straight_line_planner.hpp:60:7: note: because the following virtual functions are pure within ‘nav2_straightline_planner::StraightLine’: 60 | class StraightLine : public nav2_core::GlobalPlanner | ^~~~~~~~~~~~ In file included from /home/kai/navigation2_ws/src/navigation2/nav2_straightline_planner/include/nav2_straightline_planner/straight_line_planner.hpp:51, from /home/kai/navigation2_ws/src/navigation2/nav2_straightline_planner/src/straight_line_planner.cpp:46: /home/kai/navigation2_ws/install/nav2_core/include/nav2_core/global_planner.hpp:50:16: note: ‘virtual void nav2_core::GlobalPlanner::configure(rclcpp_lifecycle::LifecycleNode::SharedPtr, std::string, std::shared_ptr<tf2_ros::Buffer>, std::shared_ptr<nav2_costmap_2d::Costmap2DROS>)’ 50 | virtual void configure( | ^~~~~~~~~ make[2]: *** [CMakeFiles/nav2_straightline_planner_plugin.dir/build.make:63: CMakeFiles/nav2_straightline_planner_plugin.dir/src/straight_line_planner.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/nav2_straightline_planner_plugin.dir/all] Error 2 make: *** [Makefile:141: all] Error 2 --- Failed <<< nav2_straightline_planner [4.84s, exited with code 2] Summary: 0 packages finished [5.09s] 1 package failed: nav2_straightline_planner 1 package had stderr output: nav2_straightline_planner
Inertia settings and caster wheel radius setting in sam_bot_description/src/description/sam_bot_description.urdf
are not properly set, yielding weird behavior when the robot is loaded in Gazebo.
<xacro:macro name="box_inertia" params="m w h d">
<inertial>
<origin xyz="0 0 0" rpy="${pi/2} 0 ${pi/2}"/>
<mass value="${m}"/>
<inertia ixx="${(m/12) * (h*h + d*d)}" ixy="0.0" ixz="0.0" iyy="${(m/12) * (w*w + d*d)}" iyz="0.0" izz="${(m/12) * (w*w + h*h)}"/>
</inertial>
</xacro:macro>
<geometry>
<sphere radius="${-(wheel_radius+wheel_zoff-(base_height/2))}"/>
</geometry>
Hey ROS Community,
i tried to add the nav2_gradient_costmap_plugin but the robot can still move.
The only change i did in gradient_layer.cpp:
// auto node = node_.lock();
auto node = node_;
I using Ubuntu 20.04 foxy distro.
Thank you so much in advance :)
When building with foxy, i get some build errors.
Fixed with attached patch.
navigation2_tutorials.patch.txt
I cloned the whole repo to my local directory, but I could not find nav2_pure_pursuit_controller pkg in it. I check this pkg on website and find that it could not show in master branch, instead it will appear in a branch named 1269024. Will you please deal with it, please?
Hi, I'm migrating GPS WP following to a real robot. On it I already have robot_localization dual ekf + navsat node. Obviously I don't need gazebo and as it is headless I will not run rviz there.
So, I have to comment out some lines on launch file
It would be very useful to have gazebo and R_L parameter for condition their execution, like rviz and mapviz. The same for use_sim_time.
Doing that we can use this same package, on a real robot.
I will be testing this on the follow days, do you have interest on have a PR with it?
Thank and best regards
I made the costmap 2d plugin & had no problem in build but when I launch Rviz, I get this error " Global Status Error: Fixed frame [Map] does not exist" . Also, I don't see any gradient or the output as given by the plugin (As mentioned in https://navigation.ros.org/plugin_tutorials/docs/writing_new_costmap2d_plugin.html#run-gradientlayer-plugin )
Hello,
I'm working on a project that requires the use of two costmap filters at the same time: the Keepout filter and the Speed filter. I've been looking through the documentation and I'm having trouble figuring out how to activate both filters at once. Could someone please provide guidance on how to do this?
Thank you for your help.
I tried to make some changes to the code however it does not work.
def generate_launch_description():
# Get the launch directory
costmap_filters_demo_dir = get_package_share_directory('nav2_costmap_filters_demo')
# Create our own temporary YAML files that include substitutions
lifecycle_nodes = ['filter_mask_server', 'costmap_filter_info_server']
# Parameters
namespace = LaunchConfiguration('namespace')
use_sim_time = LaunchConfiguration('use_sim_time')
autostart = LaunchConfiguration('autostart')
params_file_keepout = LaunchConfiguration('params_file_keepout')
params_file_speed = LaunchConfiguration('params_file_speed')
mask_yaml_file_keepout = LaunchConfiguration('mask_keepout')
mask_yaml_file_speed = LaunchConfiguration('mask_speed')
# Declare the launch arguments
declare_namespace_cmd = DeclareLaunchArgument(
'namespace',
default_value='',
description='Top-level namespace')
declare_use_sim_time_cmd = DeclareLaunchArgument(
'use_sim_time',
default_value='true',
description='Use simulation (Gazebo) clock if true')
declare_autostart_cmd = DeclareLaunchArgument(
'autostart', default_value='true',
description='Automatically startup the nav2 stack')
declare_params_file_keepout_cmd = DeclareLaunchArgument(
'params_file_keepout',
default_value=os.path.join(get_package_share_directory('nav2_costmap_filters_demo'), 'params', 'keepout_params.yaml'),
description='Full path to the ROS2 parameters file for the Keepout filter')
declare_params_file_speed_cmd = DeclareLaunchArgument(
'params_file_speed',
default_value=os.path.join(get_package_share_directory('nav2_costmap_filters_demo'), 'params', 'speed_params.yaml'),
description='Full path to the ROS2 parameters file for the Speed filter')
declare_mask_yaml_file_keepout_cmd = DeclareLaunchArgument(
'mask_keepout',
default_value=os.path.join(get_package_share_directory('nav2_costmap_filters_demo'), 'maps', 'fullmap_keepout.yaml'),
description='Full path to filter mask yaml file to load for the Keepout filter')
declare_mask_yaml_file_speed_cmd = DeclareLaunchArgument(
'mask_speed',
default_value=os.path.join(get_package_share_directory('nav2_costmap_filters_demo'), 'maps', 'speed.yaml'),
description='Full path to filter mask yaml file to load for the Speed filter')
# Make re-written yaml for Keepout filter
param_substitutions_keepout = {
'use_sim_time': use_sim_time,
'yaml_filename': mask_yaml_file_keepout}
configured_params_keepout = RewrittenYaml(
source_file=params_file_keepout,
root_key=namespace,
param_rewrites=param_substitutions_keepout,
convert_types=True)
# Make re-written yaml for Speed filter
param_substitutions_speed = {
'use_sim_time': use_sim_time,
'yaml_filename': mask_yaml_file_speed}
configured_params_speed = RewrittenYaml(
source_file=params_file_speed,
root_key=namespace,
param_rewrites=param_substitutions_speed,
convert_types=True)
# Nodes launching commands
start_lifecycle_manager_cmd = Node(
package='nav2_lifecycle_manager',
executable='lifecycle_manager',
name='lifecycle_manager_costmap_filters',
namespace=namespace,
output='screen',
emulate_tty=True, # https://github.com/ros2/launch/issues/188
parameters=[{'use_sim_time': use_sim_time},
{'autostart': autostart},
{'node_names': lifecycle_nodes}])
start_map_server_cmd = Node(
package='nav2_map_server',
executable='map_server',
name='filter_mask_server',
namespace=namespace,
output='screen',
emulate_tty=True, # https://github.com/ros2/launch/issues/188
parameters=[configured_params_keepout])
start_costmap_filter_info_server_cmd = Node(
package='nav2_map_server',
executable='costmap_filter_info_server',
name='costmap_filter_info_server_1',
namespace=namespace,
output='screen',
emulate_tty=True,
parameters=[configured_params_speed])
start_costmap_filter_info_server_cmd2 = Node(
package='nav2_map_server',
executable='costmap_filter_info_server',
name='costmap_filter_info_server_2',
namespace=namespace,
output='screen',
emulate_tty=True,
parameters=[configured_params_keepout])
ld = LaunchDescription()
ld.add_action(declare_namespace_cmd)
ld.add_action(declare_use_sim_time_cmd)
ld.add_action(declare_autostart_cmd)
ld.add_action(declare_params_file_keepout_cmd)
ld.add_action(declare_params_file_speed_cmd)
ld.add_action(declare_mask_yaml_file_keepout_cmd)
ld.add_action(declare_mask_yaml_file_speed_cmd)
ld.add_action(start_lifecycle_manager_cmd)
ld.add_action(start_map_server_cmd)
ld.add_action(start_costmap_filter_info_server_cmd)
ld.add_action(start_costmap_filter_info_server_cmd2)
return ld
running the above code give the below output
ros2 launch nav2_costmap_filters_demo costmap_filter_info_2.launch.py
[INFO] [launch]: All log files can be found below /home/bot/.ros/log/2023-05-04-01-30-16-163378-bot-22263
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [lifecycle_manager-1]: process started with pid [22264]
[INFO] [map_server-2]: process started with pid [22266]
[INFO] [costmap_filter_info_server-3]: process started with pid [22268]
[INFO] [costmap_filter_info_server-4]: process started with pid [22270]
[lifecycle_manager-1] [INFO] [1683156616.663989370] [lifecycle_manager_costmap_filters]: Creating
[costmap_filter_info_server-4] [INFO] [1683156616.667593196] [costmap_filter_info_server]: This is costmap filter info publisher
[costmap_filter_info_server-3] [INFO] [1683156616.668954028] [costmap_filter_info_server]: This is costmap filter info publisher
[costmap_filter_info_server-4] [INFO] [1683156616.676255188] [costmap_filter_info_server_2]:
[costmap_filter_info_server-4] costmap_filter_info_server_2 lifecycle node launched.
[costmap_filter_info_server-4] Waiting on external lifecycle transitions to activate
[costmap_filter_info_server-4] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[map_server-2] [INFO] [1683156616.687254944] [filter_mask_server]:
[map_server-2] filter_mask_server lifecycle node launched.
[map_server-2] Waiting on external lifecycle transitions to activate
[map_server-2] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[map_server-2] [INFO] [1683156616.687365271] [filter_mask_server]: Creating
[costmap_filter_info_server-3] [INFO] [1683156616.746267633] [costmap_filter_info_server_1]:
[costmap_filter_info_server-3] costmap_filter_info_server_1 lifecycle node launched.
[costmap_filter_info_server-3] Waiting on external lifecycle transitions to activate
[costmap_filter_info_server-3] See https://design.ros2.org/articles/node_lifecycle.html for more information.
[lifecycle_manager-1] [INFO] [1683156616.773070866] [lifecycle_manager_costmap_filters]: Creating and initializing lifecycle service clients
[lifecycle_manager-1] [INFO] [1683156618.847922028] [lifecycle_manager_costmap_filters]: Waiting for service costmap_filter_info_server/get_state...
[lifecycle_manager-1] [INFO] [1683156620.848138293] [lifecycle_manager_costmap_filters]: Waiting for service costmap_filter_info_server/get_state...
[lifecycle_manager-1] [INFO] [1683156622.848298710] [lifecycle_manager_costmap_filters]: Waiting for service costmap_filter_info_server/get_state...
[lifecycle_manager-1] [INFO] [1683156624.848502387] [lifecycle_manager_costmap_filters]: Waiting for service costmap_filter_info_server/get_state...
[lifecycle_manager-1] [INFO] [1683156626.848733649] [lifecycle_manager_costmap_filters]: Waiting for service costmap_filter_info_server/get_state...
[lifecycle_manager-1] [INFO] [1683156628.848942898] [lifecycle_manager_costmap_filters]: Waiting for service costmap_filter_info_server/get_state...
[lifecycle_manager-1] [INFO] [1683156630.849106236] [lifecycle_manager_costmap_filters]: Waiting for service costmap_filter_info_server/get_state...
[lifecycle_manager-1] [INFO] [1683156632.849306747] [lifecycle_manager_costmap_filters]: Waiting for service costmap_filter_info_server/get_state...
[lifecycle_manager-1] [INFO] [1683156634.849465813] [lifecycle_manager_costmap_filters]: Waiting for service costmap_filter_info_server/get_state...
[lifecycle_manager-1] [INFO] [1683156636.849632568] [lifecycle_manager_costmap_filters]: Waiting for service costmap_filter_info_server/get_state...
Hi everyone,
I have a problem when building tutorials source as belows.
Starting >>> nav2_costmap_filters_demo
Starting >>> nav2_gps_waypoint_follower_demo
Starting >>> nav2_gradient_costmap_plugin
Starting >>> nav2_sms_behavior
Starting >>> nav2_straightline_planner
Starting >>> sam_bot_description
Finished <<< nav2_costmap_filters_demo [2.57s]
Finished <<< sam_bot_description [2.59s]
Finished <<< nav2_gradient_costmap_plugin [4.10s]
Finished <<< nav2_straightline_planner [4.34s]
--- stderr: nav2_gps_waypoint_follower_demo
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(Finished <<< nav2_gps_waypoint_follower_demo [4.77s]
--- stderr: nav2_sms_behavior
In file included from /workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/src/send_sms.cpp:8:
/workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/include/nav2_sms_behavior/send_sms.hpp:27:3: error: ‘ResultStatus’ does not name a type
27 | ResultStatus onRun(const std::shared_ptr command) override;
| ^~~~~~~~~~~~
/workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/include/nav2_sms_behavior/send_sms.hpp:29:3: error: ‘ResultStatus’ does not name a type
29 | ResultStatus onCycleUpdate() override;
| ^~~~~~~~~~~~
/workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/include/nav2_sms_behavior/send_sms.hpp:37:14: error: ‘CostmapInfoType’ in namespace ‘nav2_core’ does not name a type
37 | nav2_core::CostmapInfoType getResourceInfo() override {return nav2_core::CostmapInfoType::NONE;}
| ^~~~~~~~~~~~~~~
/workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/src/send_sms.cpp:36:1: error: ‘ResultStatus’ does not name a type
36 | ResultStatus SendSms::onRun(const std::shared_ptr command)
| ^~~~~~~~~~~~
/workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/src/send_sms.cpp:56:1: error: ‘ResultStatus’ does not name a type
56 | ResultStatus SendSms::onCycleUpdate()
| ^~~~~~~~~~~~
In file included from /opt/ros/humble/include/class_loader/class_loader/class_loader_core.hpp:57,
from /opt/ros/humble/include/class_loader/class_loader/class_loader.hpp:55,
from /opt/ros/humble/include/pluginlib/pluginlib/class_list_macros.hpp:40,
from /workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/src/send_sms.cpp:63:
/opt/ros/humble/include/class_loader/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = nav2_sms_behavior::SendSms; B = nav2_core::Behavior]’:
/opt/ros/humble/include/class_loader/class_loader/meta_object.hpp:216:7: required from here
/opt/ros/humble/include/class_loader/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘nav2_sms_behavior::SendSms’
218 | return new C;
| ^~~~~
In file included from /workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/src/send_sms.cpp:8:
/workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/include/nav2_sms_behavior/send_sms.hpp:21:7: note: because the following virtual functions are pure within ‘nav2_sms_behavior::SendSms’:
21 | class SendSms : public TimedBehavior
| ^~~~~~~
In file included from /workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/include/nav2_sms_behavior/send_sms.hpp:11,
from /workspaces/pbot_simu/nav2_simu_ws/src/navigation2_tutorials/nav2_sms_behavior/src/send_sms.cpp:8:
/opt/ros/humble/include/nav2_behaviors/timed_behavior.hpp:76:18: note: ‘nav2_behaviors::Status nav2_behaviors::TimedBehavior::onRun(std::shared_ptr) [with ActionT = nav2_sms_behavior::action::SendSms; typename ActionT::Goal = nav2_sms_behavior::action::SendSms_Goal_<std::allocator >]’
76 | virtual Status onRun(const std::shared_ptr command) = 0;
| ^~~~~
/opt/ros/humble/include/nav2_behaviors/timed_behavior.hpp:84:18: note: ‘nav2_behaviors::Status nav2_behaviors::TimedBehavior::onCycleUpdate() [with ActionT = nav2_sms_behavior::action::SendSms]’
84 | virtual Status onCycleUpdate() = 0;
| ^~~~~~~~~~~~~
gmake[2]: *** [CMakeFiles/nav2_sms_behavior_plugin.dir/build.make:76: CMakeFiles/nav2_sms_behavior_plugin.dir/src/send_sms.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:593: CMakeFiles/nav2_sms_behavior_plugin.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2Failed <<< nav2_sms_behavior [7.14s, exited with code 2]
Summary: 5 packages finished [8.04s]
1 package failed: nav2_sms_behavior
2 packages had stderr output: nav2_gps_waypoint_follower_demo nav2_sms_behavior
Can anyone help me to solve this ? it looks like missing some files or packages ?
Thanks in advance.
I was trying to use nav2_gradient_costmap_plugin as mentioned here:
https://github.com/ros-planning/navigation2_tutorials/tree/master/nav2_gradient_costmap_plugin
Required Info:
Operating System:
ubuntu20.04
ROS2 Version:
galactic
Version or commit hash:
074d582
When the robot is given a goal position, the planner halt forever, and this is the last message and this is the last message I get
[lifecycle_manager-5] [INFO] [1627288921.973608032] [lifecycle_manager_navigation]: Creating bond timer...
[bt_navigator-4] [INFO] [1627288936.097422353] [bt_navigator]: Begin navigating from current location to (1.83, -2.85)
The planner should either make a plan if it is possible, or complain that that it is not possible to make a plan to the given position
In file gradient_layer.cpp
The flag "current_" must be inserted and set to true.
GradientLayer::onInitialize()
{
auto node = node_.lock();
declareParameter("enabled", rclcpp::ParameterValue(true));
node->get_parameter(name_ + "." + "enabled", enabled_);
need_recalculation_ = false;
current_ = true;
}
As I understood, this flag will give an indication to the path planner that the current data of the costmap are up to date.
Hello!
I'm using Jetson Nano(JP4.6) With ROS 2 Eloquent. I built Nav2 from the source code, made a test description of URDF, but could not run display.launch.py .
Here is the output I see when trying to run:
robot@robothost:~$ ros2 launch vector_description display.launch.py
[INFO] [launch]: All log files can be found below /home/robot/.ros/log/2022-02-18-14-13-30-610366-robothost-18354
[INFO] [launch]: Default logging verbosity is set to INFO
[ERROR] [launch]: Caught exception in launch (see debug for traceback): Caught exception when trying to load file of format [py]: cannot import name 'Command'
This is what the beginning looks like display.launch.py which I copied from the tutorial
import launch
from launch.substitutions import Command, LaunchConfiguration
import launch_ros
import os
def generate_launch_description():
pkg_share = launch_ros.substitutions.FindPackageShare(package='vector_description').find('vector_description')
default_model_path = os.path.join(pkg_share, 'src/description/vector_description.urdf')
default_rviz_config_path = os.path.join(pkg_share, 'rviz/urdf_config.rviz')
robot_state_publisher_node = launch_ros.actions.Node(
package='robot_state_publisher',
executable='robot_state_publisher',
parameters=[{'robot_description': Command(['xacro ', LaunchConfiguration('model')])}]
Has anyone encountered this? How can I solve this problem?
Is this generally useful enough that it should be a full fledged controller?
If so, then the following optimizations must be made:
Hi,
I have followed the "First-Time Robot Setup Guide¶", and my robot is just drifiting in different directions. After trying to move the Sam robot in this repo, I get the same behavior, even worse.
There are also some misconfiguration:
For the misconfigurations I have created a PR:
#57
For the reason the robot is flying away, I have been batteling it, being able to only mitigate it, but not solve it.
When try to build the repo as is under foxy
using colcon build
, I get:
Starting >>> nav2_costmap_filters_demo
Starting >>> nav2_gradient_costmap_plugin
Starting >>> nav2_sms_recovery
Starting >>> nav2_straightline_planner
Starting >>> sam_bot_description
Finished <<< nav2_costmap_filters_demo [0.91s]
Finished <<< sam_bot_description [1.14s]
--- stderr: nav2_gradient_costmap_plugin
/home/chenkel/ros2/nav2_ws/src/navigation2_tutorials/nav2_gradient_costmap_plugin/src/gradient_layer.cpp: In member function ‘virtual void nav2_gradient_costmap_plugin::GradientLayer::onInitialize()’:
/home/chenkel/ros2/nav2_ws/src/navigation2_tutorials/nav2_gradient_costmap_plugin/src/gradient_layer.cpp:70:21: error: ‘using SharedPtr = class std::shared_ptr<rclcpp_lifecycle::LifecycleNode>’ {aka ‘class std::shared_ptr<rclcpp_lifecycle::LifecycleNode>’} has no member named ‘lock’
70 | auto node = node_.lock();
| ^~~~
make[2]: *** [CMakeFiles/nav2_gradient_costmap_plugin_core.dir/build.make:63: CMakeFiles/nav2_gradient_costmap_plugin_core.dir/src/gradient_layer.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:105: CMakeFiles/nav2_gradient_costmap_plugin_core.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed <<< nav2_gradient_costmap_plugin [6.27s, exited with code 2]
Aborted <<< nav2_straightline_planner [10.4s]
Aborted <<< nav2_sms_recovery [11.1s]
Summary: 2 packages finished [11.3s]
1 package failed: nav2_gradient_costmap_plugin
2 packages aborted: nav2_sms_recovery nav2_straightline_planner
3 packages had stderr output: nav2_gradient_costmap_plugin nav2_sms_recovery nav2_straightline_planner
Could someone please tell what modifications must be made in gps waypoint follower package for it to be used in ros2 humble...
Please provide us the solution,it would be a great help!!!!!
Hi,
I'm following the navigation2 tutorial and and was testing the pure pursuit controller. It seems to me that the controllor is not steering. See the gif below.
The path is transformed only once (at setPath
). This means the local goal is never updated. I think the path should be transformed at every computeVelocityCommands
call.
I have a followup question from the Planner plugin - build #36 issue raised. I downloaded ROS2 Galactic since the examples are for Galactic and up. After downloading ROS2 Galactic I tried to install and build Nav2 for Galactic.
When I build Nav2 for source I get the following error on 24/34.
I did the following things:
I followed the tutorial here:
When I had to execute the following commands:
I saw on github there was not a galactic-devel branch to clone from. Therefore, I cloned the galactic branch and went ahead with the build. While building the following error was encountered:
Can someone please help me with this issue or did I clone the wrong branch altogether. I have looked for help online by googling but nothing has worked.
I truly appreciate the help,
Thanks,
I was trying to use nav2_straightline_planner as mentioned here:
https://navigation.ros.org/plugin_tutorials/docs/writing_new_nav2planner_plugin.html
Required Info:
Operating System:
ubuntu20.04
ROS2 Version:
foxy
Version or commit hash:
a1028c5
[controller_server-4] [INFO] [1617794494.106441780] [controller_server]: Passing new path to controller.
[controller_server-4] [ERROR] [1617794494.107058570] [tf_help]: Transform data too old when converting from map to odom
[controller_server-4] [ERROR] [1617794494.107080741] [tf_help]: Data time: 1617794473s 481323259ns, Transform time: 826s 621000000ns
[controller_server-4] [INFO] [1617794495.106504024] [controller_server]: Passing new path to controller.
[controller_server-4] [ERROR] [1617794495.106999333] [tf_help]: Transform data too old when converting from map to odom
[controller_server-4] [ERROR] [1617794495.107018282] [tf_help]: Data time: 1617794473s 481323259ns, Transform time: 827s 521000000ns
[controller_server-4] [INFO] [1617794496.106503821] [controller_server]: Passing new path to controller.
[controller_server-4] [ERROR] [1617794496.106976139] [tf_help]: Transform data too old when converting from map to odom
[controller_server-4] [ERROR] [1617794496.106996291] [tf_help]: Data time: 1617794473s 481323259ns, Transform time: 828s 621000000ns
[controller_server-4] [INFO] [1617794497.306577073] [controller_server]: Passing new path to controller.
[controller_server-4] [ERROR] [1617794497.307159186] [tf_help]: Transform data too old when converting from map to odom
[controller_server-4] [ERROR] [1617794497.307185101] [tf_help]: Data time: 1617794473s 481323259ns, Transform time: 829s 721000000ns
[controller_server-4] [INFO] [1617794498.306491576] [controller_server]: Passing new path to controller.
[controller_server-4] [ERROR] [1617794498.306999256] [tf_help]: Transform data too old when converting from map to odom
[controller_server-4] [ERROR] [1617794498.307018059] [tf_help]: Data time: 1617794473s 481323259ns, Transform time: 830s 721000000ns
[controller_server-4] [INFO] [1617794499.306503259] [controller_server]: Passing new path to controller.
[controller_server-4] [ERROR] [1617794499.307099119] [tf_help]: Transform data too old when converting from map to odom
[controller_server-4] [ERROR] [1617794499.307125979] [tf_help]: Data time: 1617794473s 481323259ns, Transform time: 831s 721000000ns
[controller_server-4] [INFO] [1617794500.306443555] [controller_server]: Passing new path to controller.
[controller_server-4] [ERROR] [1617794500.307062602] [tf_help]: Transform data too old when converting from map to odom
[controller_server-4] [ERROR] [1617794500.307088974] [tf_help]: Data time: 1617794473s 481323259ns, Transform time: 832s 721000000ns
[controller_server-4] [INFO] [1617794501.306475765] [controller_server]: Passing new path to controller.
[controller_server-4] [ERROR] [1617794501.307010382] [tf_help]: Transform data too old when converting from map to odom
When visualising on rviz2 the planner plans perfectly and also the controller follows the path correctly, but when the bot reaches the end of path neither the controller nor the bt_navigator shows the message "Navigation Succeded " and hence the bot never successfully completes its navigation and keeps on trying to reach the goal.
Bot successfully completes its navigation task and [tf_help] error should not come.
Here is my navigation2.yaml file:
amcl:
ros__parameters:
use_sim_time: True
alpha1: 0.2
alpha2: 0.2
alpha3: 0.2
alpha4: 0.2
alpha5: 0.2
base_frame_id: "base_footprint"
beam_skip_distance: 0.5
beam_skip_error_threshold: 0.9
beam_skip_threshold: 0.3
do_beamskip: false
global_frame_id: "map"
lambda_short: 0.1
laser_likelihood_max_dist: 2.0
laser_max_range: 10.0
laser_min_range: 0.22
laser_model_type: "likelihood_field"
max_beams: 60
max_particles: 2000
min_particles: 500
odom_frame_id: "odom"
pf_err: 0.05
pf_z: 0.99
recovery_alpha_fast: 0.0
recovery_alpha_slow: 0.0
resample_interval: 1
robot_model_type: "differential"
save_pose_rate: 0.5
sigma_hit: 0.2
tf_broadcast: true
transform_tolerance: 1.0
update_min_a: 0.2
update_min_d: 0.25
z_hit: 0.5
z_max: 0.05
z_rand: 0.5
z_short: 0.05
scan_topic: scan
amcl_map_client:
ros__parameters:
use_sim_time: True
amcl_rclcpp_node:
ros__parameters:
use_sim_time: True
bt_navigator:
ros__parameters:
use_sim_time: True
global_frame: map
robot_base_frame: base_link
odom_topic: /odom
default_bt_xml_filename: "navigate_w_replanning_and_recovery.xml"
plugin_lib_names:
- nav2_compute_path_to_pose_action_bt_node
- nav2_follow_path_action_bt_node
- nav2_back_up_action_bt_node
- nav2_spin_action_bt_node
- nav2_wait_action_bt_node
- nav2_clear_costmap_service_bt_node
- nav2_is_stuck_condition_bt_node
- nav2_goal_reached_condition_bt_node
- nav2_goal_updated_condition_bt_node
- nav2_initial_pose_received_condition_bt_node
- nav2_reinitialize_global_localization_service_bt_node
- nav2_rate_controller_bt_node
- nav2_distance_controller_bt_node
- nav2_speed_controller_bt_node
- nav2_truncate_path_action_bt_node
- nav2_goal_updater_node_bt_node
- nav2_recovery_node_bt_node
- nav2_pipeline_sequence_bt_node
- nav2_round_robin_node_bt_node
- nav2_transform_available_condition_bt_node
- nav2_time_expired_condition_bt_node
- nav2_distance_traveled_condition_bt_node
bt_navigator_rclcpp_node:
ros__parameters:
use_sim_time: True
controller_server:
ros__parameters:
use_sim_time: True
controller_frequency: 10.0
min_x_velocity_threshold: 0.001
min_y_velocity_threshold: 0.5
min_theta_velocity_threshold: 0.001
controller_plugins: ["FollowPath"]
#DWB parameters
FollowPath:
plugin: "dwb_core::DWBLocalPlanner"
debug_trajectory_details: True
min_vel_x: 0.0
min_vel_y: 0.0
max_vel_x: 0.1
max_vel_y: 0.0
max_vel_theta: 1.5
min_speed_xy: 0.0
max_speed_xy: .1
min_speed_theta: 0.0
# Add high threshold velocity for turtlebot 3 issue.
# https://github.com/ROBOTIS-GIT/turtlebot3_simulations/issues/75
acc_lim_x: 1.5
acc_lim_y: 0.0
acc_lim_theta: 1.2
decel_lim_x: -1.5
decel_lim_y: 0.0
decel_lim_theta: -1.2
vx_samples: 20
vy_samples: 5
vtheta_samples: 20
sim_time: 1.7
linear_granularity: 0.02
angular_granularity: 0.017
transform_tolerance: 0.2
xy_goal_tolerance: 0.05
yaw_goal_tolerance: 0.034
stateful: true
trans_stopped_velocity: 0.25
short_circuit_trajectory_evaluation: True
stateful: True
critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist","ObstacleFootprint"]
BaseObstacle.scale: 0.08
PathAlign.scale: 32.0
PathAlign.forward_point_distance: 0.2
GoalAlign.scale: 24.0
GoalAlign.forward_point_distance: 0.2
PathDist.scale: 32.0
GoalDist.scale: 20.0
RotateToGoal.scale: 32.0
RotateToGoal.slowing_factor: 5.0
RotateToGoal.lookahead_time: -1.0
ObstacleFootprint.scale: 0.08
controller_server_rclcpp_node:
ros__parameters:
use_sim_time: True
local_costmap:
local_costmap:
ros__parameters:
update_frequency: 5.0
publish_frequency: 2.0
global_frame: odom
robot_base_frame: base_link
use_sim_time: False
rolling_window: true
width: 3
height: 3
resolution: 0.05
robot_radius: 0.105
plugins: ["obstacle_layer", "voxel_layer", "inflation_layer"]
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 3.0
obstacle_layer:
plugin: "nav2_costmap_2d::ObstacleLayer"
enabled: True
observation_sources: scan
scan:
topic: /scan
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
voxel_layer:
plugin: "nav2_costmap_2d::VoxelLayer"
enabled: True
publish_voxel_map: True
origin_z: 0.0
z_resolution: 0.05
z_voxels: 16
max_obstacle_height: 2.0
mark_threshold: 0
observation_sources: pointcloud
pointcloud:
topic: /intel_realsense_r200_depth/points
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "PointCloud2"
static_layer:
map_subscribe_transient_local: True
always_send_full_costmap: True
local_costmap_client:
ros__parameters:
use_sim_time: False
local_costmap_rclcpp_node:
ros__parameters:
use_sim_time: False
global_costmap:
global_costmap:
ros__parameters:
update_frequency: 1.0
publish_frequency: 1.0
global_frame: map
robot_base_frame: base_link
use_sim_time: False
robot_radius: 0.105
resolution: 0.05
plugins: ["static_layer", "obstacle_layer", "voxel_layer", "inflation_layer"]
obstacle_layer:
plugin: "nav2_costmap_2d::ObstacleLayer"
enabled: True
observation_sources: scan
scan:
topic: /scan
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
voxel_layer:
plugin: "nav2_costmap_2d::VoxelLayer"
enabled: True
publish_voxel_map: True
origin_z: 0.0
z_resolution: 0.05
z_voxels: 16
max_obstacle_height: 2.0
mark_threshold: 0
observation_sources: pointcloud
pointcloud:
topic: /intel_realsense_r200_depth/points
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "PointCloud2"
static_layer:
plugin: "nav2_costmap_2d::StaticLayer"
map_subscribe_transient_local: True
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
always_send_full_costmap: True
global_costmap_client:
ros__parameters:
use_sim_time: False
global_costmap_rclcpp_node:
ros__parameters:
use_sim_time: False
map_server:
ros__parameters:
use_sim_time: False
yaml_filename: "turtlebot3_world.yaml"
map_saver:
ros__parameters:
use_sim_time: False
save_map_timeout: 5000
free_thresh_default: 0.25
occupied_thresh_default: 0.65
planner_server:
ros__parameters:
expected_planner_frequency: 5.0
use_sim_time: False
planner_plugins: ["GridBased"]
GridBased:
plugin: "nav2_straightline_planner/StraightLine"
interpolation_resolution: 0.1
planner_server_rclcpp_node:
ros__parameters:
use_sim_time: False
recoveries_server:
ros__parameters:
costmap_topic: local_costmap/costmap_raw
footprint_topic: local_costmap/published_footprint
cycle_frequency: 10.0
recovery_plugins: ["spin", "backup", "wait"]
spin:
plugin: "nav2_recoveries/Spin"
backup:
plugin: "nav2_recoveries/BackUp"
wait:
plugin: "nav2_recoveries/Wait"
global_frame: odom
robot_base_frame: base_link
transform_timeout: 0.1
use_sim_time: False
simulate_ahead_time: 2.0
max_rotational_vel: 1.0
min_rotational_vel: 0.4
rotational_acc_lim: 3.2
robot_state_publisher:
ros__parameters:
use_sim_time: False
Hello, I am trying to run the Interactive GPS Waypoint Follower.
I have launch these instruction:
TERMINAL 1:
ros2 launch nav2_gps_waypoint_follower_demo gps_waypoint_follower.launch.py use_rviz:=False
TERMINAL 2:
ros2 launch nav2_gps_waypoint_follower_demo mapviz.launch.py
TERMINAL 3:
ros2 run nav2_gps_waypoint_follower_demo interactive_waypoint_follower
When I run interactive_waypoint_follower node and click on mapviz to send waypoint I get fle ollowing output from its terminal(TERMINAL 3):
ros2 run nav2_gps_waypoint_follower_demo interactive_waypoint_follower
[INFO] [1701172139.520198172] [basic_navigator]: robot_localization/get_state service not available, waiting...
[INFO] [1701172140.522618706] [basic_navigator]: robot_localization/get_state service not available, waiting...
[INFO] [1701172141.524480719] [basic_navigator]: robot_localization/get_state service not available, waiting...
[INFO] [1701172142.526854488] [basic_navigator]: robot_localization/get_state service not available, waiting...
[INFO] [1701172143.529257288] [basic_navigator]: robot_localization/get_state service not available, waiting...
[INFO] [1701172144.531678462] [basic_navigator]: robot_localization/get_state service not available, waiting...
[INFO] [1701172145.533696952] [basic_navigator]: robot_localization/get_state service not available, waiting...
[INFO] [1701172146.535800306] [basic_navigator]: robot_localization/get_state service not available, waiting...
And this from nav2_gps_waypoint_follower_demo mapviz terminal(TERMINAL 2):
[mapviz-1] [WARN] [1701172112.460493075] [swri_transform_util::Transformer]: Wgs84Transformer not initialized
[mapviz-1] [WARN] [1701172112.460534350] [swri_transform_util::Transformer]: Wgs84Transformer not initialized
[initialize_origin.py-2] [INFO] [1701172112.461930965] [initialize_origin]: Got NavSat message.
[initialize_origin.py-2] [INFO] [1701172112.462575108] [initialize_origin]: Origin from 'navsat' source set to 38.1614564605658, -122.45460714408775, 488.3200360890478
[initialize_origin.py-2] [INFO] [1701172112.463337905] [initialize_origin]: Successfully set origin; unsubscribing.
[mapviz-1] [INFO] [1701172112.480655151] [mapviz]: OK
[mapviz-1] [INFO] [1701172112.482309682] [mapviz]: OK
[mapviz-1] [INFO] [1701172138.485441870] [mapviz]: Point in wgs84: -122.454,38.1612
Why the robot_localization/get_state service is not avaiable? I have not change anything in the example code.
Hi all,
I am currently trying to write a custom (local) costmap plugin.
Unfortunately, I am somewhat lost as to what my mistake or misunderstanding is.
So far I'm not actually doing much more than just setting each value of the costmap to 240. You can see the full code below.
void
SemLayer::onInitialize() {
auto node = node_.lock();
obj_sub_ = node->create_subscription<object_msgs::msg::Object>("/object_detection", rclcpp::SensorDataQoS(),std::bind(&SemLayer::objectCallback, this, std::placeholders::_1));
RCLCPP_INFO(node->get_logger(), "SemLayer: subscribed to " "topic %s", obj_sub_->get_topic_name());
declareParameter("enabled", rclcpp::ParameterValue(true));
declareParameter("publish_occgrid", rclcpp::ParameterValue(false));
get_parameters();
if (publish_occgrid_) {
grid_pub_ =
node->create_publisher<nav_msgs::msg::OccupancyGrid>("sem_grid", 1);
grid_pub_->on_activate();
}
}
void
SemLayer::get_parameters() {
auto node = node_.lock();
node->get_parameter(name_ + "." + "enabled", enabled_);
node->get_parameter(name_ + "." + "publish_occgrid", publish_occgrid_);
}
void
SemLayer::objectCallback(const object_msgs::msg::Object::SharedPtr msg) {
obj_message_mutex_.lock();
object = *msg;
obj_message_mutex_.unlock();
obj_detected_ = true;
}
void
SemLayer::updateBounds(
double /*robot_x*/, double /*robot_y*/, double /*robot_yaw*/, double * min_x, double * min_y, double * max_x, double * max_y)
{
if (need_recalculation_) {
last_min_x_ = *min_x;
last_min_y_ = *min_y;
last_max_x_ = *max_x;
last_max_y_ = *max_y;
// For some reason when I make these -<double>::max() it does not
// work with Costmap2D::worldToMapEnforceBounds(), so I'm using
// -<float>::max() instead.
*min_x = -std::numeric_limits<float>::max();
*min_y = -std::numeric_limits<float>::max();
*max_x = std::numeric_limits<float>::max();
*max_y = std::numeric_limits<float>::max();
need_recalculation_ = false;
} else {
double tmp_min_x = last_min_x_;
double tmp_min_y = last_min_y_;
double tmp_max_x = last_max_x_;
double tmp_max_y = last_max_y_;
last_min_x_ = *min_x;
last_min_y_ = *min_y;
last_max_x_ = *max_x;
last_max_y_ = *max_y;
*min_x = std::min(tmp_min_x, *min_x);
*min_y = std::min(tmp_min_y, *min_y);
*max_x = std::max(tmp_max_x, *max_x);
*max_y = std::max(tmp_max_y, *max_y);
}
}
void
SemLayer::onFootprintChanged()
{
need_recalculation_ = true;
RCLCPP_DEBUG(rclcpp::get_logger(
"nav2_costmap_2d"), "SemLayer::onFootprintChanged(): num footprint points: %lu",
layered_costmap_->getFootprint().size());
}
void
SemLayer::updateCosts(nav2_costmap_2d::Costmap2D &master_grid,int min_i, int min_j, int max_i, int max_j) {
if (!enabled_) {
return;
}
if (!obj_detected_){
return;
}
// unsigned char* master_array = master_grid.getCharMap();
unsigned int size_x = master_grid.getSizeInCellsX(), size_y = master_grid.getSizeInCellsY();
min_i = std::max(0, min_i);
min_j = std::max(0, min_j);
max_i = std::min(static_cast<int>(size_x), max_i);
max_j = std::min(static_cast<int>(size_y), max_j);
for (int x = min_i; x < max_i; x++) {
for (int y = min_j; y < max_j; y++) {
// int index = master_grid.getIndex(x, y);
master_grid.setCost(x, y, 240);
}
}
obj_detected_ = false;
}
} // namespace nav2_sem_costmap_plugin
#include "pluginlib/class_list_macros.hpp"
PLUGINLIB_EXPORT_CLASS(nav2_sem_costmap_plugin::SemLayer, nav2_costmap_2d::Layer)
I include the plugin in the following way:
local_costmap:
local_costmap:
ros__parameters:
update_frequency: 5.0
publish_frequency: 2.0
global_frame: odom
robot_base_frame: base_link
use_sim_time: True
rolling_window: true
width: 10
height: 10
resolution: 0.05
robot_radius: 0.17
plugins: ["obstacle_layer", "sem_layer"]
# plugins: ["obstacle_layer", "inflation_layer"]
obstacle_layer:
plugin: "nav2_costmap_2d::ObstacleLayer"
enabled: True
observation_sources: scan
scan:
topic: /scan
max_obstacle_height: 2.0
clearing: True
marking: True
data_type: "LaserScan"
raytrace_max_range: 8.0
raytrace_min_range: 0.0
obstacle_max_range: 9.5
obstacle_min_range: 0.0
sem_layer:
plugin: "nav2_sem_costmap_plugin::SemLayer"
enabled: True
publish_occgrid: False
inflation_layer:
plugin: "nav2_costmap_2d::InflationLayer"
cost_scaling_factor: 0.4
inflation_radius: 0.32
always_send_full_costmap: True
When running the navigation, I get the following error: [controller_server]: [follow_path] [ActionServer] Aborting handle.
The corresponding controller server is defined in the following way:
controller_server:
ros__parameters:
use_sim_time: True
controller_frequency: 10.0
min_x_velocity_threshold: 0.001
min_y_velocity_threshold: 0.5
min_theta_velocity_threshold: 0.001
failure_tolerance: 0.3
progress_checker_plugin: "progress_checker"
goal_checker_plugins: ["general_goal_checker"] # "precise_goal_checker"
controller_plugins: ["FollowPath"]
What exactly does this error indicate and how do I need to adjust my code to get rid of it?
Thanks in advance!
nav2_sms_recovery does not work now
env
ubuntu20.04
galactic
my idea
add CMakeLists.txt bellow
find_package(rosidl_default_generators REQUIRED)
find_package(action_msgs REQUIRED)
reference:
https://docs.ros.org/en/foxy/Tutorials/Actions/Creating-an-Action.html
stderr: nav2_gradient_costmap_plugin
/home/youssef/ros2_ws/src/navigation2_tutorials/nav2_gradient_costmap_plugin/src/gradient_layer.cpp: In member function ‘virtual void nav2_gradient_costmap_plugin::GradientLayer::onInitialize()’:
/home/youssef/ros2_ws/src/navigation2_tutorials/nav2_gradient_costmap_plugin/src/gradient_layer.cpp:70:21: error: ‘using SharedPtr = class std::shared_ptr<rclcpp_lifecycle::LifecycleNode>’ {aka ‘class std::shared_ptr<rclcpp_lifecycle::LifecycleNode>’} has no member named ‘lock’
70 | auto node = node_.lock();
| ^~~~
make[2]: *** [CMakeFiles/nav2_gradient_costmap_plugin_core.dir/build.make:63: CMakeFiles/nav2_gradient_costmap_plugin_core.dir/src/gradient_layer.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:105: CMakeFiles/nav2_gradient_costmap_plugin_core.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
Thank you for your work on the nav2_gps_waypoint_follower_demo package. To give it a try, I followed this tutorial https://navigation.ros.org/tutorials/docs/navigation2_with_gps.html .
On my main system, I use a galactic ROS to run the package.
In part 2 of the tutorial (Setup Navigation system ) , when I run the following command, ros2 launch nav2_gps_waypoint_follower_demo gps_waypoint_follower.launch.py use_rviz:=True
I get a problem like this:
[bt_navigator-11] [ERROR] [1696270449.894657632] [bt_navigator]: Original error: Could not load library: libnav2_are_error_codes_active_condition_bt_node.so: cannot open shared object file: No such file or directory
this on several libraries, namely :
I thought it was a version problem and I did a docker with Humble to run the package and I got the same errors but this time I removed the following plugins from the nav2 configuration file:
I was able to have autonomous gps navigation.
Can you help me understand what's going on?
When we rosdep install navigation2_tutorials it is not installing turtlebot3_gazebo.
In ROS1,we have “rospack plugins --attrib=plugin XX” to check the plugins.
In ROS2, how can we check the plugins?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.