利用Web实现对ros小车的远程控制
最近在学习ros时发现ros也可以与web进行通信! 所以就做了一些简单的测试。刚开始熟悉时是参考的古月居的这篇文章。原文链接
他的功能也很简单,原文都有介绍。我就不在这里讲述了。我跟着教程走了一遍之后,联想到这个消息的格式不就是我安装好ROS之后第一次让小乌龟运行的那个格式类型吗?
开始实现
首先运行小乌龟和键盘控制之后,通过rostopic list可以看到现在的话题都有哪些?但是通过这个指令您可能不知道哪个话题是我们用来控制乌龟运动的,但是还有一个较为直观的就是rqt,通过输入rqt_graph就可以直观的看到两个节点之间的话题了,如下图,架在小乌龟和键盘控制中间的那部分正是我们需要的!
接下来,我们就把这个话题复制下来,粘贴到html文件中的对应部分。如下图。
我们先修改这一处,下面这个我们需不需要修改呢?我们在用一个命令看一下就知道了!在终端中输入rostopic type /turtle1/cmd_vel,然后回车,看下输出的消息,是不是和原来的消息格式是相同的?
继续修改
后面的修改就比较简单了,把后面的代码稍微修改一下,就可以控制小乌龟原地转圈圈了!代码如下:
var twist = new ROSLIB.Message({
linear : {
x : 1.0,
y : 0.0,
z : 0.0
},
angular : {
x : 0.0,
y : 0.0,
z : 1.0
}
});//创建一个message
function func()//在点击”Publish”按钮后发布消息,并对消息进行更改
{
cmdVel.publish(twist);//发布twist消息
}