最近领导要我用A2M12雷达搞SLAM,但是用电脑连上这个雷达捣鼓了两三天才能够拿到数据。就把踩的坑记录一下。
Nvidia Jetson Nano (4GB版本的)
Ubuntu 18.04
一提到这个报错信息就头疼,因为通过这个报错信息,我压根不知道哪里有问题。
*** buffer overflow detected ***: ./build/mysimple_grapper terminated
Aborted (core dumped)
问题排查思路如下:
电流说是要2A,实际上我用笔记本的USB 3.2的接口,1.3A也够
那就给串口赋予权限吧
首先得给usb口权限:
# 使用lsusb命令
lsusb
# 命令输出结果
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 005: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 003 Device 004: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 003 Device 003: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 003 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0008 VMware, Inc.
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
注意看CP210x这长串,反正雷达用的是这个芯片(官方文档里有写),这个usb口就是我们要找的雷达了
赋予权限:
sudo chmod 777 /dev/bud/usb/003/003
然后查看串口
cd /dev/
find tty*
tty
tty0
tty1
tty10
...
ttyS4
ttyS5
ttyS6
ttyS7
ttyS8
ttyS9
ttyUSB0
ttyUSB0
就是雷达
赋予权限:
sudo chmod 777 /dev/ttyUSB0
波特率确是256000
*注:激光雷达在接上电源的时候存在一个输入电容充电的过程,充电的瞬态电
流最大可达 2500mA。稳定工作后,工作电流不超过 600mA。
这里官方文档说的什么充电瞬态电流最大可达 2500mA,我这边实际用没发现需要这么大的电流;
电流够启动的1.5A就行,1.3A貌似也行,这个2.5A没啥影响
然后再运行示例程序应该就可以了。
试试simple_grapper
这个示例程序
cd [rplidar_sdk-master path]
cd ./app/simple_grapper
make -j$(nproc)
cd ../../output/Linux/Release
./simple_grapper --channel --serial /dev/ttyUSB0 256000
注意波特率是256000
输出结果:
SLAMTEC LIDAR S/N:
Version: SL_LIDAR_SDK_VERSION
Firmware Ver: 1.32
Hardware Rev: 6
Lidar health status : OK. (errorcode: 0)
waiting for data...
...
**
**
**
*********** **
*********** *** *
************ **** ** ********** ***
***************************************************************************
---------------------------------------------------------------------------
Do you want to see all the data? (y/n)
如果按y就可以查看所有数据,我这里就不看了。
注意:每次重启系统都要重新给串口权限