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

ROS1系列学习笔记之ROS的调用,示例为激光雷达N10P的运行(含常见问题与踩坑解答)

前言

本文为ROS1使用教程之ROS的常规调用以及一些相关的配置,基于电子设计竞赛的一些学习笔记。本文以调用激光雷达N10P为例展示全过程。


基本步骤:

1、安装相关库 

sudo apt-get install libpcap-dev

2、将lsx10移动至工作空间(一般catkin_ws是ros工作目录)

执行编译:

catkin_make

3、网口雷达运行:

roslaunch lslidar_driver lslidar_net.launch

      串口雷达运行:

roslaunch lslidar_driver lslidar_serial.launch

本文这里以串口的方式使用雷达,网口雷达使用同理。

4、修改雷达运行launch中的雷达型号:
    根据实际雷达型号,将lidar_name的value值修改成 N10P


笔者这里将雷达N10P用NX来跑:

ll /dev/|grep ttyCH343USB //查看USB占用的代码

lslidar_serial.launch是串口配置文件,雷达使用单回波而非双回波模式


问题与解决办法:

问题1:

启动ros报错如下:

RLException: Unable to contact my own server at [http://192.168.0.100:36093/].

This usually means that the network is not configured properly.

A common cause is that the machine cannot connect to itself. Please check

for errors by running:

ping 192.168.0.100

For more tips, please see

http://wiki.ros.org/ROS/NetworkSetup

The traceback for the exception was written to the log file


查阅多重互联网信息之后,发现这是由于在.bashrc里设置了启动ros时的地址和名称,我这里是copy了别人的镜像文件,所以出现了这个问题,他们原来是开机就启动连接一个指定的ip地址

unset ROS_IP ROS_MASTER_URI ROS_HOSTNAME
rosclean purge  # 清理 ROS 缓存

使用上面的代码完全清理所有的ROS网络配置缓存

再次尝试以指令唤起ros节点:

roslaunch lslidar_driver lslidar_serial.launch

运行上述代码之后可以解决这个问题,正常启动ROS,但是每次重启都需要重复操作,十分麻烦

永久解决这个问题的办法:

grep -r "ROS_IP\|ROS_MASTER_URI\|ROS_HOSTNAME" ~/.bashrc ~/.profile ~/.bash_profile /etc/bash.bashrc

(该指令用于查找设置网络参数的代码段,找到文件并删除对应代码段可以进行网络配置)


问题2:

遇到串口打不开的情况,说明串口配置文件中没有设置对应的参数以及端口名!

端口查找指令

ls /dev/ | grep tty

通过插拔串口,去找对应的串口名,修改对应参数!

一般情况下串口名为ttyCH343USB0

接下来将 lslidar_serial.launch 中对应的 serial_port 的值改为雷达的串口名,

串口名即为我们执行指令查看到的,这个参数一般不需要修改,一般默认的串口名就是“/dev/ttyUSB0”。

这样修改完之后,如果还是无法打开串口,见问题4!


问题3:

配置文件设置的参数不生效:

按照配置文件设置了参数,打开雷达却不是我设置的参数,这是怎么回事?

原来是因为轮趣家的ros里面还有一个同名配置文件,我在文件搜索栏里面搜了很久才找到……

要改正确的配置文件!


问题4:

串口名正确,但是还是反映打不开串口,那就是未给USB设备赋予权限导致的!

需要赋予usb端口权限

sudo chmod 777 /dev/ttyCH343USB0

执行如上代码之后,可以访问USB设备了,但仍然是治标不治本,在重启后又会出现相同问题。

永久解决方案:


运行ROS调用雷达:

命令1:rostopic echo /scan 查看雷达文本数据

rostopic echo /scan

命令2:rviz 查看点图 rviz中的配置我已经参数写好,不需要再动

rviz

通过Rviz使雷达数据三维可视化,绘制出点云图如上。

http://www.dtcms.com/a/361748.html

相关文章:

  • 数据结构:计数排序 (Counting Sort)
  • 逻辑门编程(一)——与或非门
  • 接口响应慢 问题排查指南
  • MongoDB 内存管理:WiredTiger 引擎原理与配置优化
  • GraalVM Native Image:让 Java 程序秒启动
  • 植物中lncRNA鉴定和注释流程,代码(包含Identified,Classification,WGCNA.....)
  • shell编程 函数、数组与正则表达式
  • 预处理——嵌入式学习笔记
  • day06——类型转换、赋值、深浅拷贝、可变和不可变类型
  • 009=基于YOLO12与PaddleOCR的车牌识别系统(Python+PySide6界面+训练代码)
  • C++运行时类型识别
  • k8s知识点汇总2
  • Java 加载自定义字体失败?从系统 fontconfig 到 Maven 损坏的全链路排查指南
  • 基于 C 语言的网络单词查询系统设计与实现(客户端 + 服务器端)
  • 适合工程软件使用的python画图插件对比
  • Maven - Nexus搭建maven私有仓库;上传jar包
  • 20250829的学习笔记
  • OPENCV 基于旋转矩阵 旋转Point2f
  • 代码随想录二刷之“回溯”~GO
  • 机器翻译:python库translatepy的详细使用(集成了多种翻译服务)
  • Spring框架入门:从IoC到AOP
  • 爬虫实战练习
  • 如何在Github中创建仓库?如何将本地项目上传到GitHub中?
  • IDEA Spring属性注解依赖注入的警告 Field injection is not recommended 异常解决方案
  • Python绘制多彩多角星实战
  • MyBatis 性能优化最佳实践:从 SQL 到连接池的全面调优指南
  • 链表相关OJ题
  • MongoDB 备份与恢复:mongodump 和 mongorestore 实战
  • NestJS 3 分钟搭好 MySQL + MongoDB,CRUD 复制粘贴直接运行
  • Flutter Container 阴影设置指南 2025版