Navigation

    蓝鲸ROS机器人论坛

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

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

    产品服务
    激光雷达
    1
    1
    5656
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • xiaoqiang
      xiaoqiang last edited by weijiz

      小强主页

      本节教程的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://git.bwbot.org/publish/rplidar_ros
      cd  ..
      catkin_make
      

      0_1481031433261_udev3.png

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

      roslaunch rplidar_ros view_rplidar.launch
      

      0_1481031554709_udev4.png

      小强主页
      返回目录

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Copyright © 2015-2021 BlueWhale community