当前位置: 首页 > news >正文

ros noetic使用pointcloud_to_laserscan 将2d激光雷达与深度摄像头数据融合

配置文件

src/wpb_home/wpb_home_tutorials/nav_depth/local_costmap_params.yaml

local_costmap: global_frame: odom robot_base_frame: base_footprint static_map: false rolling_window: true width: 3.0 height: 3.0 update_frequency: 10.0 publish_frequency: 10.0 transform_tolerance: 1.0 plugins: - {name: obstacle_layer, type: "costmap_2d::ObstacleLayer"} - {name: inflation_layer, type: "costmap_2d::InflationLayer"}

配置文件

src/wpb_home/wpb_home_tutorials/nav_depth/costmap_common_params.yaml

robot_radius: 0.25 obstacle_layer: obstacle_range: 3.0 raytrace_range: 6.0 observation_sources: base_lidar depth_scan base_lidar: data_type: LaserScan topic: /scan marking: true clearing: true depth_scan: data_type: LaserScan topic: /depth_scan marking: true clearing: true inflation_layer: inflation_radius: 0.5

配置文件

src/wpb_home/wpb_home_tutorials/nav_depth/global_costmap_params.yaml

global_costmap: global_frame: map robot_base_frame: base_footprint static_map: false rolling_window: true update_frequency: 1.0 publish_frequency: 1.0 transform_tolerance: 1.0 recovery_behaviors: - name: 'conservative_reset' type: 'clear_costmap_recovery/ClearCostmapRecovery' - name: 'rotate_recovery' type: 'rotate_recovery/RotateRecovery' - name: 'aggressive_reset' type: 'clear_costmap_recovery/ClearCostmapRecovery' conservative_reset: reset_distance: 2.0 layer_names: ["obstacle_layer"] aggressive_reset: reset_distance: 0.0 layer_names: ["obstacle_layer"]

配置文件

src/wpb_home/wpb_home_tutorials/nav_depth/depth_to_scan.yaml

target_frame: base_footprint transform_tolerance: 0.3 min_height: 0.10 max_height: 2.00 angle_min: -1.57 angle_max: 1.57 angle_increment: 0.005 scan_time: 0.1 range_min: 0.4 range_max: 6.0 use_inf: true

launch文件

<launch> <!-- 载入 机器人 和 RoboCup@Home 的仿真场景 --> <include file="$(find wpr_simulation)/launch/wpb_stage_robocup.launch"/> <!-- Gmapping --> <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping"/> <!-- Rviz --> <arg name="rvizconfig" default="$(find wpr_simulation)/rviz/slam.rviz" /> <node name="rviz" pkg="rviz" type="rviz" args="-d $(arg rvizconfig)" required="true" /> <!-- 手柄控制 --> <node respawn="true" pkg="joy" type="joy_node" name="joy_node" > <param name="dev" type="string" value="/dev/input/js0" /> <param name="deadzone" value="0.12" /> </node> <param name="axis_linear" value="1" type="int"/> <param name="axis_angular" value="0" type="int"/> <param name="scale_linear" value="0.5" type="double"/> <param name="scale_angular" value="1" type="double"/> <node pkg="wpr_simulation" type="teleop_js_node" name="teleop_js_node"/> <node pkg="move_base" type="move_base" name="move_base"> <rosparam file="$(find wpb_home_tutorials)/nav_depth/costmap_common_params.yaml" command="load" ns="global_costmap" /> <rosparam file="$(find wpb_home_tutorials)/nav_depth/costmap_common_params.yaml" command="load" ns="local_costmap" /> <rosparam file="$(find wpb_home_tutorials)/nav_depth/global_costmap_params.yaml" command="load" /> <rosparam file="$(find wpb_home_tutorials)/nav_depth/local_costmap_params.yaml" command="load" /> <param name="base_global_planner" value="global_planner/GlobalPlanner" /> <param name="base_local_planner" value="wpbh_local_planner/WpbhLocalPlanner" /> </node> <node pkg="pointcloud_to_laserscan" type="pointcloud_to_laserscan_node" name="pointcloud_to_laserscan" output="screen"> <!-- name="pointcloud_to_laserscan" 将命名空间载入 rosparam,所以--> <!-- 载入参数 --> <rosparam file="$(find wpb_home_tutorials)/nav_depth/depth_to_scan.yaml" /> <!-- 输入点云 --> <remap from="cloud_in" to="/kinect2/sd/points"/> <!-- 输出 LaserScan --> <remap from="scan" to="/depth_scan"/> </node> <node pkg="wpr_simulation" type="demo_map.py" name="explore_then_return" output="screen" > </node> <node pkg="wpr_simulation" type="save_map_and_start_amcl.py" name="save_map_and_start_amcl" output="screen" > </node> <node pkg="wpr_simulation" type="initialpose_service.py" name="initialpose_service" output="screen" > </node> </launch>
http://www.jsqmd.com/news/89811/

相关文章:

  • 第十三天~ARXML魔法学院:让CAN信号住进“Loft公寓”——数组信号深度解析
  • 25分钟完成700+飞书文档批量导出,这款神器让团队迁移效率提升20倍
  • Caused by:com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 > 连接到主机 localhost 的 TCP/IP 连接失败
  • 告别原生下拉框:Layui formSelects多选插件让表单交互更优雅
  • 百度网盘下载困境的破局之道
  • OpenCore Legacy Patcher终极指南:让老Mac重获新生
  • 基于PLC控制的称重式快递分拣系统设计
  • eSpeak NG文本转语音终极指南:从入门到精通
  • 企业级Windows日志监控平台搭建:Visual Syslog Server深度解析
  • UKB_RAP生物医学数据分析平台实战指南
  • 基于 PLC控制机械手臂取放料的系统设计
  • 5分钟解锁百度网盘极速下载:直链解析全流程实战
  • 视频超分辨率神器:大文件分段处理实战指南
  • 突破百度网盘限速的技术解决方案矩阵
  • 3步搞定Formily集成第三方UI库:从困惑到精通
  • 百度网盘下载加速终极指南:免费突破限速完整方案
  • 高效无损视频剪辑:5分钟掌握零损耗专业处理技巧
  • Umi-OCR多引擎适配实战:如何为不同场景选择最优识别方案
  • 魔盒项目开发纪实:主板方案设计与人体感应模块选型
  • Formily终极指南:5步搞定第三方UI库无缝集成
  • OpenWRT插件中心iStore:5分钟快速上手终极指南
  • 英雄联盟云顶之弈智能助手:全自动刷经验终极指南
  • 3步精通Jimp图像处理:游戏精灵图批量生成终极指南
  • 3步搭建个人专属图像搜索引擎:本地部署零基础教程
  • PIO = Program Input/Output(程序输入输出)
  • Nugget终极指南:极速下载的完整解决方案
  • Point-E项目3D点云预处理技术:从入门到精通的完整指南
  • GPT-SoVITS语音合成终极指南:从零开始掌握AI语音克隆技术
  • B站Linux客户端震撼来袭!打破次元壁的桌面观影神器
  • Screenbox媒体播放器完整使用指南:Windows平台的终极视频解决方案