当前位置: 首页 > news >正文

树莓派5+Ubuntu24.04 LTS ROS2 N10P镭神激光雷达 保姆级教程

1. 背景

我去年在wheeltec的淘宝店上买了个N10P镭神激光雷达,本来是想给我的智能小车做导航用的。当时,买来之后呢,只有windows版的上位机,通过USB插口,确实可以扫描到雷达的点云,但是,我的智能小车计划用linux系统,而且当时我用的linux系统是树莓派4B+ubuntu24.04LTS版本。因为一直忙着,没有时间来试一下N10P激光雷达在linux下的效果。最近,我买了树莓派5,也装了Ubuntu24.04LTS版本和ROS2 Jazzy, 所以,我想再试试这个N10P激光雷达在linux系统下的效果,所以,就有了这篇保姆级教程。

2. N10P镭神激光雷达

这激光雷达本身是使用串口的,为了好用,厂商又用串口转USB板子做了一个USB接口。这个转接板用的芯片是南京沁恒的CH9102,而他们代码里又写的是/dev/wheeltec_laser. 所以,为了给他们的代码对应起来,wheeltec公司出了一长串的使用手册,教你这样改那样改。

我开始也按照他们的使用手册,改了一下,结果发现他们的使用手册跑不通,越搞越复杂,问他们技术人员,他们技术人员也说不出个啥,只说也可以不改。我也觉得可以不改,将USB插到树莓派,树莓派会自动识别,到时候直接读写就行了,不必搞那么复杂。

3. 保姆级教程

3.1 ROS2工作区

我的树莓派5已经安装了ROS2 Jazzy系统,所以,准备将这个激光雷达用到ROS2 Jazzy系统上来。那么首先,就给这个激光雷达,建个工作区ros2_lidar_ws,再在工作区下建个src目录。如下:

mkdir ros2_lidar_ws

cd ros2_lidar_ws

mkdir src

cd src

这样,在我的机子上,就在这么个目录下

 

然后,将wheeltec提供的ROS2的驱动代码都拷贝到这个src目录下,驱动代码就是lslidar_driver和lslidar_msgs。那么,拷贝完成,就下列这样。

3.2相关环境的安装

工作区和驱动代码搞定之后,就要来准备相关的编译环境。安装wheeltec的使用手册,需要安装

sudo apt install ros-jazzy-diagnostic-updater

sudo apt install libpcap-dev

安装完了之后呢,要编辑下列目录下的lsn10p.yaml文件。

 将其中的串口修改为激光雷达插上去的串口号,我的机子插上去的串口号是/dev/ttyACM0

修改如下:

3.3 编译

上述准备工作做好之后,可以编译了。

编译呢,是退回到工作区目录,也就是 /ros2_lidar_ws/. 

在这个目录下,打命令:

colcon build

正常呢,就编译成功了。

这里,会有一个警告,c++语言的。我反馈给wheeltec了,他们说是激光雷达厂家写的,还没有适配Jazzy, 他们也不懂。其实是很简单的一个 delete packet_bytes的问题,要写成delete [] packet_bytes。那么,修改了之后,就编译成功了。

 

 有一个cmake的警告,不影响使用,暂时不管它。

3.4 运行

运行打三个命令:

首先,要准备环境

source  install/local_setup.bash

启动

ros2 launch lslidar_driver lsn10p_launch.py 

如下:

这时,如出现 open_port /dev/ttyACM0 error,应该将用户加入 dialout 组。

用rviz查看点云效果,运行命令

ros2 launch lslidar_driver viewer_scan_launch.py 

4. 效果检验

我比较了一下windows下的点云和linux下的点云,感觉,还是windows下要好一点。点云图片如下:

 windows效果

linux效果

雷达在同一地点。

5. 好了,大功告成,亲个嘴儿。

http://www.lryc.cn/news/584009.html

相关文章:

  • ubuntu server配置静态IP
  • java(2025/7/10)
  • 【LeetCode 热题 100】19. 删除链表的倒数第 N 个结点——双指针+哨兵
  • 如何把Arduino IDE中ESP32程序bin文件通过乐鑫flsah_download_tool工具软件下载到ESP32中
  • 【音视频】HTTP协议介绍
  • 文心大模型4.5开源测评:保姆级部署教程+多维度测试验证
  • day11-微服务面试篇
  • 20.4 量子安全加密算法
  • k8s集群中控制节点处于NotReady,怎么办?
  • 32多串300A保护板测试仪:新能源电池安全的核心守护者
  • RFID 系统在医疗行业的深度应用:从安全溯源到效率革命
  • 【K8S】Kubernetes 使用 Ingress-Nginx 基于 Cookie 实现会话保持的负载均衡
  • 突破传统局限:60G 3D毫米波雷达如何实现精准人体全状态检测?
  • WIFI协议全解析05:WiFi的安全机制:IoT设备如何实现安全连接?
  • 为了安全应该使用非root用户启动nginx
  • HCIA第一次实验报告:静态路由综合实验
  • go go go 出发咯 - go web开发入门系列(四) 数据库ORM框架集成与解读
  • 乐鑫代理商飞睿科技,ESP32模组重塑AIoT体验的四大技术支柱
  • 阿里云-跨账号同步OSS Bucket
  • 探秘阿里云消息队列:解锁分布式系统的异步通信奥秘
  • 飞算科技:以原创技术赋能电商企业数字化转型
  • 东土科技智能塔机系统亮相南京,助力智能建造高质量发展
  • volterra滤波器知多少
  • 申请注册苹果iOS企业级开发者证书需要公司拥有什么规模条件
  • Spring for Apache Pulsar->Reactive Support->Quick Tour
  • 时序数据库的存储之道:从数据特性看技术要点
  • Apache Dubbo实战:JavaSDK使用
  • Vscode——报错,加载 Web 视图时出错: Error: Could not register service worker
  • [特殊字符] 05_Jenkins 部署前端项目实现自动化部署
  • 企业网络安全的“金字塔”策略:构建全方位防护体系的核心思路