当前位置:   article > 正文

用RVIZ2显示毫米波雷达点云_毫米波雷 转为 点云

毫米波雷 转为 点云

1 ubuntu20.04安装测试ROS

        安装ROS推荐鱼香ROS,一键安装特别方便,地址如下:鱼香ROS

        在ubuntu20.04下打开终端,输入如下命令。

wget http://fishros.com/install -O fishros && . fishros

        按照提示步骤安装ROS。

  1. [1]:一键安装:支持ROS和ROS2,树莓派Jetson
  2. [2]:一键换源:一键更换系统源,支持全版本Ubuntu系统
  3. [3]:一键配置ROS:快速更新ROS环境设置,自动生成环境选择
  4. [4]:一键解决rosdep:小鱼的rosdepc,又快又好用
  5. [5]:一键装github桌面版:小鱼常用的github客户端

        安装成功后,再配置环境变量。

  1. echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
  2. source ~/.bashrc

        环境配置好,在输入roscore即可打开ros。

        再ctrl + alt + t打开新终端,输入如下命令:

  1. rosrun turtlesim turtlesim_node

         可打开小乌龟测试界面。

        然后再次打开新终端,输入如下命令:

  1. rosrun turtlesim turtle_teleop_key

        并将鼠标在最新的终端内单击一次选中,按方向键可控制小乌龟移动,到此则安装并运行成功ROS。

 2 ROS2使用自定义msg订阅topic

         通常情况下,创建订阅者使用系统自带msg,但在实际工程项目,往往会用到自定义的msg,这时需要对工程进行一些配置。

        首先,需要创建自定义msg的interface package,然后用colcon编译,即可在系统中查看到

        再新建一个带有node的package,同样编译,但这时会遇到路径问题,可在cmakelists中添加头文件路径。

        继续编译,仍会报错,需要增加自定义msg的依赖。

         至此,即可正确编译,再运行接收节点,便能正常接收数据。 

        参考:https://guyuehome.com/34760

3 用RVIZ2显示毫米波雷达点云

        RVIZ2支持的格式如下图

        毫米波雷达和激光雷达的数据可以考虑用点云显示,也即PointCloud和PointCloud2,这里采用PointCloud。

        首先查看PointCloud的消息格式,

        http://docs.ros.org/en/api/sensor_msgs/html/msg/PointCloud.html

        在vscode中新建工程,创建一个发布者和其定时回调函数,topic为“multi_points”

  1. // 创建一个发布者和其定时回调函数
  2. pub_point_data = this->create_publisher<sensor_msgs::msg::PointCloud>("multi_points", 10);
  3. point_timer = this->create_wall_timer(1000ms, std::bind(&MinimalPublisher::pub_point_callback, this));

        使用标准的PointCloud,然后给各个参数赋值,特别注意给指针赋值时,需要按照如下模板:

  1. // 数组的标准写入方法
  2. geometry_msgs::msg::Point32 p;
  3. p.x = para_data;
  4. p.y = para_data;
  5. p.z = 0.0f;
  6. point_data.points.push_back(p);

        然后编译运行,打开rviz2添加”/multi_points”的topic,即可看到点云的显示。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/655206
推荐阅读
相关标签
  

闽ICP备14008679号