ROS交流群
ROS Group
产品服务
Product Service
开源代码库
Github
官网
Official website
技术交流
Technological exchanges
激光雷达
LIDAR
ROS教程
ROS Tourials
深度学习
Deep Learning
机器视觉
Computer Vision

小强ROS机器人教程(13)___rplidar二代激光雷达的使用和利用udev给小车增加串口设备



  • 小强主页

    本节教程的1、2、3、4步骤仅用于演示给小强增加串口设备的方法,小强用户请接上硬件后直接跳到步骤5测试雷达。
    小车主机和底盘的通信是通过串口实现的,在实际开发过程中我们可能会给小车增加串口外设,这会导致串口号(ttyUSB***)的混乱,引发小车底盘ros驱动和串口设备的异常。下文将以rplidar二代激光雷达为例,演示通过修改udev文件指定设备串口号的方式解决串口冲突问题。本文方法出处

    1.查看各个串口设备的ID

    sudo apt-get install expect-dev
    unbuffer udevadm monitor --environment | grep 'ID_SERIAL='
    

    将底盘通信u转串重新插拔一下,终端会打印出此设备的ID信息,例如下图中的"Prolific_Technology_Inc._USB-Serial_Controller"
    再将激光雷达的usb适配器重新插入主机,终端也会打印出激光雷达的ID信息,例如下图中的"Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001"
    0_1481030229497_udev0.png
    2.根据获取的串口设备的ID,建立udev规则文件,将底盘通信u转串指定为ttyUSB001,将激光雷达指定为ttyUSB002

    sudo gedit  /etc/udev/rules.d/60-persistent-serial.rules
    

    输入下面内容后保存,请将文中ID_SERIAL后面的字符串换成步骤1中获取的ID

    ACTION!="add", GOTO="persistent_serial_end"
    SUBSYSTEM!="tty", GOTO="persistent_serial_end"
    KERNEL!="ttyUSB[0-9]*", GOTO="persistent_serial_end"
    
    # This is old 11.10 style: IMPORT="usb_id --export %p"
    IMPORT{builtin}="path_id"
    ENV{ID_SERIAL}=="Prolific_Technology_Inc._USB-Serial_Controller"         , SYMLINK="stm32Car"        , SYMLINK+="ttyUSB001" , OWNER="xiaoqiang"
    ENV{ID_SERIAL}=="Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001" , SYMLINK="rplidarA2"       , SYMLINK+="ttyUSB002" , OWNER="xiaoqiang"
    
    LABEL="persistent_serial_end"
    

    更新系统udev规则

    sudo udevadm control --reload
    

    重新插拔所有usb串口设备,现在底盘通信u转串成功被识别为ttyUSB001、激光雷达被识别为ttyUSB002,与设备插入顺序和端口无关。

    ls /dev
    

    0_1481031023725_udev.png

    3.修改小车底盘ROS驱动节点launch文件,将通信设备指定为上文设置的ttyUSB001

    0_1481031213813_udev2.png

    4.修改rplidar二代激光的ROS驱动节点launch文件,将通信设备指定为上文设置的ttyUSB002

    
    驱动的安装
    
    cd ~/Documents/ros/src
    git clone https://github.com/BlueWhaleRobot/rplidar_ros.git
    cd  ..
    catkin_make
    

    0_1481031433261_udev3.png

    5.重启小车,现在已经可以同时正常使用激光雷达和小车底盘,例如运行下述命令测试激光雷达

    roslaunch rplidar_ros view_rplidar.launch
    

    0_1481031554709_udev4.png

    小强主页
    返回目录