0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ROS主控如何创建设备别名

麦辣鸡腿堡 来源:古月居 作者:月照银海似蛟龙 2023-11-17 18:07 次阅读

创建设备别名

需要创建设备别名原因:

在运行一个ros程序的时候需要提供一个端口名,这个端口名一般是ttyUSBx,设备每次插拔对应的这个端口名它都会不一样,需要创建一个设备别名,就是要将这个端口名来给它固定住。

图片

重新插拔 USB1端口的设备后,变为:

图片

可以看到变成了/dev/ttyUSB2

端口号发生了变化

创建设备别名需要写一个脚本文件,如下:

echo  'KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60",ATTRS{serial}=="0002", MODE:="0777", GROUP:="dialout", SYMLINK+="stm32_controller"' >/etc/udev/rules.d/stm32_controller.rules
echo  'KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60",ATTRS{serial}=="0001", MODE:="0777", GROUP:="dialout", SYMLINK+="2d_lidar"' >/etc/udev/rules.d/2d_lidar.rules


service udev reload
sleep 2
service udev restart

解释下上面的代码

KERNEL==”ttyUSB* 不管是USB几的设备都进行判断

ATTRS{idVendor}==”10c4” 这里的idVendor ,在前面win上修改 serial的时候出现过,就是10c4

图片

ATTRS{idProduct}==”ea60” 这里的idProduct,在前面win上修改 serial的时候出现过,就是ea60

图片

ATTRS{serial}==”0002” 这里的serial,就是前面我们改过的,这里就根据这个值的不同,定义不同的设备别名

MODE:=”0777” 就是端口的权限

SYMLINK+=”stm32_controller” 这里的stm32_controller,就是取的设备别名。

所有上面第一行代码的功能就是,将满足这些条件的端口的设备名称改为定义的设备别名。

脚本的文件名称,取名为change_udev.sh。在执行前需要给这个脚本文件赋予权限。

sudo chmod 777 change_udev.sh

赋予权限后,再运行这个脚本

sudo ./change_udev.sh

这样就运行了设备别名的设置,之后不管怎么插拔这两个USB设备,系统都将会自动的将这两个设备去给它赋予设置的设备别名。

使用设备别名

在上面,设置了设备别名,下面来看如何使用我们的设备别名。

例如我们将雷达的USB的设备别名改为了2d_lidar

雷达的roslaunch启动文件则可以写成如下:

< launch >
  < node name="rplidarNode"          pkg="rplidar_ros"  type="rplidarNode" output="screen" >
    < param name="serial_port"         type="string" value="/dev/2d_lidar"/ >
    < param name="serial_baudrate"     type="int"    value="115200"/ >< !--A1/A2 -- >
    < !-- < param name="serial_baudrate"     type="int"    value="256000"/ > -- >< !--A3 -- >
    < !-- < param name="serial_baudrate"     type="int"    value="1000000"/ > -- >< !--S2 -- >
    < param name="frame_id"            type="string" value="laser"/ >
    < param name="inverted"            type="bool"   value="false"/ >
    < param name="angle_compensate"    type="bool"   value="true"/ >    
  < /node >
< /launch >

上面的代码中,

< param name=”serial_port” type=”string” value=”/dev/2d_lidar”/ >

这里,我们就将系统的设备别名/dev/2d_lidar,设置到了参数serial_port中

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    112

    文章

    15236

    浏览量

    171218
  • STM32
    +关注

    关注

    2240

    文章

    10674

    浏览量

    348836
  • 设备
    +关注

    关注

    2

    文章

    4172

    浏览量

    69283
  • 智能车
    +关注

    关注

    21

    文章

    395

    浏览量

    76695
  • ROS
    ROS
    +关注

    关注

    1

    文章

    271

    浏览量

    16684
收藏 人收藏

    评论

    相关推荐

    创建设备函数CreateDevice调用成功返回的句柄值是什么?

    创建设备函数CreateDevice调用成功返回的句柄值是什么?
    发表于 05-19 16:57

    labview创建设备失败

    本帖最后由 dagexu 于 2017-2-21 16:13 编辑 labview运行程序时提示我创建设备失败
    发表于 02-21 15:02

    linux驱动程序开发之驱动自动创建设备节点理论知识介绍

    linux驱动程序开发-第六节:驱动自动创建设备节点
    发表于 07-15 14:46

    ROS与STM32之间的联系

    、在ROS小车里面有两个核心控制器,一个是ROS主控,一个是stm32控制器3、ROS主控是树莓派等,只要能在
    发表于 06-28 07:49

    如何利用ROS创建一种工作空间与功能包呢

    如何利用ROS创建一种工作空间与功能包呢?
    发表于 02-14 06:58

    10个方便的Bash别名

    要使用你创建的 Bash 别名,你需要将其添加到 .bash_profile 中,该文件位于你的家目录中。请注意,此文件是隐藏的,并只能从命令行访问。编辑此文件的最简单方法是使用 Vi 或 Nano 之类的东西。
    的头像 发表于 10-16 15:00 2553次阅读

    分享一个基于FreeRTOS的micro(微型)ROS

    创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。ROS遵守BSD开源许可协议。 ROS设计者
    的头像 发表于 09-16 14:37 4432次阅读

    基于FreeRTOS的micro(微型)ROS

    创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。ROS遵守BSD开源许可协议。 ROS设计者将
    的头像 发表于 09-25 14:16 1988次阅读
    基于FreeRTOS的micro(微型)<b class='flag-5'>ROS</b>

    如何在Linux系统下自动创建设备节点

      Linux驱动实验中,通过使用insmod命令加载模块后,需要通过mknod命令手动创建设备节点,这样使用起来比较麻烦,并且不可能每个设备都这样操作, Linux 系统的存在就是为了方便使用
    的头像 发表于 11-06 20:18 3330次阅读

    sudo后使用别名

    我们给shutdown命令创建一个别名,当普通用户运行的时候尝试输入这个别名去关机,我们可以看到系统不会关机。想要运行/sbin/shutdown需要root权限,然而sudo会完全忽略shutdown的这个
    的头像 发表于 02-16 11:29 627次阅读

    如何初始化ROS并创立链接

    Simulink对机器人操作系统(ROS)的支持使我们能够创建ROS网络一起工作的Simulink模型。ROS是一个通信层,允许机器人系统的不同组件以消息的形式交换信息。 组件通过将
    的头像 发表于 11-15 17:26 261次阅读
    如何初始化<b class='flag-5'>ROS</b>并创立链接

    ROS主控与STM32的硬件连接和软件设置

    硬件连接 ROS主控通过usb线连接到一个TTL电平转换芯片,再由这个电平转换芯片连接STM32芯片 电平转换芯片可以通过PCB设计在STM32芯片的电路板上,也可以使用一个USB转TTL的模块
    的头像 发表于 11-17 18:00 449次阅读
    <b class='flag-5'>ROS</b><b class='flag-5'>主控</b>与STM32的硬件连接和软件设置

    ROS如何配置固定串口设备

    Device 设备创建别名 外设对应的串口名一般都是会变化的,为了避免手动选择,这里可以通过给 USB 设备创建
    的头像 发表于 11-22 17:58 550次阅读
    <b class='flag-5'>ROS</b>如何配置固定串口<b class='flag-5'>设备</b>

    如何创建新的ROS工作空间

    创建新的ROS工作空间 由于ROS Motion Planning运动规划库与Navigation导航包存在一些同名但源码和功能不同的功能包,比如global_planne。 因此,个人推荐
    的头像 发表于 11-26 17:09 890次阅读
    如何<b class='flag-5'>创建</b>新的<b class='flag-5'>ROS</b>工作空间

    ROS主控读取stm32发送的数据

    ROS主控读取stm32发送的数据 之后便可以通过 Stm32_Serial .read (Receive_Data_Pr,sizeof(Receive_Data_Pr)); read函数读取串口
    的头像 发表于 11-26 17:49 767次阅读