使用xbox手柄控制小车机器人具体步骤(以mrobot程序包为例)
1.安装xbox360手柄驱动
sudo apt-get install ros-indigo-joystick-drivers
2.测试手柄(一般连接为js0)
ls /dev/input/
可能为js0一个,也有可能为js0,js1两个,还有可能出现js0-3四个,在测试中可确定手柄为哪一个
第一种方法:
使用 jstest-gtk 测试你的手柄
sudo apt-get install jstest-gtk
jstest-gtk
输入上诉指令后会出现图形化手柄测试程序,选择测试
第二种方法:
sudo jstest /dev/input/js0
输入后摇动手柄,如果终端的数据发生变化,即为js0
若没有变化可改为js1,继续测试
3.配置joystick_teleop.launch(turtlebot名字为xbox360_teleop.launch)
mrobot在程序包mrobot_nav/launch中,rbx1在程序包rbx1_nav/launch中,turtlebot在turtlebot_teleop/launch
选择使能键(即只有按着这个按键转动摇杆,小车才会移动)
找到 <param name="axis_deadman" value="7"/> ,其中7刚好为xbox手柄的start按键,不同手柄可能不同需要多次测试选择,如你的为8则将上句中的7改为8即可。
找到<node pkg="joy" type="joy_node" name="joystick" output="screen" /> (在倒数几行),按回车另起一行,填写:
<param name="dev" type="string" value="/dev/input/js0" />
4.使用手柄控制你的小车
roscore
roslaunch mrobot_bringup mrobot.launch
roslaunch mrobot_nav joystick_teleop.launch
使用不同的小车程序包启动指令不同但是类似,rbx1为
roscore
roslaunch rbx1_bringup minimal.launch
roslaunch rbx1_nav joystick_teleop.launch