Ubuntu下多设备映射名称设置

序言

在机器人开发过程中,开发者会使用到多个外设,在传感器外设中,会用到激光雷达、摄像头等,为了读取到外设数据,首先需要获取到外设名称,Ubuntu系统默认根据外设接入的顺序,定义接口名称。
比如激光雷达首先接入,则激光雷达对应的端口名便为 /dev/ttyUSB0,此时后接入的下位机即底盘的名称为 /dev/ttyUSB1
外设接口名称问题主要存在以下两种现象:

  1. 不同外设但硬件接口相同: 以同一接口、数据传输类型的外设接入机器人系统时,如何进行区分
  2. 相同外设相同硬件接口: 多个同种激光雷达或者多个同种摄像头接入机器人系统时,如何进行区分

解决方法

  • 主要采用 接口映射方法 ,与此同时,存在以下两种方式进行映射:
    1. 针对 外设硬件信息 进行区分
    1. 针对 机器人系统接口信息 进行区分

详细步骤

编写映射规则文件

针对 外设硬件信息 进行区分

  • 该方法是对外设接口赋予别称
  • 在终端中输入 sudo dmesg -w ,插拔外设硬件接口,查看终端输出,例如以下激光雷达外设信息
    在这里插入图片描述
  • 从输出信息中可以获取到两条信息点: idVendor(厂商标识)idProduct(产品标识)
  • /etc/udev/rule.d 目录下创建映射规则,以激光雷达为例( my_lidar.rules ):
KERNEL=="ttyUSB*", ATTRS{
   idVendor}=="10c4", ATTRS{
   idProduct}=="ea60", MODE:="0777", SYMLINK+="mylidar"

名称解释:
KERNEL: 内核固件名称,一般有“ttyUSB*”,“ttyACM*”,“vieo[0, 1, 2]
ATTRS: 外部设备唯一标识,idVendor 和 idProduct
MODE: 赋予设备的权限
SYMLINK: 赋予设备的别名,可以根据开发者喜好设置

针对 机器人系统接口信息 进行区分

  • 该方法是对机器人系统中的接口赋予别称

  • 同样在终端中输入 sudo dmesg -w ,插拔外设硬件接口,查看终端输出,例如以下激光雷达外设信息
    在这里插入图片描述

  • 此时的 “1-1.2:1.0” 便为机器人系统中的硬件接口编号,比如开发板上有四个USB接口,这四个USB接口在Ubuntu系统中默认是存在唯一标识的,所以对这四个接口做映射。
    注意:此时相应的,需要对外设做对应插入,即1号口设定为1号设备接入后,只能1号设备接入,1号设备也不可接入到其它接口,否则会有误

  • /etc/udev/rule.d 目录下创建映射规则,以激光雷达为例( my_lidar.rules ):

KERNEL=="ttyUSB*", KERNELS=="1-1.2:1.0", MODE:="0777", SYMLINK+="mylidar_1"

KERNEL=="ttyUSB*", KERNELS=="1-1.3:1.0", MODE:="0777", SYMLINK+="mylidar_2"

名称解释:
ATTRS: 机器人接口唯一标识

生效映射规则

  • 在终端中输入以下两条命令
sudo service udev reload

sudo service udev restart

摄像头外设特殊说明

  • 摄像头的软件接口名称一般是 /dev/video*,在映射规则文件中,KERNEL 属性一般写为 vieo[0, 1, 2],中括号中的数字,主要根据实际情况中需要对哪几个外设做映射便写哪几个数字,即对vieo0、vieo1、vieo2外设做映射

参考文献

[1] 赵虚左老师的传感器课程

相关推荐

  1. ubuntu固定USB相机设备名称

    2024-01-11 10:56:01       22 阅读
  2. LINUX固定USB设备名称

    2024-01-11 10:56:01       14 阅读
  3. Ubuntu20.0.4设置frpc开机自启动

    2024-01-11 10:56:01       29 阅读
  4. ubuntuconda如何设置镜像源(清华镜像源)

    2024-01-11 10:56:01       30 阅读
  5. APK打包 |应用图标 | 应用名称设置

    2024-01-11 10:56:01       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-11 10:56:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-11 10:56:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-11 10:56:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-11 10:56:01       20 阅读

热门阅读

  1. vue笔记之$listeners

    2024-01-11 10:56:01       36 阅读
  2. Kotlin DSL C++项目引入OpenCV异常处理

    2024-01-11 10:56:01       37 阅读
  3. 杰理AC63串口收发实例

    2024-01-11 10:56:01       22 阅读
  4. IDEA异常退出重启后项目启动失败解决

    2024-01-11 10:56:01       33 阅读
  5. Leetcode160 两个链表是否相交

    2024-01-11 10:56:01       27 阅读
  6. Saas整合ELK Stack

    2024-01-11 10:56:01       35 阅读
  7. 【leetcode283】移动零

    2024-01-11 10:56:01       33 阅读
  8. C++ 捕获所有异常并拿到错误原因的方法

    2024-01-11 10:56:01       34 阅读
  9. SQL_DQL_执行顺序

    2024-01-11 10:56:01       30 阅读