dajianli

金牌会员
  • 主题:31
  • 回复:288
  • 金钱:1016
  • 积分:1674
系统环境: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