都怪黑娃这个坑货。 |
系统环境:ROS+Hydro+Ubuntu12.04 硬件环境:国产仿ps无线手柄 1、测试遥控 首先安装遥控驱动 sudo apt-get installros-hydro-joystick-drivers 然后将你的遥控连接到电脑查看是否被识别 ls /dev/input/ 显示下面画面,遥控的端口是js0 我们检测一下其是否工作 sudo jstest /dev/input/js0 显示: 大家可以看到我的遥控已经被识别了,虽然是山寨的,但是将就能用,反正只是测试,这玩意又便宜又实用,我们按一下遥控上的按键,看一下上面的十组数据是否变化,如果遥控测试正常,那么说明直接就可以在ROS下使用了,我们在ROS下继续测试。 打开终端输入:roscore 另外再打开一个终端输入:rosrun joy joy_node 这样就说明我们的配置什么的都正确了 2、ROS下使用遥控 在刚才打开的基础上我们再另外打开一个终端 输入:rosnode list,列出当前运行的节点 输入:rosnode info /joy_node 获取消息使用类型 可以看到我们此处需要的消息类型为:sensor_msgs/Joy 实际这个命令很常用,大家多多使用。 知道的消息类型,我们可以查看一下这个消息使用了什么样的数据结构。 输入命令:rosmsg show sensor_msgs/Joy 这个就是遥控需要的数据结构类型。 还有一个很有意思的命令 输入命令:rostopic list 列出当前活动的话题 我们看到一共有四个活动的节点其中/joy就是我们目前用的遥控的话题。 输入命令:rostopic echo /joy 可以看到一些向量表达式,这个就是用于发布实际硬件按钮和轴向输入的状态。 更多关于rostopic 和rosnode的用法请自行研究。 3、例程:写一个遥操作节点用它来驱动的turtlesim乌龟。 首先我们来看一下turtlesim这个话题需要什么样的数据类型 输入命令:rosrun turtlesim turtlesim 运行turtlesim节点 ****如果提示 请先运行:roscore 输入命令:rostopic list 列出话题列表 其中:/turtle1/cmd_vel就算是我们的话题, 知道话题后我们需要知道话题的类型 其中:geometry_msgs/Twist就是我们的话题类型 知道话题类型,我们可以查看一下他所需要的数据结构 输入命令:rosmsg show geometry_msgs/Twist 好了,我们现在知道了turtlesim的主题和需要的数据结构,就可以创建一个程序,从遥控获得数据从而控制turtlesim了。 下一篇:ROS遥控turtlesim |