2016-03-15 174 views
0

我試圖使用機器人操作系統ROS訪問Raspberry Pi 2的GPIO引腳。我知道,這個主題有很多教程。但我的問題如下:使用ROS訪問Raspberry Pi 2的GPIO引腳

  • ROS推薦的Linux發行版是Ubuntu。由於ROS網絡中還有其他的Ubuntu機器,我想避免爲另一個OS編譯ROS。
  • 在Ubuntu中,/sys/class/gpio sysfs默認情況下未啓用。我需要用custom configuration重新編譯內核。
  • 如果我不能使用/sys/class/gpio,看起來我需要使用/dev/mem(例如使用RPi.GPIO包)。
  • /dev/mem只能訪問
  • 而且我不能以root身份運行ROS節點,因爲它缺少了rospy以及整個ROS設置。

那麼,在ROS節點中獲得GPIO訪問的「最簡單」方法是什麼?

+0

你有一個不適合你需要的內核,使用一個。不要開始嘗試用/ dev/mem來做一些黑客行爲 – Olipro

回答

1

我想我已經找到一個相當乾淨的解決我的問題:

pigpio library正是我需要的。它運行一個以sudo開始的守護進程,它控制着GPIO引腳。客戶端程序(無sudo啓動)與deamon進行通信,從而間接控制引腳。

你甚至可以在遠程機器上運行客戶端。這樣ROS節點就可以控制遠程樹莓的GPIO引腳,它本身甚至不運行ROS。

我目前的設置是一個Fitlet PC上的rospy節點(indigo),與Raspberry Pi 2進行對話,兩者都運行Ubuntu 14.04。

djsw's answer在ROS論壇上指出了我的正確方向。