使用ROS访问Raspberry Pi 2的GPIO引脚

我试图使用机器人操作系统ROS访问Raspberry Pi 2的GPIO引脚。 我知道,这个主题有很多教程。 但是我的问题如下:

  • build议的ROS的Linux发行版是Ubuntu 。 由于ROSnetworking中还有其他的Ubuntu机器,我想避免为另一个OS编译ROS。
  • 在Ubuntu中, /sys/class/gpio sysfs默认是不启用的。 我需要用自定义configuration重新编译内核。
  • 如果我不能使用/sys/class/gpio ,它看起来像我需要使用/dev/mem (例如与RPi.GPIO包)。
  • 但是/dev/mem只能被root访问。
  • 我不能以root身份运行一个ROS节点,因为它缺less了rospy和整个ROS设置。

那么,在ROS节点中获得GPIO访问的“最简单”方法是什么?

我想我已经找到了一个相当干净的解决方案,我的问题:

pigpio库是我所需要的。 它运行一个以sudo开始的守护进程,它控制着GPIO引脚。 客户端程序(没有sudo启动)与deamon进行通信,从而间接控制引脚。

你甚至可以在远程机器上运行客户端。 这样ROS节点就可以控制远程树莓的GPIO引脚,它本身甚至不运行ROS。

我目前的设置是一个Fitlet PC上的rospy节点(indigo),与一个Raspberry Pi 2进行对话,两个都运行Ubuntu 14.04。

djsw在ROS论坛的回答指出了我的正确方向。