我试图使用机器人操作系统ROS访问Raspberry Pi 2的GPIO引脚。 我知道,这个主题有很多教程。 但是我的问题如下:
/sys/class/gpio
sysfs默认是不启用的。 我需要用自定义configuration重新编译内核。 /sys/class/gpio
,它看起来像我需要使用/dev/mem
(例如与RPi.GPIO包)。 /dev/mem
只能被root访问。 rospy
和整个ROS设置。 那么,在ROS节点中获得GPIO访问的“最简单”方法是什么?
我想我已经找到了一个相当干净的解决方案,我的问题:
pigpio库是我所需要的。 它运行一个以sudo开始的守护进程,它控制着GPIO引脚。 客户端程序(没有sudo启动)与deamon进行通信,从而间接控制引脚。
你甚至可以在远程机器上运行客户端。 这样ROS节点就可以控制远程树莓的GPIO引脚,它本身甚至不运行ROS。
我目前的设置是一个Fitlet PC上的rospy节点(indigo),与一个Raspberry Pi 2进行对话,两个都运行Ubuntu 14.04。
djsw在ROS论坛的回答指出了我的正确方向。