使用ROS

时间:2016-03-15 17:25:27

标签: ubuntu raspberry-pi gpio ros sysfs

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

  • 推荐的ROS Linux发行版 Ubuntu 。由于ROS网络中还有其他Ubuntu机器,我想避免为不同的操作系统编译ROS。
  • 在Ubuntu中,默认情况下不启用 /sys/class/gpio sysfs。我需要使用custom configuration重新编译内核。
  • 如果我无法使用/sys/class/gpio,我似乎需要使用 /dev/mem (例如使用RPi.GPIO包)。
  • /dev/mem仅可供 root
  • 访问
  • 我无法以root用户身份运行ROS节点,因为它缺少 rospy 以及整个ROS设置。

那么,"最简单的"在ROS节点内获取GPIO访问权限的方法

1 个答案:

答案 0 :(得分:1)

我认为我找到了一个相当干净的解决方案来解决我的问题:

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

您甚至可以在远程计算机上运行客户端。通过这种方式,ROS节点可以控制远程树莓的GPIO引脚,它本身甚至不能运行ROS。

我目前的设置是在一台与Raspberry Pi 2交谈的fitlet PC上的一个rospy节点(indigo),两者都运行Ubuntu 14.04。

ROS论坛中的

djsw's answer指出了我正确的方向。