0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ROS主控如何創(chuàng)建設(shè)備別名

麥辣雞腿堡 ? 來(lái)源:古月居 ? 作者:月照銀海似蛟龍 ? 2023-11-17 18:07 ? 次閱讀

創(chuàng)建設(shè)備別名

需要?jiǎng)?chuàng)建設(shè)備別名原因:

在運(yùn)行一個(gè)ros程序的時(shí)候需要提供一個(gè)端口名,這個(gè)端口名一般是ttyUSBx,設(shè)備每次插拔對(duì)應(yīng)的這個(gè)端口名它都會(huì)不一樣,需要?jiǎng)?chuàng)建一個(gè)設(shè)備別名,就是要將這個(gè)端口名來(lái)給它固定住。

圖片

重新插拔 USB1端口的設(shè)備后,變?yōu)椋?/p>

圖片

可以看到變成了/dev/ttyUSB2

端口號(hào)發(fā)生了變化

創(chuàng)建設(shè)備別名需要寫一個(gè)腳本文件,如下:

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幾的設(shè)備都進(jìn)行判斷

ATTRS{idVendor}==”10c4” 這里的idVendor ,在前面win上修改 serial的時(shí)候出現(xiàn)過,就是10c4

圖片

ATTRS{idProduct}==”ea60” 這里的idProduct,在前面win上修改 serial的時(shí)候出現(xiàn)過,就是ea60

圖片

ATTRS{serial}==”0002” 這里的serial,就是前面我們改過的,這里就根據(jù)這個(gè)值的不同,定義不同的設(shè)備別名

MODE:=”0777” 就是端口的權(quán)限

SYMLINK+=”stm32_controller” 這里的stm32_controller,就是取的設(shè)備別名。

所有上面第一行代碼的功能就是,將滿足這些條件的端口的設(shè)備名稱改為定義的設(shè)備別名。

腳本的文件名稱,取名為change_udev.sh。在執(zhí)行前需要給這個(gè)腳本文件賦予權(quán)限。

sudo chmod 777 change_udev.sh

賦予權(quán)限后,再運(yùn)行這個(gè)腳本

sudo ./change_udev.sh

這樣就運(yùn)行了設(shè)備別名的設(shè)置,之后不管怎么插拔這兩個(gè)USB設(shè)備,系統(tǒng)都將會(huì)自動(dòng)的將這兩個(gè)設(shè)備去給它賦予設(shè)置的設(shè)備別名。

使用設(shè)備別名

在上面,設(shè)置了設(shè)備別名,下面來(lái)看如何使用我們的設(shè)備別名。

例如我們將雷達(dá)的USB的設(shè)備別名改為了2d_lidar

雷達(dá)的roslaunch啟動(dòng)文件則可以寫成如下:

< 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”/ >

這里,我們就將系統(tǒng)的設(shè)備別名/dev/2d_lidar,設(shè)置到了參數(shù)serial_port中

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16033

    瀏覽量

    176656
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10847

    瀏覽量

    353775
  • 設(shè)備
    +關(guān)注

    關(guān)注

    2

    文章

    4416

    瀏覽量

    70451
  • 智能車
    +關(guān)注

    關(guān)注

    21

    文章

    401

    瀏覽量

    76853
  • ROS
    ROS
    +關(guān)注

    關(guān)注

    1

    文章

    276

    瀏覽量

    16919
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    創(chuàng)建設(shè)備函數(shù)CreateDevice調(diào)用成功返回的句柄值是什么?

    創(chuàng)建設(shè)備函數(shù)CreateDevice調(diào)用成功返回的句柄值是什么?
    發(fā)表于 05-19 16:57

    labview創(chuàng)建設(shè)備失敗

    本帖最后由 dagexu 于 2017-2-21 16:13 編輯 labview運(yùn)行程序時(shí)提示我創(chuàng)建設(shè)備失敗
    發(fā)表于 02-21 15:02

    linux驅(qū)動(dòng)程序開發(fā)之驅(qū)動(dòng)自動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn)理論知識(shí)介紹

    linux驅(qū)動(dòng)程序開發(fā)-第六節(jié):驅(qū)動(dòng)自動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn)
    發(fā)表于 07-15 14:46

    ROS與STM32之間的聯(lián)系

    、在ROS小車?yán)锩嬗袃蓚€(gè)核心控制器,一個(gè)是ROS主控,一個(gè)是stm32控制器3、ROS主控是樹莓派等,只要能在
    發(fā)表于 06-28 07:49

    如何利用ROS創(chuàng)建一種工作空間與功能包呢

    如何利用ROS創(chuàng)建一種工作空間與功能包呢?
    發(fā)表于 02-14 06:58

    采用SFC70創(chuàng)建設(shè)備的診斷地址

    該塊采用 SFC70 創(chuàng)建設(shè)備的診斷地址(PN_System/Device_Nr);SFC12 要用到該地址。
    的頭像 發(fā)表于 09-03 14:04 ?1878次閱讀
    采用SFC70<b class='flag-5'>創(chuàng)建設(shè)備</b>的診斷地址

    分享一個(gè)基于FreeRTOS的micro(微型)ROS

    創(chuàng)建機(jī)器人應(yīng)用軟件。它提供了硬件抽象、設(shè)備驅(qū)動(dòng)、庫(kù)函數(shù)、可視化、消息傳遞和軟件包管理等諸多功能。ROS遵守BSD開源許可協(xié)議。 ROS設(shè)計(jì)者
    的頭像 發(fā)表于 09-16 14:37 ?4829次閱讀

    基于FreeRTOS的micro(微型)ROS

    創(chuàng)建機(jī)器人應(yīng)用軟件。它提供了硬件抽象、設(shè)備驅(qū)動(dòng)、庫(kù)函數(shù)、可視化、消息傳遞和軟件包管理等諸多功能。ROS遵守BSD開源許可協(xié)議。 ROS設(shè)計(jì)者將
    的頭像 發(fā)表于 09-25 14:16 ?2265次閱讀
    基于FreeRTOS的micro(微型)<b class='flag-5'>ROS</b>

    如何在Linux系統(tǒng)下自動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn)

      Linux驅(qū)動(dòng)實(shí)驗(yàn)中,通過使用insmod命令加載模塊后,需要通過mknod命令手動(dòng)創(chuàng)建設(shè)備節(jié)點(diǎn),這樣使用起來(lái)比較麻煩,并且不可能每個(gè)設(shè)備都這樣操作, Linux 系統(tǒng)的存在就是為了方便使用
    的頭像 發(fā)表于 11-06 20:18 ?4254次閱讀

    sudo后使用別名

    我們給shutdown命令創(chuàng)建一個(gè)別名,當(dāng)普通用戶運(yùn)行的時(shí)候嘗試輸入這個(gè)別名去關(guān)機(jī),我們可以看到系統(tǒng)不會(huì)關(guān)機(jī)。想要運(yùn)行/sbin/shutdown需要root權(quán)限,然而sudo會(huì)完全忽略shutdown的這個(gè)
    的頭像 發(fā)表于 02-16 11:29 ?816次閱讀

    ROS主控與STM32的硬件連接和軟件設(shè)置

    硬件連接 ROS主控通過usb線連接到一個(gè)TTL電平轉(zhuǎn)換芯片,再由這個(gè)電平轉(zhuǎn)換芯片連接STM32芯片 電平轉(zhuǎn)換芯片可以通過PCB設(shè)計(jì)在STM32芯片的電路板上,也可以使用一個(gè)USB轉(zhuǎn)TTL的模塊
    的頭像 發(fā)表于 11-17 18:00 ?781次閱讀
    <b class='flag-5'>ROS</b><b class='flag-5'>主控</b>與STM32的硬件連接和軟件設(shè)置

    ROS如何配置固定串口設(shè)備

    Device 設(shè)備創(chuàng)建別名 外設(shè)對(duì)應(yīng)的串口名一般都是會(huì)變化的,為了避免手動(dòng)選擇,這里可以通過給 USB 設(shè)備創(chuàng)建
    的頭像 發(fā)表于 11-22 17:58 ?921次閱讀
    <b class='flag-5'>ROS</b>如何配置固定串口<b class='flag-5'>設(shè)備</b>

    如何創(chuàng)建新的ROS工作空間

    創(chuàng)建新的ROS工作空間 由于ROS Motion Planning運(yùn)動(dòng)規(guī)劃庫(kù)與Navigation導(dǎo)航包存在一些同名但源碼和功能不同的功能包,比如global_planne。 因此,個(gè)人推薦創(chuàng)
    的頭像 發(fā)表于 11-26 17:09 ?1285次閱讀
    如何<b class='flag-5'>創(chuàng)建</b>新的<b class='flag-5'>ROS</b>工作空間

    ROS主控與STM32的硬件連接和軟件連接

    硬件連接 ROS主控通過usb線連接到一個(gè)TTL電平轉(zhuǎn)換芯片,再由這個(gè)電平轉(zhuǎn)換芯片連接STM32芯片 電平轉(zhuǎn)換芯片可以通過PCB設(shè)計(jì)在STM32芯片的電路板上,也可以使用一個(gè)USB轉(zhuǎn)TTL的模塊
    的頭像 發(fā)表于 11-26 17:45 ?1332次閱讀
    <b class='flag-5'>ROS</b><b class='flag-5'>主控</b>與STM32的硬件連接和軟件連接

    ROS主控讀取stm32發(fā)送的數(shù)據(jù)

    ROS主控讀取stm32發(fā)送的數(shù)據(jù) 之后便可以通過 Stm32_Serial .read (Receive_Data_Pr,sizeof(Receive_Data_Pr)); read函數(shù)讀取串口
    的頭像 發(fā)表于 11-26 17:49 ?964次閱讀