PointLIO利用unilidar复现

配置宇树激光雷达的时候出现程序报错问题

问题:
问题链接
请添加图片描述原因:普通账户没有权限访问设备——也就是ubuntu 存在串口数据读取权限问题
ttyS0设备的用户主为root,所属的组为dialout 同时owner和group都是有相同的rw权限的,但others是没有任何权限的

zhaobojun@zhaobojun:~$ ls -l /dev/ttyS0 
crw-rw---- 1 root dialout 4, 64 1030 08:10 /dev/ttyS0

使用groups命令,我们就明了了:我们在安装Ubuntu时,安装时使用的账户并不会默认加入dialout组,因此该用户就没有权限可以访问ttyS设备了
解决:想让我们的用户组同样能够获得访问权限:

sudo usermod -a -G dialout zhaobojun #如下指令设置永久可操作

sudo chmod 777 /dev/ttyUSB0 #修改权限为可读可写可执行,但电脑重启之后每次需重新设置

参考
参考

Unitree 4D lidar 每次外接的时候 需要进行如下操作
参考连接 启动 雷达外接设备需要

cd unilidar_sdk/unitree_lidar_ros
source devel/setup.bash
roslaunch unitree_lidar_ros run_without_rviz.launch 
#同时 因为laser需要通过USB进行与电脑设备的连接 所以需要每次调试的时候 为外接的USB端口设置权限
sudo su #进入root 权限
chmod 777 /dev/ttyUSB0 #为当前的USB接口设置读取函数的权限

#因为我要需要在pointlio中做实测 所以在类似于打开了laser的SDK后 还需要source pointlio
cd PointLio_ws/
source./devel/setup.bash
roslaunch pointlio xxx.launch(我这里没有为unilidar单独写一个launch的运行文件 )

知识总结

以64线激光雷达为例:
在这里插入图片描述
这张图片展示的要点:
基本信息:3维笛卡尔坐标系的所有点云点坐标(x,y,z)
输出映射信息:以雷达为中心,以地面平面X-Y为基面的**(d,θ,z)**坐标系

这里d:表示点云中某点在X-Y平面的投影点,到雷达中心点的距离,这个距离与点云所在的线与高度有关
这里θ:表示:点云点 投影到X-Y平面的点,与X轴正方向轴的夹角,这个角度与同环雷达扫描的timestamp有关,也就是同环扫描对应的是同一个激光雷达的scan,在扫描一圈中对应的点云pcd数据信息。
这里z:表示:实际三维空间点云pcd的高度
在这里插入图片描述
这里可以解释为:一般基于雷达扫描一圈,如果单扫描线考虑(扫描一圈对应的扫描点的数量是2000),那么对于角度的分辨率的话就是:360/2000 = 0.18度,我们把雷达在X-Y平面的投影点分成2000个扇区,那么每一个扇区就代表当前的pcd一片点云的数据信息,按照径向距离的不同,分出若干的同心环道(类似磁盘的磁道),这个径向距离的差异体现在不同的扫描线(因为不同的扫描线(64线),扫描线的高度不同 对应着投影不同 所以可以分出64个同心的环道)对于基于不同θ的扇区,则代表着多线激光雷达,每个单线scan扫描一圈对应着不同的扫描角度(扫描一圈对应着不同的timestamp)的pcd点云数据
这个点的疑惑是终于通了,感谢博客感谢大佬

跑通了pointlio之后,发现显示存在n多不理想的情况又排查了一下,发现是rviz的config问题,通过请教了一位冠以资深大学霸加上好朋友的朋友,我的问题出在了坐标系上。rviz_loam.rviz的坐标系显示如下:缺少了laser运动轴的原因是坐标系不对应!target 坐标系选择错了!!!
关注:reference frame 以及 target frame 的设置
请添加图片描述请添加图片描述请添加图片描述

### 关于Unilidar与ROS2集成的信息 对于希望了解如何将Unilidar传感器数据集成到ROS 2环境中的开发者而言,官方文档和社区资源提供了丰富的指导材料[^1]。通常情况下,这类硬件设备的支持依赖于特定驱动程序或软件包的存在。 #### 安装必要的ROS 2包 为了使Unilidar能够在ROS 2下工作,首先需要安装对应的ROS 2兼容版本的LIDAR驱动程序包。这可以通过以下命令完成: ```bash sudo apt-get update sudo apt-get install ros-humble-velodyne -y ``` 注意这里假设使用的ROS 2发行版为Humble;如果是其他版本,则应相应调整`humble`部分以匹配实际使用的版本名称。 #### 配置并启动节点 一旦安装完毕,接下来就是配置launch文件来启动相应的节点处理来自Unilidar的数据流。下面是一个简单的Python launch脚本示例,用于加载Velodyne LIDAR(适用于大多数类型的Unilidar): ```python from launch import LaunchDescription from launch_ros.actions import Node def generate_launch_description(): return LaunchDescription([ Node( package='velodyne_driver', executable='velodyne_node', name='unilidar_driver', parameters=[{'model': 'VLP16'}], output='screen' ), Node( package='rviz2', executable='rviz2', arguments=['-d', '/path/to/your/rviz/config/file.rviz'], output='screen' ) ]) ``` 此脚本会启动两个主要组件:一个是负责读取原始激光雷达数据并将它们转换成标准消息格式的驱动节点;另一个则是RVIZ可视化工具,允许实时查看扫描结果。 #### 测试连接性 确保物理连接无误之后,在终端运行上述创建好的launch文件来进行初步测试: ```bash ros2 launch your_package_name unilidar.launch.py ``` 如果一切正常,应该可以在RVIZ窗口内看到由Unilidar产生的点云图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值