【问题1】
[ERROR] [1711328631.811939621]: Can not start scan: 80008002!
解决办法:
与激光雷达的供电不足有关,电压 太低导致雷达不能正常工作,所以就出现了不能 开始扫描的错误提示,调整雷达的供电电压到 规定需求的大小,即可解决问题。
【问题2】
[rplidarNode-2] process has died [pid 67704, exit code -6, cmd /home/arm_noetic/workspace/devel/lib/rplidar_ros/rplidarNode __name:=rplidarNode __log:=/home/arm_noetic/.ros/log/ecd29daa-ea45-11ee-a484-b104990d78d0/rplidarNode-2.log].
log file: /home/arm_noetic/.ros/log/ecd29daa-ea45-11ee-a484-b104990d78d0/rplidarNode-2*.log
[hqyj_robot-7] process has died [pid 67719, exit code -6, cmd /home/arm_noetic/workspace/devel/lib/turn_on_robot/hqyj_robot_node __name:=hqyj_robot __log:=/home/arm_noetic/.ros/log/ecd29daa-ea45-11ee-a484-b104990d78d0/arm_robot-7.log].
log file: /home/arm_noetic/.ros/log/ecd29daa-ea45-11ee-a484-b104990d78d0/hqyj_robot-7*.log
解决办法:
出现此类问题的原因一般是连接雷达的串口未打开或者没有权限,使用下面的命令查看雷达连接的串口名称:
$ dmesg | grep tty
查询结果如下:
如果出现“now attached”则说明雷达已连接到相应的串口,接着使用下面的命令给串口赋予权限:
$ sudo chmod 777 /dev/ttyUSB0
执行成功这行命令是没有任何人打印输出的,但是后面的串口一定要是连接雷达的串口,然后还要再雷达的启动文件里面检查串口是否设置正确,如果不正确即使赋予相应的权限也不能使用。
【番外!!!】
每次都要检查串口是否连接,如果连接还要再次赋予权限,虽然只有两个步骤,但是对于程序员来说,能简化的步骤绝不会置之不理,所以我写了一个脚本,不管串口是否连接,直接执行,如果连接就会直接赋予权限,没有连接则会提示未发现相应串口,在任何你觉的方便的地方创建一个xxx.sh文件,这里我创建的是serial_port_enable.sh然后将下面的代码填入文件中:
#!/bin/bash
# 检查ttyUSB0是否存在,如果存在赋予相应的权限
if [ -e /dev/ttyUSB0 ]; then
echo "Found ttyUSB0, executing chmod..."
sudo chmod 777 /dev/ttyUSB0
else
echo "ttyUSB0 not found."
fi
# 检查ttyUSB1是否存在,如果存在赋予相应的权限
if [ -e /dev/ttyUSB1 ]; then
echo "Found ttyUSB1, executing chmod..."
sudo chmod 777 /dev/ttyUSB1
else
echo "ttyUSB1 not found."
fi
echo "Script execution complete."
保存文件然后给这个文件赋予可执行权限,然后直接执行下面的命令:
$ ./serial_port_enable.sh
如果串口连接:
如果串口未连接:
之后在运行相关节点,就不会报错了,激光雷达也正常启动