鱼香社区

    • 登录
    • 搜索
    • 版块
    • 最新
    • 未解决
    • 已解决
    • 群组
    1. 主页
    2. 3568485143

    重要提示

    鱼香小铺正式开业,最低499可入手一台能建图会导航的移动机器人,淘宝搜店:鱼香ROS 或点击链接查看。
    社区建设靠大家,欢迎参与社区建设赞助计划

    提问前必看的发帖注意事项—— 提问的智慧
    社区使用指南—如何添加标签修改密码
    • 资料
    • 关注 0
    • 粉丝 1
    • 主题 8
    • 帖子 21
    • 最佳 0
    • 有争议的 0
    • 群组 0

    一二一三八

    @3568485143

    0
    声望
    1
    资料浏览
    21
    帖子
    1
    粉丝
    0
    关注
    注册时间 最后登录

    3568485143 取消关注 关注

    3568485143 发布的最新帖子

    • rosdepc无法安装依赖

      ros2版本galactic
      在导航实物部署中,想使用teb_local_planner算法对dwb算法进行替换,但在teb算法的源码安装中出现编译时缺少libg2o依赖库的问题。于是想使用rosdepc安装libg2o依赖库。
      运行命令:rosdepc install -i --from-path src --rosdistro galactic -y
      出现错误:欢迎使用国内版rosdep之rosdepc,我是作者小鱼!
      欢迎关注公众号《鱼香ROS》加入交流群
      小鱼rosdepc正式为您服务


      ERROR: the following packages/stacks could not have their rosdep keys resolved
      to system dependencies:
      teb_local_planner: Cannot locate rosdep definition for [libg2o]

      rosdepc已进行过init和update
      求助怎么解决

      发布在 综合问题 rosdepc ros2
      3568485143
      一二一三八
    • RE: 导航实物部署

      @毛哥成山轮胎机油保养 我初步判定可能是我的里程计消息的问题。我写的里程计节点可能不完善,正在尝试修改。再次感谢您的回复,希望能多多交流,一起学习。

      发布在 Nav2
      3568485143
      一二一三八
    • RE: 导航实物部署

      @毛哥成山轮胎机油保养 没有使用imu,但是我查过资料,融合定位可以使用单独的里程计进行定位,这个应该不是问题的原因,谢谢您🙏

      发布在 Nav2
      3568485143
      一二一三八
    • 导航实物部署

      在实物机器人上面进行导航部署,已完成建图操作。实物机器人能提供里程计信息。传感器为镭神m10_p激光雷达。但在进行导航实践时出现错误:
      [amcl-8] [INFO] [1693798122.384041701] [amcl_rclcpp_node]: Message Filter dropping message: frame 'laser_link' at time 1693798121.550 for reason 'discarding message because the queue is full'
      [rviz2-16] [INFO] [1693798122.398805178] [rviz2]: Message Filter dropping message: frame 'laser_link' at time 1693798121.550 for reason 'discarding message because the queue is full'

      部署在orin nx板子上面,ubuntu系统为20.04,ros2版本为galactic。

      launch文件nav2.launch.py如下:
      import os
      from launch_ros.substitutions import FindPackageShare
      from ament_index_python.packages import get_package_share_directory
      from launch import LaunchDescription
      from launch.actions import DeclareLaunchArgument
      from launch.actions import IncludeLaunchDescription,ExecuteProcess
      from launch.launch_description_sources import PythonLaunchDescriptionSource
      from launch.substitutions import LaunchConfiguration
      from launch_ros.actions import Node

      def generate_launch_description():

      nav2_bringup_dir = get_package_share_directory('nav2_bringup')
      launch_dir = get_package_share_directory('nav2')
      pkg_share_laser = get_package_share_directory('lslidar_driver')
      
      
      
      rviz_config_dir = os.path.join(nav2_bringup_dir,'rviz','nav2_default_view.rviz')
      urdf_model_path = os.path.join(launch_dir, f'urdf/{"fishbot_gazebo.urdf"}')
      
      #是否使用仿真时间,我们用gazebo,这里设置成true
      use_sim_time = LaunchConfiguration('use_sim_time', default='false')
      map_yaml_path = LaunchConfiguration('map',default= os.path.join(launch_dir,'map','map4.yaml'))
      nav2_param_path = LaunchConfiguration('params_file',default=os.path.join(launch_dir,'param','nav.yaml'))
      # 地图的分辨率
      # 地图的发布周期    
      
      
      return LaunchDescription([
          DeclareLaunchArgument('use_sim_time',default_value=use_sim_time,description='Use simulation (Gazebo) clock if true'),
          DeclareLaunchArgument('map',default_value=map_yaml_path,description='Full path to map file to load'),
          DeclareLaunchArgument('params_file',default_value=nav2_param_path,description='Full path to param file to load'),
      
          IncludeLaunchDescription(
              PythonLaunchDescriptionSource([pkg_share_laser,'/launch','/lsm10p_net_launch.py'])),
          
          
          ExecuteProcess(
              cmd=['sleep', '10'],
              output='screen'),
      
      
          Node(
              package='robot_state_publisher',
              executable='robot_state_publisher',
              name='robot_state_publisher',
              arguments=[urdf_model_path]),
      
          Node(
              package='bringup',
              executable='odom',
              name='odom_node',
              output='screen'),
      
          Node(
              package='joint_state_publisher_gui',
              executable='joint_state_publisher_gui',
              name='joint_state_publisher_gui',
              arguments=[urdf_model_path]),
          
          
          Node(
              package='robot_localization',
              executable='ekf_node',
              name='ekf_filter_node',
              output='screen',
              parameters=[os.path.join(launch_dir, 'conf/ekf.yaml'),
                          {'use_sim_time': use_sim_time}]),
      
      
          IncludeLaunchDescription(
              PythonLaunchDescriptionSource([nav2_bringup_dir,'/launch','/bringup_launch.py']),
              launch_arguments={
                  'map': map_yaml_path,
                  'use_sim_time': use_sim_time,
                  'params_file': nav2_param_path}.items(),),
      
          Node(
                package='rviz2',
                executable='rviz2',
                name='rviz2',
                arguments=['-d', rviz_config_dir],
                parameters=[{'use_sim_time': use_sim_time}],
                output='screen'),])
      

      其中odom_node是自己写的串口通信模块,用于发布里程计信息和订阅cmd_vel信息。

      nav的配置文件nav.yaml如下:
      amcl:
      ros__parameters:
      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: 100.0
      laser_min_range: -1.0
      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: "nav2_amcl::DifferentialMotionModel"
      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
      map_topic: map
      set_initial_pose: false
      always_reset_initial_pose: false
      initial_pose:
      x: 0.0
      y: 0.0
      z: 0.0
      yaw: 0.0

      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
      bt_loop_duration: 10
      default_server_timeout: 20
      enable_groot_monitoring: True
      groot_zmq_publisher_port: 1666
      groot_zmq_server_port: 1667
      # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:
      # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml
      # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml
      # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.
      plugin_lib_names:
      - nav2_compute_path_to_pose_action_bt_node
      - nav2_compute_path_through_poses_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_single_trigger_bt_node
      - nav2_is_battery_low_condition_bt_node
      - nav2_navigate_through_poses_action_bt_node
      - nav2_navigate_to_pose_action_bt_node
      - nav2_remove_passed_goals_action_bt_node
      - nav2_planner_selector_bt_node
      - nav2_controller_selector_bt_node
      - nav2_goal_checker_selector_bt_node

      bt_navigator_rclcpp_node:
      ros__parameters:
      use_sim_time: True

      controller_server:
      ros__parameters:
      use_sim_time: True
      controller_frequency: 20.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"]

      # Progress checker parameters
      progress_checker:
        plugin: "nav2_controller::SimpleProgressChecker"
        required_movement_radius: 0.5
        movement_time_allowance: 10.0
      # Goal checker parameters
      #precise_goal_checker:
      #  plugin: "nav2_controller::SimpleGoalChecker"
      #  xy_goal_tolerance: 0.25
      #  yaw_goal_tolerance: 0.25
      #  stateful: True
      general_goal_checker:
        stateful: True
        plugin: "nav2_controller::SimpleGoalChecker"
        xy_goal_tolerance: 0.25
        yaw_goal_tolerance: 0.25
      # 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.26
        max_vel_y: 0.0
        max_vel_theta: 1.0
        min_speed_xy: 0.0
        max_speed_xy: 0.26
        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: 2.5
        acc_lim_y: 0.0
        acc_lim_theta: 3.2
        decel_lim_x: -2.5
        decel_lim_y: 0.0
        decel_lim_theta: -3.2
        vx_samples: 20
        vy_samples: 5
        vtheta_samples: 20
        sim_time: 1.7
        linear_granularity: 0.05
        angular_granularity: 0.025
        transform_tolerance: 0.2
        xy_goal_tolerance: 0.25
        trans_stopped_velocity: 0.25
        short_circuit_trajectory_evaluation: True
        stateful: True
        critics: ["RotateToGoal", "Oscillation", "BaseObstacle", "GoalAlign", "PathAlign", "PathDist", "GoalDist"]
        BaseObstacle.scale: 0.02
        PathAlign.scale: 32.0
        PathAlign.forward_point_distance: 0.1
        GoalAlign.scale: 24.0
        GoalAlign.forward_point_distance: 0.1
        PathDist.scale: 32.0
        GoalDist.scale: 24.0
        RotateToGoal.scale: 32.0
        RotateToGoal.slowing_factor: 5.0
        RotateToGoal.lookahead_time: -1.0
      

      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: True
      rolling_window: true
      width: 3
      height: 3
      resolution: 0.05
      robot_radius: 0.40
      plugins: ["voxel_layer", "inflation_layer"]
      inflation_layer:
      plugin: "nav2_costmap_2d::InflationLayer"
      cost_scaling_factor: 3.0
      inflation_radius: 0.55
      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: scan
      scan:
      topic: /scan
      max_obstacle_height: 2.0
      clearing: True
      marking: True
      data_type: "LaserScan"
      raytrace_max_range: 3.0
      raytrace_min_range: 0.0
      obstacle_max_range: 2.5
      obstacle_min_range: 0.0
      static_layer:
      map_subscribe_transient_local: True
      always_send_full_costmap: True
      local_costmap_client:
      ros__parameters:
      use_sim_time: True
      local_costmap_rclcpp_node:
      ros__parameters:
      use_sim_time: True

      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: True
      robot_radius: 0.40
      resolution: 0.05
      track_unknown_space: true
      plugins: ["static_layer", "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: 3.0
      raytrace_min_range: 0.0
      obstacle_max_range: 2.5
      obstacle_min_range: 0.0
      static_layer:
      plugin: "nav2_costmap_2d::StaticLayer"
      map_subscribe_transient_local: True
      inflation_layer:
      plugin: "nav2_costmap_2d::InflationLayer"
      cost_scaling_factor: 3.0
      inflation_radius: 0.55
      always_send_full_costmap: True
      global_costmap_client:
      ros__parameters:
      use_sim_time: True
      global_costmap_rclcpp_node:
      ros__parameters:
      use_sim_time: True

      map_server:
      ros__parameters:
      use_sim_time: True
      yaml_filename: "map4.yaml"
      topic_name: "map"
      frame_id: "map"

      map_saver:
      ros__parameters:
      use_sim_time: True
      save_map_timeout: 5.0
      free_thresh_default: 0.25
      occupied_thresh_default: 0.65
      map_subscribe_transient_local: True

      planner_server:
      ros__parameters:
      expected_planner_frequency: 20.0
      use_sim_time: True
      planner_plugins: ["GridBased"]
      GridBased:
      plugin: "nav2_navfn_planner/NavfnPlanner"
      tolerance: 0.5
      use_astar: false
      allow_unknown: true

      planner_server_rclcpp_node:
      ros__parameters:
      use_sim_time: True

      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: true
      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: True

      waypoint_follower:
      ros__parameters:
      loop_rate: 20
      stop_on_failure: false
      waypoint_task_executor_plugin: "wait_at_waypoint"
      wait_at_waypoint:
      plugin: "nav2_waypoint_follower::WaitAtWaypoint"
      enabled: True
      waypoint_pause_duration: 200

      运行ros2 launch nav2 nav2.launch.py,终端显示错误:
      [amcl-8] [INFO] [1693802494.007698765] [amcl_rclcpp_node]: Message Filter dropping message: frame 'laser_link' at time 1693802493.174 for reason 'discarding message because the queue is full'
      [rviz2-16] [INFO] [1693802494.019894090] [rviz2]: Message Filter dropping message: frame 'laser_link' at time 1693802493.174 for reason 'discarding message because the queue is full'

      求助大佬们怎么解决。感激不尽!!!

      发布在 Nav2 ros2 nav2
      3568485143
      一二一三八
    • RE: 关于ros2多机器人仿真的问题

      老哥请问你知道怎么添加多个机器人吗?求告知

      发布在 仿真
      3568485143
      一二一三八
    • RE: nav2进行导航时出现错误,求助!!

      @小鱼 鱼哥救命!!!

      发布在 Nav2
      3568485143
      一二一三八
    • nav2进行导航时出现错误,求助!!

      根据《动手学ros2》进行fishbot的nav2导航仿真,在执行程序:
      ros2 launch fishbot_navigation2 navigation2.launch.py
      时终端出现以下错误:
      [bt_navigator-7] [ERROR] []: Caught exception in callback for transition 10
      [bt_navigator-7] [ERROR] []: Original error: Could not load library: /home/outerman1/fishbot_ws/install/nav2_behavior_tree/lib/libnav2_compute_path_to_pose_action_bt_node.so: undefined symbol: _ZTIN2BT14CoroActionNodeE
      [bt_navigator-7] [WARN] []: Error occurred while doing error handling.
      [bt_navigator-7] [FATAL] [bt_navigator]: Lifecycle node entered error state
      [lifecycle_manager-1] [ERROR] [lifecycle_manager]: Failed to change state for node: bt_navigator
      [lifecycle_manager-1] [ERROR] [lifecycle_manager]: Failed to bring up nodes: aborting bringup

      rviz2中显示的内容如下:
      6a808f71-ace5-4e6f-a554-9ac267ade9a7-2023-04-11 07-08-23 的屏幕截图.png

      对照github上鱼哥发的源码,发现代码部分不存在问题

      当前使用的是ros2-eloquent版本,ubuntu是18.04,源码安装nav2和apt安装nav2都尝试过,均出现以上错误。

      卡了好几天,希望大佬帮助一下,感谢!!

      发布在 Nav2 nav2 ros2
      3568485143
      一二一三八
    • RE: 求助,源码安装cartographer出错

      @小鱼 ros2版本是eloquent,ubuntu版本是18.04。ros2安装了,rosdepc也装了。根据《动手学ros2》中进行cartographer的源码安装,报错如下:

      1.使用rosdepc安装所需依赖:
      rosdepc install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y
      时出现以下错误:

      欢迎使用国内版rosdep之rosdepc,我是作者小鱼!
      欢迎关注公众号《鱼香ROS》加入交流群
      小鱼rosdepc正式为您服务
      ERROR: the following packages/stacks could not have their rosdep keys resolved
      to system dependencies:
      cartographer: [libabsl-dev] defined as "not available" for OS version [bionic]
      cartographer_ros: Cannot locate rosdep definition for [rosbag2_storage]
      cartographer_rviz: [libabsl-dev] defined as "not available" for OS version [bionic]
      Continuing to install resolvable dependencies...
      #All required rosdeps installed successfully
      如果在使用过程中遇到任何问题,欢迎通过fishros.org.cn反馈,最后加入QQ交流群 686914208(入群口令:一键安装)

      2.跳过1中的错误,直接在执行编译环节
      colcon build --packages-up-to cartographer_ros
      时出现以下错误:

      outerman1@ubuntu:~/fishbot_ws$ colcon build --packages-up-to cartographer_ros
      Starting >>> cartographer
      Starting >>> cartographer_ros_msgs
      Finished <<< cartographer_ros_msgs [2.34s]
      Finished <<< cartographer [4.44s]
      Starting >>> cartographer_ros
      --- stderr: cartographer_ros
      CMake Error at CMakeLists.txt:41 (find_package):
      By not providing "Findrosbag2_cpp.cmake" in CMAKE_MODULE_PATH this project
      has asked CMake to find a package configuration file provided by
      "rosbag2_cpp", but CMake did not find one.
      Could not find a package configuration file provided by "rosbag2_cpp" with
      any of the following names:
      rosbag2_cppConfig.cmake
      rosbag2_cpp-config.cmake
      Add the installation prefix of "rosbag2_cpp" to CMAKE_PREFIX_PATH or set
      "rosbag2_cpp_DIR" to a directory containing one of the above files. If
      "rosbag2_cpp" provides a separate development package or SDK, be sure it
      has been installed.
      Failed <<< cartographer_ros [0.46s, exited with code 1]
      Summary: 2 packages finished [5.13s]
      1 package failed: cartographer_ros
      1 package had stderr output: cartographer_ros

      请问怎么解决,感谢!

      发布在 ROS2
      3568485143
      一二一三八
    • RE: 求助,源码安装cartographer出错

      @小鱼 ros2安装了,rosdepc也装了,然后在cartographer安装环节执行
      rosdepc install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y
      时出现以下错误:
      欢迎使用国内版rosdep之rosdepc,我是作者小鱼!
      欢迎关注公众号《鱼香ROS》加入交流群
      小鱼rosdepc正式为您服务


      ERROR: the following packages/stacks could not have their rosdep keys resolved
      to system dependencies:
      cartographer: [libabsl-dev] defined as "not available" for OS version [bionic]
      cartographer_ros: Cannot locate rosdep definition for [rosbag2_storage]
      cartographer_rviz: [libabsl-dev] defined as "not available" for OS version [bionic]
      Continuing to install resolvable dependencies...
      #All required rosdeps installed successfully

      如果在使用过程中遇到任何问题,欢迎通过fishros.org.cn反馈,最后加入QQ交流群 686914208(入群口令:一键安装)

      最后在执行colcon build --packages-up-to cartographer_ros环节时出现以下错误:
      outerman1@ubuntu:~/fishbot_ws$ colcon build --packages-up-to cartographer_ros
      Starting >>> cartographer
      Starting >>> cartographer_ros_msgs
      Finished <<< cartographer_ros_msgs [2.34s]
      Finished <<< cartographer [4.44s]
      Starting >>> cartographer_ros
      --- stderr: cartographer_ros
      CMake Error at CMakeLists.txt:41 (find_package):
      By not providing "Findrosbag2_cpp.cmake" in CMAKE_MODULE_PATH this project
      has asked CMake to find a package configuration file provided by
      "rosbag2_cpp", but CMake did not find one.

      Could not find a package configuration file provided by "rosbag2_cpp" with
      any of the following names:

      rosbag2_cppConfig.cmake
      rosbag2_cpp-config.cmake
      

      Add the installation prefix of "rosbag2_cpp" to CMAKE_PREFIX_PATH or set
      "rosbag2_cpp_DIR" to a directory containing one of the above files. If
      "rosbag2_cpp" provides a separate development package or SDK, be sure it
      has been installed.


      Failed <<< cartographer_ros [0.46s, exited with code 1]

      Summary: 2 packages finished [5.13s]
      1 package failed: cartographer_ros
      1 package had stderr output: cartographer_ros

      请问怎么解决,感谢!

      发布在 ROS2
      3568485143
      一二一三八
    • RE: 求助,源码安装cartographer出错

      @小鱼 鱼哥鱼哥求助

      发布在 ROS2
      3568485143
      一二一三八