利用Rosweb实现ros与网页交互(1)

文章目录

利用Rosweb实现ros与网页交互(1)



前言

1、需求:在网页上实时显示slam建图、导航等交互。即利用rosbridge -Websocket实现ROS与Web的交互;
2、本章节利用仿真机器人实现网页控制机器人建图;
3、操作环境:Ubuntu20.04,ROS版本:noetic;
4、源码下载地址已上传


一、环境配置

首先介绍常见的工具包:rosbridge_suite功能包,roslibjs,ros2djs,ros3djs。
● rosbridge_suite:实现Web浏览器与ROS之间的数据交互;
● roslibjs:实现了ROS中的部分功能,如Topic,Service,URDF等;
● ros2djs:提供了二维可视化的管理工具,可以用来在Web浏览器中显示二维地图;
● ros3djs:提供了三维可视化的管理工具,可以在Web端显示三维模型。
在这几个功能包中,rosbridge_suite是最重要的,它是Web和ROS沟通的桥梁 。

1、首先下载功能包到主目录即可

因为是国外的github所以会下载不成功,多尝试几次。

 git clone https://github.com/RobotWebTools/roslibjs.git
 git clone https://github.com/RobotWebTools/ros2djs
 git clone https://github.com/RobotWebTools/ros3djs

2、下载安装rosbridge工具

注意ros版本,本版本为noetic。

sudo apt-get install ros-noetic-rosbridge-suite

二、使用步骤

(一)、ROS部分

1.启动ROS核心

roscore

2.进入工作空间

cd ros_web

3.编译

catkin_make

4.source

source ./devel/setup.sh 

5.启动仿真机器人

本文使用的机器人为古月居的仿真机器人,首先启动Gazebo仿真环境,然后再启动Rviz可视化工具。

roslaunch  mbot_gazebo mbot_laser_nav_gazebo.launch

在这里插入图片描述

roslaunch mbot_navigation gmapping_demo.launch

在这里插入图片描述

(二)、网页部分

1.查本机IP

获取主机IP地址,并且在index.html以及main.js文件修改成主机的IP。

ifconfig

在这里插入图片描述

2.修改index.html以及main.js文件

查得本机IP之后,打开index.html以及main.js文件,并修改url,改成自己的主机的IP地址。
如下所示:
在这里插入图片描述
在这里插入图片描述

3.启动rosbridge websocket

在终端上启动launch文件

roslaunch rosbridge_server rosbridge_websocket.launch

4.使用浏览器打开index.html文件

在文件夹中,双击文件,便可自动在浏览器打开,然后输入对应的地址,点击连接。
在这里插入图片描述


总结

问题1:index.html中,一些源访问过慢,可以下载到本地上调用。
本项目已把需要的全下载了,但是注意文件路径要修改成自己的路径。
问题2:如果网页不正常显示,请按F12打开控制台排查问题。就如问题1所说,很多是因为js文件或者是css文件在网络上无法正常访问,所以需要下载到本地,但是要注意对应的文件路径!!!!!


参考网址:
①利用Websocket实现ROS与Web的交互
②制作简单的ROSWEB (2) -使用rosjs 进行栅格地图web端3d可视化
③rosweb使用,roslibs使用,ros2djs,ros3djs具体使用
④基于 ros2djs 的地图可视化
⑤ROS学习(28)Web GUI


本项目资源已上传
展望:下一章尝试用ros2djs实现2d可视化交互

  • 31
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
利用ROS机器人操作系统)实现手势控制小海龟运动是通过结合ROS的三个核心概念:发布者(Publisher)、订阅者(Subscriber)和服务(Service)来实现的。 首先,我们需要通过ROS的发布者订阅者模式,将与手势识别相连的传感器发布到一个特定的主题上。在这个情况下,传感器将捕捉到手势的运动,并将其解释为特定的ROS消息。例如,当手势为“向前推进”时,发布者将将消息发布到主题“/cmd_vel”。 其次,我们将创建一个ROS订阅者节点,用于接收发布者节点发送的消息。该节点将通过订阅主题“/cmd_vel”来获取手势传感器发布的指令。一旦接收到指令,该节点将相应地解释并发送小海龟的运动指令到主题“/turtle1/cmd_vel”,以使其向所需的方向移动。 最后,我们可以创建一个服务节点,它可以监听特定的服务请求,并执行相应的任务。例如,我们可以通过创建一个名为“/turtle_control”的服务节点,来接收特定手势的请求,例如“停止”、“左转”、“右转”等。当接收到这些请求时,服务节点将向小海龟发送相应的运动指令。 通过结合这三个核心概念,我们可以实现利用ROS实现手势控制小海龟运动的功能。总体而言,这种方法可以使小海龟通过手势控制来移动,从而增加了机器人控制的交互性和灵活性。同时,通过ROS的发布订阅模式和服务,我们可以高效地管理和处理海龟运动的指令,从而更好地控制机器人的运动。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值