ROS::用摇杆控制你的机器人(准备篇)

这其实取自《Learning ROS for Robotics Programming》的第四章,这里略加改编。
所有程序在ROS Hydro上测试。

1. 准备工作
sudo apt-get install ros-fuerte-joystick-drivers
sudo apt-get install ros-fuerte-joystick-drivers-tutorials
sudo apt-get install jstest-gtk (手柄测试程序)

2. 连接PS3手柄到你的电脑
执行以下命令
dmesg | grep sony
如果你获得如下信息,则手柄已经就绪了。

[ 1330.006916] sony 0003:054C:0268.0003: Fixing up Sony Sixaxis report descriptor
[ 1330.051418] sony 0003:054C:0268.0003: input,hiddev0,hidraw2: USB HID v1.11 Joystick [Sony PLAYSTATION(R)3 Controller] on usb-0000:00:1d.0-1/input0

使用以下命令来打开你的图形化手柄测试程序。如果手柄按键有相应,则表示手柄OK。

jstest-gtk


 3. 通过手柄发送ROS Message

在终端1运行 roscore

在终端2运行 rosrun joy joy_node

在终端3运行 rostopic echo /joy

在终端3中你就可以看到手臂发送至topic joy的消息

例:

---
header: 
seq: 1424
stamp: 
secs: 1390400632
nsecs: 896709363
frame_id: ''
axes: [-0.0, -0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.0, 0.08682194352149963, 0.0]
buttons: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]


作为通常的调试手段,你可以用

a. rostopic list 来列出所有活动的topic

~$ rostopic list
/diagnostics
/joy
/rosout
/rosout_agg


b. 用rostopic type /joy来查看topic joy的类型

~$ rostopic type /joy
sensor_msgs/Joy


c. 然后你就可以用如下命令来查看Message的构造了。

~$ rosmsg show sensor_msgs/Joy
std_msgs/Header header
uint32 seq
time stamp
string frame_id
float32[] axes
int32[] buttons


4. 准备用手柄控制turtlesim

用rosrun turtlesim turtlesim_node打开你乌龟机器人的显示终端

用如下命令得到乌龟机器人终端所接收的Message

~$ rostopic type /turtle1/cmd_vel
geometry_msgs/Twist
$ rosmsg show geometry_msgs/Twist
geometry_msgs/Vector3 linear
float64 x
float64 y
float64 z
geometry_msgs/Vector3 angular
float64 x
float64 y
float64 z

你可能感兴趣的:(Robot)