
这是一个简单的示例,说明如何使用ROS可以通过网络连接多个设备并发送控制数据。
剪辑的最后是视频,演示了如何通过操纵杆控制机器人。
我们本身需要一个操纵杆,您可以从PS4上将其取出或在商店中购买。 我购买了dualshock 4 v2,第一个版本也可以使用。
您还需要在具有ROS的计算机上安装蓝牙,在驱动程序文档中,建议使用USB Blutooth适配器2.1+版。 我使用笔记本电脑内置的适配器工作得很好。 您也可以连接操纵杆和USB电缆。
然后在带有ROS的Ubuntu中,您需要
根据说明安装
驱动程序 。
安装驱动程序并通过蓝牙连接操纵杆后,我们启动了图形实用程序jstest-gtk,看到我们有两个操纵杆,我们需要第二个操纵杆,因为它具有所有按钮和操纵杆。

由于ROS默认情况下与joy0一起使用,因此我们需要在joy1上重新定义它:
sudo chmod a+rw /dev/input/js1 rosparam set joy_node/dev "/dev/input/js1"
现在我们需要将它们全部连接到单个网络中。 拥有ROS的笔记本电脑将是主机,带有BeagleBone Blue ROS的EduMip将通过wifi连接到笔记本电脑。 这两个设备都在wifi路由器的本地网络中。
在您的PC上,设置ROS环境变量,以使用.bashrc命令在PC上搜索ros(roscore)向导(将这些命令添加到.bashrc文件的末尾):
“export ROS_MASTER_URI=http://192.168.10.101:11311” <- ROS IP- , ros (roscore). “export ROS_IP=192.168.10.101” <- ROS IP- ( ).
在EduMIP上,设置ROS环境变量,以便它使用.bashrc命令在PC上找到ros(roscore)向导(将这些命令添加到.bashrc文件的末尾):
“export ROS_MASTER_URI=http://192.168.10.101:11311” <- ROS IP- , ros (roscore). “export ROS_IP=192.168.10.102” <- ROS IP- ( EduMIP).
剩下的只是编写一个程序,该程序将从操纵杆读取操纵杆的位置并发送给主题,然后由机器人读取该主题。
在您的PC上,您可以通过运行rqt_graph直观地查看节点和主题:

演示使用操纵杆进行的机器人控制:
简介:使用ROS,您可以为分散在多个设备上的工作构建系统,例如,在主计算机上执行大型计算,而仅对机器人本身进行快速响应所需的内容。 BeagleBone Blue具有可编程的实时子系统(PRU-ICSS)。
PRU-ICSS由一个基于两个32位内核的微处理器组成,该内核具有RISC架构,并以200 MHz的频率运行。 每个内核都有自己的存储区以及Linux兼容的存储区,可以使用位于P8-P9连接器上的通用引脚并产生中断。
此外,更改位置时安装在BeagleBone Blue上的MPU9250传感器可能会形成中断,您可以在该中断上挂起功能,这正是EduMip所做的。
如果我们谈论下一个进化步骤,那就是ROS2,其中的区别之一是DDS(数据分发服务),它使您可以构建一个不运行ROS的不同交互机器人和设备的网络。