通过ROS使用PS4 Dualshock 4游戏杆控制EduMip自平衡机器人


这是一个简单的示例,说明如何使用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). 

剩下的只是编写一个程序,该程序将从操纵杆读取操纵杆的位置并发送给主题,然后由机器人读取该主题。

 // Callback function for joystick pessaged void joyCallback(const sensor_msgs::Joy::ConstPtr& joy) { // X vel driven by left joystick for and aft command_velocity_twist.linear.x = joy->axes[1]; // heading driven by left joysticj left and right command_velocity_twist.angular.z = joy->axes[0]; } // this function gets called at 10Hz to publish the command_velocity array of 2 floats void timerCallback(const ros::TimerEvent& event) { cmd_vel_publisher.publish(command_velocity_twist); } 

在您的PC上,您可以通过运行rqt_graph直观地查看节点和主题:



演示使用操纵杆进行的机器人控制:


简介:使用ROS,您可以为分散在多个设备上的工作构建系统,例如,在主计算机上执行大型计算,而仅对机器人本身进行快速响应所需的内容。 BeagleBone Blue具有可编程的实时子系统(PRU-ICSS)。

PRU-ICSS由一个基于两个32位内核的微处理器组成,该内核具有RISC架构,并以200 MHz的频率运行。 每个内核都有自己的存储区以及Linux兼容的存储区,可以使用位于P8-P9连接器上的通用引脚并产生中断。

此外,更改位置时安装在BeagleBone Blue上的MPU9250传感器可能会形成中断,您可以在该中断上挂起功能,这正是EduMip所做的。

如果我们谈论下一个进化步骤,那就是ROS2,其中的区别之一是DDS(数据分发服务),它使您可以构建一个不运行ROS的不同交互机器人和设备的网络。

Source: https://habr.com/ru/post/zh-CN413901/


All Articles