[輕鬆打造自己的ROS Jetbot] 單元2 : Jetbot ROS 環境建置時的常見錯誤與解決方案
<source : NVIDIA>
一、前言
對ROS有充滿著滿滿的熱情,下一步就想要打造一個真實的機器人。同時希望不用藉由任何擴充件就可以實現物件辨識的功能,考量預算後,Jetson nano是個不錯的選擇。於是從露天拍賣購入 Waveshare 製造的 Jetson nano相關配件,包含擴充板。
因部分模組Waveshare開發,可能和Nvidia官方的教學有些許差異,因此露天商家建議,依照Waveshare官方教學,就可以順利完成安裝。
然而,事情卻沒這麼單純。在 ROS 的安裝上,從 melodic 一直到 ros_deep_learning 都很順利,可是裝到 jetbot_ros時,遇到了以下錯誤:
1.編譯image_converter.cpp時
error: 'cudaBGR8ToRGBA32' was not declared in this scope
2.執行jetbot_motors.py
No module named Adafruit_MotorHAT找不到module
3.執行jetbot_motors.py
TabError:inconsistent use of tabs and space in indentation
在網路上也找不到相關文章,只好挽起袖子自己來除錯了。很幸運地,順利地把所有錯誤解決。為了讓開發同好不要再為著個問題困擾著,於是解決方案記錄如下。
二、錯誤與解決方案
(一)
編譯image_converter.cpp時,出現以下錯誤
error: 'cudaBGR8ToRGBA32' was not declared in this scope
解決方案:
最快的方法就是將 Jetbot 中的CMakeLists.txt、package.xml與src中所有的檔案,抽換成Jetbot原開發者的檔案,再重新編譯,就可以順利完成編譯。
(二)
2.執行jetbot_motors.py
No module named Adafruit_MotorHAT找不到module
解決方案 :
這是因為系統預設Python為2.x版,而實際上這個模組需要的是3.x版的Python。因此只要輸入以下指令,就可以順利載入 Adafruit_MototHAT 模組。若未來你的模組需使用2.x版的Python,再將以下指令的Python版本做抽換即可。
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
(三)
3.執行jetbot_motors.py
TabError:inconsistent use of tabs and space in indentation
解決方案 :
這個問題很容易解,其實就是程式碼未正確縮排。打開程式碼,從頭檢查一遍即可,記得 "Tab"和"Space"鍵不能混用,也就是說如果你選擇用 "Space"鍵進行縮排,那麼該程式碼就得全部都用"Space"鍵進行縮排。
---
參考資料
- 微雪百科 : JetBot AI Kit 教程
- dusty-nv : jetbot_ros
- CSDN : ROS运行时出现No module named rospkg的解决办法
- Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)` Errors
#Jetson_nano #Jetbot #cudaBGR8ToRGBA32 #Adafruit_MotorHAT
0 留言