毫米波雷达 TI IWR1443 在 ROS 中进行 octomap 建图

个人实验记录

/mmwave_ti_ros/ros_driver/src/ti_mmwave_rospkg/launch/1443_multi_3d_0.launch

<launch><!-- Input arguments --><arg name="device" value="1443" doc="TI mmWave sensor device type [1443, 1642]"/><arg name="config" value="3d" doc="TI mmWave sensor device configuration [3d_best_range_res (not supported by 1642 EVM), 2d_best_range_res]"/><arg name="max_allowed_elevation_angle_deg" default="90" doc="Maximum allowed elevation angle in degrees for detected object data [0 > value >= 90]}"/><arg name="max_allowed_azimuth_angle_deg" default="90" doc="Maximum allowed azimuth angle in degrees for detected object data [0 > value >= 90]}"/><!-- mmWave_Manager node --><node pkg="ti_mmwave_rospkg" type="ti_mmwave_rospkg" name="ti_mmwave" ns="radar_0" output="screen"><param name="command_port" value="/dev/ttyACM0"  /><param name="command_rate" value="115200"   /><param name="data_port" value="/dev/ttyACM1"  /><param name="data_rate" value="921600"   /><param name="max_allowed_elevation_angle_deg" value="$(arg max_allowed_elevation_angle_deg)"   /><param name="max_allowed_azimuth_angle_deg" value="$(arg max_allowed_azimuth_angle_deg)"   /><param name="frame_id" value="/ti_mmwave_0"/><param name="mmWaveCLI_name" value="/mmWaveCLI" /><remap from="/ti_mmwave/radar_scan_pcl" to="/ti_mmwave/radar_scan_pcl_0"/></node><!-- mmWaveQuickConfig node (terminates after configuring mmWave sensor) --><node pkg="ti_mmwave_rospkg" type="mmWaveQuickConfig" name="ti_mmwave_config" ns="radar_0" args="$(find ti_mmwave_rospkg)/cfg/1443_3d.cfg" output="screen" ><param name="mmWaveCLI_name" value="/mmWaveCLI" /></node><node pkg="tf" type="static_transform_publisher" name="base_to_radar" args="0 0 0 0 0 0 base_footprint ti_mmwave_0 100"/><!-- <node pkg="rviz" type="rviz" name="rviz" args="-d $(find ti_mmwave_rospkg)/launch/rviz/ti_mmwave_multi.rviz"/> -->
</launch>

点云输出话题:/ti_mmwave/radar_scan_pcl_0

/mmwave_ti_ros/robotics_ros/src/turtlebot_mmwave_launchers/launch/single_sensor/radar_limit_filters.launch

<!--Filters for the data from the radar-->
<launch><node pkg="nodelet" type="nodelet" name="pcl_manager" args="manager" output="screen"/><!-- x_filt 节点:这是一个名为 x_filt 的节点,用于加载一个点云滤波器,具体是 pcl/PassThrough。这个滤波器将用于过滤雷达数据中的 x 坐标。通过 <remap> 标签,将输入和输出话题进行重映射,以将数据传递给下一个滤波器。通过 <rosparam> 标签,设置了滤波器的参数,包括 filter_field_name(要过滤的字段名)、filter_limit_min(最小允许值)、filter_limit_max(最大允许值)、filter_limit_negative(是否允许负值)--><node pkg="nodelet" type="nodelet" name="x_filt" args="load pcl/PassThrough pcl_manager" output="screen"><!-- 将毫米波点云输入过滤器 --><remap from="~input" to="ti_mmwave/radar_scan_pcl_0" /><remap from="~output" to="x_filt_out" /><rosparam>filter_field_name: xfilter_limit_min: 0.1filter_limit_max: 4filter_limit_negative: False</rosparam></node><node pkg="nodelet" type="nodelet" name="y_filt" args="load pcl/PassThrough pcl_manager" output="screen"><remap from="~input" to="x_filt_out" /><remap from="~output" to="xy_filt_out" /><rosparam>filter_field_name: yfilter_limit_min: -3filter_limit_max: 3filter_limit_negative: False</rosparam></node><node pkg="nodelet" type="nodelet" name="z_filt" args="load pcl/PassThrough pcl_manager" output="screen"><remap from="~input" to="xy_filt_out" /><remap from="~output" to="xyz_filt_out" /><rosparam>filter_field_name: zfilter_limit_min: -0.4filter_limit_max: 0.10filter_limit_negative: False</rosparam></node><!-- 过滤强度 --><node pkg="nodelet" type="nodelet" name="i_filt" args="load pcl/PassThrough pcl_manager" output="screen"><remap from="~input" to="xyz_filt_out" /><remap from="~output" to="xyzi_filt_out" /><rosparam>filter_field_name: intensityfilter_limit_min: 8filter_limit_max: 100filter_limit_negative: False</rosparam></node></launch>

点云输出话题:/xyzi_filt_out、/xyz_filt_out、/xy_filt_out、/x_filt_out

/mmwave_ti_ros/robotics_ros/src/turtlebot_mmwave_launchers/launch/single_sensor/radar_mapping.launch

<!--Launch file to perform mapping using octomap with the radar--><!-- 
运行 ROS 中的 octomap_server 软件包。
其中有几个过滤器可供使用: 用于所有点云字段的通过过滤器,以及用于过滤原始地图的统计离群点去除过滤器。
通过式过滤器:去除特定字段(X、Y、Z、强度)中超出一定范围的值
统计离群点去除:根据与其近邻的距离去除数值
这些过滤器的参数/限制可在 turtlebot_mmwave_launchers/launch/radar_limit_filters.launch 文件中找到并修改。
更改 radar_limit_filters.launch 文件后,必须重新启动 radar_mapping.launch 文件,以使新参数生效。 
--><launch><!-- Publish static transform from map to odom for mapping using only odometry info --><node pkg="tf" type="static_transform_publisher" name="static_tf_map_to_odom" args="0 0 0 0 0 0 map odom 100"/><!-- Add nodes to filter/limit Radar data before using it for mapping --><!-- nodelet --><include file="$(find turtlebot_mmwave_launchers)/launch/single_sensor/radar_limit_filters.launch"></include><!-- Create "raw" 3D map using first octomap node --><node pkg="octomap_server" type="octomap_server_node" name="octomap_raw" output="screen" ><remap from="octomap_point_cloud_centers" to="raw_point_cloud_centers" /><remap from="projected_map" to="raw_map" /><param name="frame_id" type="string" value="/ti_mmwave_0" /><remap from="cloud_in" to="xyzi_filt_out" /></node><!-- Perform SOR filtering on output from "raw" octomap node --><node pkg="nodelet" type="nodelet" name="mapping_SOR_filt_mapping" args="standalone pcl/StatisticalOutlierRemoval" output="screen" ><remap from="~input" to="raw_point_cloud_centers" /><remap from="~output" to="mapping_SOR_filter_out" /><param name="mean_k" value="20" /><param name="stddev" value="0.04" /></node><!-- Create "filtered" 3D map using second octomap node --><node pkg="octomap_server" type="octomap_server_node" name="octomap_filtered" output="screen" ><remap from="octomap_point_cloud_centers" to="filtered_point_cloud_centers" /><remap from="projected_map" to="filtered_map" /><remap from="cloud_in" to="mapping_SOR_filter_out" /></node></launch>

建图:

roslaunch ti_mmwave_rospkg 1443_multi_3d_0.launch
roslaunch turtelbot_mmwave_launchers radar_mapping.launch
rostopic list

请添加图片描述

rqt_graph

请添加图片描述

rosrun rqt_tf_tree rqt_tf_tree

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/116217.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为您的SSH提提速

SSH是运维和开发人员接触比较多的工具&#xff0c;一般用SSH来连接远程服务器&#xff0c;这个是我的一些免费客户和企业客户经常使用的场景&#xff0c;当然SSH除了远程连接之外&#xff0c;还有很多额外的用途&#xff0c;比如SSH本身是具备代理功能的&#xff0c;我们也有一…

FastChat 大模型部署推理;Baichuan2-13B-Chat测试、chatglm2-6b测试

参考&#xff1a; https://github.com/lm-sys/FastChat https://blog.csdn.net/qq128252/article/details/132759107 ##安装 pip3 install "fschat[model_worker,webui]"1、chatglm2-6b测试 python3 -m fastchat.serve.cli --model-path ./chatglm2-6b --num-gpus …

java多线程学习笔记一

一、线程的概述 1.1 线程的相关概念 1.1.1 进程&#xff08;Process&#xff09; 进程&#xff08;Process&#xff09;是计算机的程序关于某数据集合上的一次运行活动&#xff0c;是操作系统进行资源分配与调度的基本单位。 可以把进程简单的理解为操作系统中正在有运行的一…

摸鱼也摸鱼之在线数独自动求解

背景 在发现被老板CPU之后&#xff0c;大家想做的基本上都是摸鱼&#xff0c;像我这种没什么手法的人不可能摸鱼打MOBA游戏&#xff0c;所以只能选择数独这种对时间要求不怎么急促的小游戏。然而&#xff0c;有时候搞半天才发现从一开始就错了&#xff0c;这让我很苦恼&#x…

【Java 基础篇】Java Supplier 接口详解

在Java中&#xff0c;Supplier接口是一个重要的函数式接口&#xff0c;它属于java.util.function包&#xff0c;用于表示一个供应商&#xff0c;它不接受任何参数&#xff0c;但可以提供一个结果。Supplier通常用于延迟计算或生成值的场景。本文将详细介绍Supplier接口的用法以…

【算法】滑动窗口破解长度最小子数组

Problem: 209. 长度最小的子数组 文章目录 题意分析算法原理讲解暴力枚举O(N^2)利用单调性&#xff0c;滑动窗口求解 复杂度Code 题意分析 首先来分析一下本题的题目意思 题目中会给到一个数组&#xff0c;我们的目的是找出在这个数组中 长度最小的【连续】子数组&#xff0c;而…

第P6周—好莱坞明星识别(2)

五、模型训练 # 训练循环def train(dataloader, model, loss_fn, optimizer):size len(dataloader.dataset) # 训练集的大小num_batches len(dataloader) # 批次数目train_loss, train_acc 0, 0 # 初始化训练损失和正确率for X, y in dataloader: # 获取图片及其标签X…

k8s集群-3 pod 管理

pod是可以创建和管理k 8 s 计算的最小可部署单元&#xff0c;一个pod 代表着集群中运行的一个进程&#xff0c;每个pod 都有一个唯一的ip 一个pod 类似一个豌豆荚&#xff0c;包含一个或者多个容器&#xff0c;多个容器间共享IPC Network和UTC namespace pod 包裹了容器 下载…

【MySQL】 MySQL索引事务

文章目录 &#x1f6eb;索引&#x1f38d;索引的概念&#x1f333;索引的作用&#x1f384;索引的使用场景&#x1f340;索引的使用&#x1f4cc;查看索引&#x1f4cc;创建索引&#x1f332;删除索引 &#x1f334;索引保存的数据结构&#x1f388;B树&#x1f388;B树&#x…

左神高阶进阶班4 (尼姆博弈问题、k伪进制、递归到动态规划、优先级结合的递归套路、子串的递归套路,子序列的递归套路,动态规划的压缩技巧)

目录 【案例1 尼姆博弈问题】 【题目描述】 【思路解析】 【代码实现】 【案例2 k伪进制问题】 【题目描述】 【思路解析】 【代码实现】 【案例3 最大路径和】 【题目描述】 【思路解析】 【代码实现】 【案例4 优先级的递归套路】 【题目描述】 【思路解析】…

Android 遍历界面所有的View

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、实践四、 推荐阅读 一、导读 我们…

Python Opencv实践 - 视频目标追踪MeanShift

参考资料&#xff1a; opencv/python标定时用到的几个函数意义_criteria opencv_是三水不是泗水的博客-CSDN博客 pythonOpenCV笔记&#xff08;二十六&#xff09;&#xff1a;视频追踪&#xff08;meanshift、Camshift&#xff09;_cv2.meanshift_ReadyGo!!!的博客-CSDN博客…