@小鱼 感谢小鱼儿的帮助。我将 gmapping的 Durability 修改成了 transient_local ,map_saver保持一致了,也能进行保存工作。困扰了快一个星期了,感谢帮助。
重要提示
1157354382 发布的最佳帖子
-
RE: ROS2 机器人在静止下地图无法保存,需在移动时才能保存地图
1157354382 发布的最新帖子
-
cartographer建图,雷达抖动
版本为 ubuntu20 galactic 旭日X3派
使用 cartographer建图时,雷达抖动严重。
就是刚开始还不抖动,但是旋转一下,就开始抖动,小车停下来也在抖动。 -
RE: submap_slices and last_frame_id is empty问题cartographer建图
@2631231868 wa 你好 我就是使用了odom 来建图,就是显示酱紫哎,请问大佬是 odom哪里的原因呢
-
robot_localization
各位大佬好
版本为ubuntu20 galactic
使用robot_localization_ekf 融合 imu和 odom。
融合后 查看 odom_combined和 base_footprint 的转化关系,发现:
旋转小车时,odom_combined和 base_footprint之间有明显的变化,且连续。测试
gmappping,也能正常建图;但是在 前后移动小车,他们之间并无转换关系,建图时 rviz上小车也不动。如图所示:
下面是我的 odom和 imu 的融合部分:odom0_config: [ False, False, false, false, false, true, true, True, false, false, false, True, false, false, false] imu0_config: [ false, false, false, false, false, True, false, false, false, false, false, True, true, false, false]
-
RE: ROS2 机器人在静止下地图无法保存,需在移动时才能保存地图
@小鱼 感谢小鱼儿的帮助。我将 gmapping的 Durability 修改成了 transient_local ,map_saver保持一致了,也能进行保存工作。困扰了快一个星期了,感谢帮助。
-
RE: ROS2 机器人在静止下地图无法保存,需在移动时才能保存地图
我似乎是找到了原因,可能是Qos没有相匹配,导致信息不能相互传输。但是具体修改哪个东西的qos我不是很懂,因为map不是gmapping自己发布的嘛,那他这个要和什么相匹配呢。
这是rviz上的日志:ros2 run nav2_map_server map_saver_cli [INFO] [1677118775.546330774] [map_saver]: map_saver lifecycle node launched. Waiting on external lifecycle transitions to activate See https://design.ros2.org/articles/node_lifecycle.html for more information. [INFO] [1677118775.546418351] [map_saver]: Creating [INFO] [1677118775.546718313] [map_saver]: Saving map from 'map' topic to '' file [WARN] [1677118775.546743987] [map_saver]: Free threshold unspecified. Setting it to default value: 0.250000 [WARN] [1677118775.546763269] [map_saver]: Occupied threshold unspecified. Setting it to default value: 0.650000 [WARN] [1677118775.547629798] [map_saver]: New publisher discovered on topic '/map', offering incompatible QoS. No messages will be sent to it. Last incompatible policy: DURABILITY_QOS_POLICY [ERROR] [1677118777.547682744] [map_saver]: Failed to spin map subscription [INFO] [1677118777.548951015] [map_saver]: Destroying
这是gmapping报错部分:
[slam_gmapping-6] [WARN] [1677118742.381892406] [slam_gmapping]: New subscription discovered on topic '/map', requesting incompatible QoS. No messages will be sent to it. Last incompatible policy: DURABILITY_QOS_POLICY
-
ROS2 机器人在静止下地图无法保存,需在移动时才能保存地图
大佬 你们好
版本 20.04 foxy
在使用gmapping建好地图后,使用 map_saver无法正常保存地图,显示结果图下日志如下
ros2 run nav2_map_server map_saver_cli [INFO] [1676945889.284354723] [map_saver]: map_saver lifecycle node launched. Waiting on external lifecycle transitions to activate See https://design.ros2.org/articles/node_lifecycle.html for more information. [INFO] [1676945889.284500481] [map_saver]: Creating [INFO] [1676945889.284764118] [map_saver]: Saving map from 'map' topic to '' file [WARN] [1676945889.284791241] [map_saver]: Free threshold unspecified. Setting it to default value: 0.250000 [WARN] [1676945889.284822450] [map_saver]: Occupied threshold unspecified. Setting it to default value: 0.650000 [ERROR] [1676945891.288356825] [map_saver]: Failed to save the map: timeout [INFO] [1676945891.288500232] [map_saver]: Destroying
在移动时地图就能正常保存
另附上我的tf树
-
RE: NAV2 设置单导航点失败,小车不移动
@1157354382 另附上我的 bt_navigator
bt_navigator: ros__parameters: use_sim_time: false global_frame: map robot_base_frame: base_footprint odom_topic: /odom enable_groot_monitoring: True groot_zmq_publisher_port: 1666 groot_zmq_server_port: 1667 default_bt_xml_filename: "/home/zr/catkin_ws/src/wheeltec_robot_nav/param/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 - nav2_is_battery_low_condition_bt_node - nav2_navigate_to_pose_action_bt_node
-
RE: NAV2 设置单导航点失败,小车不移动
@小鱼 非常感谢鱼总的解答。因为我是用的是 bringup 里的文件改写的,注意到官方里是使用 default_bt_xml_filename 来加载默认行为树,但是在 nav2 的文档里是使用 default_nav_to_pose_bt_xml 来加载。我查阅到似乎 default_bt_xml_filename 是 foxy 版本的加载方式。但是当我修改后,本来能正常运行的导航包 反而报错 ,这就很头大。报错内容为:
[bt_navigator-7] [INFO] [1669033140.299276707] [bt_navigator]: Configuring [bt_navigator-7] [bt_navigator-7] >>> [rcutils|error_handling.c:108] rcutils_set_error_state() [bt_navigator-7] This error state is being overwritten: [bt_navigator-7] [bt_navigator-7] 'invalid empty action name, at /tmp/binarydeb/ros-foxy-rcl-action-1.1.13/src/rcl_action/names.c:36' [bt_navigator-7] [bt_navigator-7] with this new error message: [bt_navigator-7] [bt_navigator-7] 'failed to get goal service name, at /tmp/binarydeb/ros-foxy-rcl-action-1.1.13/src/rcl_action/action_client.c:215' [bt_navigator-7] [bt_navigator-7] rcutils_reset_error() should be called after error handling to avoid this. [bt_navigator-7] <<< [bt_navigator-7] [ERROR] [1669033140.356554832] [bt_navigator_rclcpp_node.rclcpp_action]: Error in destruction of rcl action client handle: action client implementation is invalid, at /tmp/binarydeb/ros-foxy-rcl-action-1.1.13/src/rcl_action/action_client.c:470 [ERROR] [bt_navigator-7]: process has died [pid 6177, exit code -11, cmd '/opt/ros/foxy/lib/nav2_bt_navigator/bt_navigator --ros-args -r __node:=bt_navigator -r __node:=bt_navigator --params-file /tmp/tmpxsdf_anw -r /tf:=tf -r /tf_static:=tf_static'].
还望鱼总多多指教
-
RE: NAV2 设置单导航点失败,小车不移动
@1157354382 ```
- 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
这是我的 plugin_lib_names
- nav2_compute_path_to_pose_action_bt_node