标签 : roslibjs
html
var listener = new ROSLIB.Topic({
ros : ros,
name : '/listener',
messageType : 'std_msgs/String'
});
listener.subscribe(function(message) {
console.log('Received message on ' + listener.name + ': ' + message.data);
listener.unsubscribe();
});```
```terminal
rostopic pub [topic] [msg_type] [args]
rostopic pub /listener std_msgs/String "Hello, World" ```
```terminal
roslaunch rosbridge_server rosbridge_websocket.launch```
往/listener这个topic发送消息后rqt显示的是对应下图中第二个方框。
launch文件启动的节点和topic对应一/三方框。
![rqt_graph_RosGraph.png](https://img.haomeiwen.com/i3869738/e0f365927ea3a575.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
往**/listener**发布**hello,world**消息后,浏览器控制台输出如下图:
![listener.png](https://img.haomeiwen.com/i3869738/afcd31fe273187bf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
笔记:
打开浏览器后,javascript得到运行。往/listener发布消息后,/listener调用订阅函数,控制台输出数据。
********
#####__测试二:__
终端启动模拟小乌龟:
```terminal
rosrun turtlesim turtlesim_node```
在web浏览器往话题上发布运动消息:
```roslibjs
var cmdVel = new ROSLIB.Topic({
ros : ros,
name : '/turtle1/cmd_vel',
messageType : 'geometry_msgs/Twist'
});
var twist = new ROSLIB.Message({
linear : {
x : 2.0,
y : 0.0,
z : 0.0
},
angular : {
x : 0.0,
y : 0.0,
z : 0.0
}
});```
![rqt_turtle.png](https://img.haomeiwen.com/i3869738/a9960f2d9e59e323.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
网友评论