基于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雷达坐标系的图方便理解。
请添加图片描述

可以看到我的雷达的坐标系和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.实验结果
请添加图片描述

目前运行的是自己雷达录制的一分钟的rosbag包,还没跑直接订阅,一直没时间,原理是一样的,希望对大家有帮助。

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
【资源介绍】 基于ROS的yolov5实时目标检测python源码+项目说明.zip 开发环境: - Ubuntu 16.04 / 18.04 - ROS kinetic/melodic - Python>=3.6.0环境,PyTorch>=1.7 安装Anaconda: 1.首先下载对应的安装包[Anaconda](https://www.anaconda.com/products/individual#linux) 2.然后执行脚本安装anaconda(文件名为下载对应的.sh文件名) ``` bash ~/Downloads/Anaconda3-2021.05-Linux-x86_64.sh ``` 安装 Pytorch: 1. 首先创建python3.6以上版本的conda环境 ``` conda create -n mypytorch python=3.8 ``` 2. 激活创建好的conda环境 ``` conda activate mypytorch ``` 3. 在PyTorch官网上选择指定版本安装Pytorch Install PyTorch: https://pytorch.org/get-started/locally/ ``` conda install pytorch torchvision torchaudio cpuonly -c pytorch ``` 安装Yolov5_ROS ``` cd /your/catkin_ws/src csdn下载源码解压 cd yolov5_ros/yolov5 sudo pip install -r requirements.txt ``` 基于ROS的yolov5实时目标检测python源码+项目说明.zip 【备注】 该项目是个人毕设/课设/大作业项目,代码都经过严格调试测试,功能ok才上传,可快速上手运行!欢迎下载使用,若遇到问题请及时私信沟通,帮助解决。 该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,可直接作为期末课程设计、课程大作业、毕业设计等。 项目整体具有较高的学习借鉴价值!基础还可以,动手能力强的也可做二次开发,以实现不同的功能。 欢迎下载使用,也欢迎交流学习!
回答: 要在ROS实时运行OpenPCDet,你需要按照以下步骤进行操作。首先,将OpenPCDet工程中的OpenPCDet/tools中的全部文件以及/OpenPCDet/pcdet文件夹复制粘贴到src/pointpillars/tools文件夹下。确保没有遗漏pcdet文件夹\[1\]。接下来,确保你已经配置好了OpenPCDet的环境,并且已经根据教程迁移了代码并配置好了ROS环境\[2\]。然后,进入之前搭建好的OpenPCDet环境,使用命令`conda activate pcdet`激活环境。最后,使用命令`roslaunch pointpillars_ros pointpillars.launch`启动OpenPCDet\[2\]。如果你遇到问题,可以尝试执行以下命令:`conda activate openpcdet`和`source ~/ws/pointpillars_ros/devel/setup.bash`,然后再次运行`roslaunch pointpillars_ros pointpillars.launch`\[3\]。这样,你就可以在ROS实时运行OpenPCDet了。 #### 引用[.reference_title] - *1* *3* [基于openpcdetPointpillars之ROS可视化](https://blog.csdn.net/weixin_58207716/article/details/129472906)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [基于rosopenpcdet使用自己的雷达进行实时三维目标检测](https://blog.csdn.net/Debtor/article/details/129825175)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值