通過前面一系列的鋪墊,相信大家對整個miiboo機器人的DIY有了一個清晰整體的認識。接下來就正式進入機器人大腦(嵌入式主板:樹莓派3)的開發。本章將從樹莓派3的開發環境搭建入手,為後續ros開發、slam導航及語音交互演算法做準備。本章內容:

1.安裝系統ubuntu_mate_16.04

2.安裝ros-kinetic

3.裝機後一些實用軟體安裝和系統設置

4.PC端與robot端ROS網路通信

5.Android手機端與robot端ROS網路通信

6.樹莓派USB與tty串口號綁定

7.開機自啟動ROS節點


6.樹莓派USB與tty串口號綁定

底盤、激光雷達、IMU這三個感測器都使用串口與樹莓派通信,為了防止每次開機這三個設備的串口號發生變動,需要將串口號進行綁定與重映射。

創建rules文件:

rules文件前的序號越大優先順序越小,將優先順序設置的小一點;創建文件/etc/udev/rules.d/99-miiboo-usb-serial.rules,文件內容如圖28。

(圖28)/etc/udev/rules.d/99-miiboo-usb-serial.rules文件內容

確定新插入串口設備的屬性:

#將<devpath>替換成新插入串口設備號,如/dev/ttyUSB0
udevadm info -a -p $(udevadm info -q path -n <devpath>)

在輸出的數據中從上到下找(如KERNELS=="1-1.4.3:1.0"形式的項),下一個不帶「:」的KERNELS就是我們要找的,將下面這些參數

ATTRS{idProduct}

ATTRS{idVendor}

KERNELS

的取值填入上面創建的rules文件中對應的位置,然後在SYMLINK+中給這個設備取一個別名,MODE設為0777。

將底盤、雷達、IMU依次插入樹莓派3的USB口,重複執行上面確定新插入串口設備的屬性這一步,直到將這3個串口都綁定完成。這裡將底盤、雷達、IMU分別ttyUSB*名稱分別映射成別名miiboo、lidar、imu,這樣在不改變底盤、雷達、IMU插入樹莓派3的USB口物理孔位順序時,不論上電開機後這3個串口被系統分配的ttyUSB*實際是多少,我們都可以用映射好的別名/dev/miiboo、/dev/lidar、/dev/imu來訪問底盤、雷達、IMU串口,並且不用擔心用戶訪問許可權不足的問題。這裡特別說明,miiboo機器人的底盤、雷達、IMU插入樹莓派3的USB口物理孔位順序,如圖29,請不要改變這個順序。

(圖29)miiboo機器人的底盤、雷達、IMU插入樹莓派3的USB口物理孔位順序

使綁定設置生效:

重啟機器人使綁定設置生效,命令如下。

sudo reboot

機器人重啟後通過命令查看綁定是否生效,看到下面的輸出就說明綁定成功了,如圖30。

(圖30)查看綁定是否生效

推薦閱讀:
相關文章