基于ros和openpcdet使用自己的雷达进行实时三维目标检测

这篇具有很好参考价值的文章主要介绍了基于ros和openpcdet使用自己的雷达进行实时三维目标检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考博主hello689的教程,文中主要介绍了对于kitti的三维目标检测,本文对代码进行修改,添加旋转坐标轴的代码,以适配自己的雷达,可以参考这个博主的流程,再看本文对旋转参数的修改。


目录

1.实现思路

2.实验环境

3.实验步骤

3.1 ros.py代码修改

3.2 pointpillar.launch代码修改

3.3 pointpillar.rviz代码修改

3.4 ros.py订阅话题代码修改

4.试验结果

1.实验思路

用自己的雷达发布点云数据,然后通过订阅,添加旋转参数,将自己雷达的坐标系旋转到kitti的坐标系,或者交换点云的坐标都是可以的,如果不将坐标系统一,会导致发布的bbox乱飘。

2.实验环境

1.硬件配置:RTX 3060ti i7
2.软件环境:openpcdet环境,ros melodic,ubuntu18.04,cuda11.3
3.雷达:Tanway scope 64线

3.实验步骤

前提是你已经配置好了openpcdet的环境,和根据教程迁移了代码和配置好了ros环境。

#启动流程
#进入之前搭建好的openpcdet环境
conda activate pcdet
roslaunch pointpillars_ros pointpillars.launch

3.1 ros.py旋转参数代码修改

        """ Captures pointcloud data and feed into second model for inference """
        pcl_msg = pc2.read_points(msg, skip_nans=True, field_names=("x", "y", "z","intensity","ring"))
        np_p = np.array(list(pcl_msg), dtype=np.float32)
        #print(np_p)
        # 旋转轴
        rand_axis = [0,0,1]
        #旋转角度
        #yaw = 0.1047
        yaw = -1.57
        #返回旋转矩阵
        rot_matrix = self.rotate_mat(rand_axis, yaw)
        np_p_rot = np.dot(rot_matrix, np_p[:,:3].T).T

        x = np_p_rot[:, 0].reshape(-1)
        y = np_p_rot[:, 1].reshape(-1)
        z = np_p_rot[:, 2].reshape(-1)
        if np_p_rot.shape[1] == 4: # if intensity field exists
            i = np_p_rot[:, 3].reshape(-1)
        else:
            i = np.zeros((np_p_rot.shape[0], 1)).reshape(-1)
        points = np.stack((x, y, z, i)).T
        #print(points.shape)

首先给出kitti和tanway雷达坐标系的图方便理解。
ros openpcdet pointpillar,目标检测,python,人工智能,深度学习

可以看到我的雷达的坐标系和kitti的坐标系是不一样的,所以为将我的雷达的坐标系统一到kitti坐标系下,可以将我的雷达的坐标系以z轴为旋转轴,逆时针旋转90度,所得到的坐标系就和kitti一样了,注意代码中用的是弧度制,所以是-1.57。
3.2 pointpillar.launch代码修改

<launch>
  <node pkg="rosbag" type="play" name="player" output="log" args="-l /home/debtor/test_ce.bag" />
  <node name="pointpillars_ros" type="ros.py" pkg="pointpillars_ros" output="screen"/>
  <node type="rviz" name="rviz" pkg="rviz" args="-d $(find pointpillars_ros)/launch/pointpillars.rviz" />
</launch>

args是自己雷达录制的bag包,如果实时检测需要把第一段代码去掉。

3.3 pointpillar.rviz代码修改

  Global Options:
    Background Color: 48; 48; 48
    Default Light: true
    Fixed Frame: TanwayTP
    Frame Rate: 30
  Name: root

Fixed Frame 要改成自己雷达的Fixed Frame。
3.4 ros.py订阅话题代码修改

self.sub_velo = rospy.Subscriber("/tanwaylidar_pointcloud", PointCloud2, self.lidar_callback, queue_size=1,buff_size=2 ** 12)

此处修改成自己雷达发布的话题。
#4.实验结果
ros openpcdet pointpillar,目标检测,python,人工智能,深度学习

目前运行的是自己雷达录制的一分钟的rosbag包,还没跑直接订阅,一直没时间,原理是一样的,希望对大家有帮助。文章来源地址https://www.toymoban.com/news/detail-816612.html

到了这里,关于基于ros和openpcdet使用自己的雷达进行实时三维目标检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 三维目标检测之OpenPCDet环境配置及demo测试

    很久没写过关于环境配置的博客了,这次实在是因为,自己在是在OpenPCDet环境的配置上遇到坑了。一环扣一环,由于我的实验环境是ubuntu16.04,跟网上大多数教程环境不一样,所以遇到了很多版本不匹配问题。 Ubuntu 16.04 RTX 2080 CUDA 10.1 验证cmake版本 cmake版本要大于等于1.13,不

    2023年04月15日
    浏览(42)
  • 【点云检测】OpenPCDet 教程系列 [1] 安装 与 ROS运行

    主要是介绍库的使用,做笔记区 首先搜索的时候有个问题 一直在我脑子里 hhh 就是MMlab其实还有一个叫mmdetection3d 的库,然后搜的时候发现 hhh 有网友和我一样的疑惑:OpenPCDet和mmdetection3d有什么区别 ? - 知乎 (zhihu.com) 这是OpenMMLab官方的回复: OpenPCDet 和 mmdetection3d 是两个不同的

    2024年02月14日
    浏览(40)
  • Openpcdet训练自己的数据集

    * Openpcdet详细内容请看以下链接: GitHub - open-mmlab/OpenPCDet: OpenPCDet Toolbox for LiDAR-based 3D Object Detection. 1.首先gitclone原文代码 2. 这里我建议自己按照作者github上的docs/install文件夹下指示一步步安装,(之前根据csdn上教程一直有报错),然后下载spconv,以及cumm, github链接如下: GitH

    2024年03月24日
    浏览(38)
  • 项目解决方案: 视频融合(实时监控视频和三维建模进行融合)设计方案

    目                 录 一、需求描述 1、视频接入和控制要求 2、视频播放需求 3、提供其他应用的调用 二、方案设计 (一)系统设计图 (二)产品实现方案 三、产品和功能描述 (一)总体描述 (二)视频综合平台服务器 1、概述 2、视频浏览及控制 3、数据信息管理 4、

    2024年01月24日
    浏览(54)
  • ROS小车——雷达的使用与SLAM建图(4)

    启动激光雷达并查看数据,建图并避障导航 roslaunch robot_navigation lidar.launch在终端输入启动雷达,雷达开始旋转, 并打印scan话题,rostopic echo/scan,在虚拟机中 roslaunch robot_navigation lidar_rviz.launch 查看图形化的雷达数据。 roslaunch robot_navigation robot_slam_lidar.launch在终端输入启动sl

    2023年04月21日
    浏览(51)
  • 多个Livox雷达点云合成及使用ROS发布

    因为单个Livox avia的FOV只有70°,无法覆盖车前方的所有范围,所以用了三个Livox avia以实现180°前方位覆盖。但由于三个雷达均是独自采集,所以需要对每个雷达采集的各帧点云进行合并,用于建图。以下工作均建立于已经知道各雷达之间的外参。 由于Fast-LIO输入的是Livox自定义

    2024年02月13日
    浏览(45)
  • 毫米波雷达 TI IWR1443 在 ROS 中使用 Rviz 可视化雷达点云

    官方文档:TI mmWave ROS Driver Users Guide 官方文档有更详细的步骤说明,本篇博客仅为本人的实验记录。 实验环境:IWR1443 + linux 18.04 + ROS melodic 使用 Uniflash 成功烧录对应 SDK 版本中的 Demo 能够在 mmwave demo visulalizer 中成功运行开箱演示的 demo,看到数据。 参考链接:毫米波雷达

    2024年02月13日
    浏览(49)
  • ubuntu20.04 ROS 环境下使用velodyne激光雷达

    系统版本:ubuntu 20.04 ROS版本:noetic 激光雷达型号:velodyne VLP-16 网线接 PC/工控机 端口 将PC/工控机的网口配置为: ipv4,方式设置为手动 ip地址、掩码以及网关设置成下图 查看当前话题 其中 /velodyne_points 就是 激光雷达发布的点云消息。 终端输入rviz Fiex Frame 写入 velodyne 添加

    2024年02月08日
    浏览(64)
  • 【ROS】基于WIFI网络实现图像消息跨机实时传输

    研究机器人目标检测算法的时候,常常需要把推理图像实时展示出来,以供观摩。而ROS1提供的跨机通信方法,要么是配置单Master,要么是配置多Master;一方面配置麻烦,另一方面传输效率低下,特别是在无线网络环境下,那叫一个鸡肋,仿佛我只需要喝一杯水,他却把整个太

    2024年02月10日
    浏览(40)
  • 超维空间S2无人机使用说明书——11、使用3维激光雷达实现ROS无人机的精准定位

    一、视频演示 视频演示: 3D雷达定位效果展示 二、源码连接 后续补充 三、启动雷达节点,确保雷达发布数据 未出现红色报错,表明程序运行正常 launch文件详解

    2024年01月23日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包