作者在读学校SUTD
Gzweb简介
Gzweb是针对Gazebo开发的web端可视化平台,利用了Gzclient和Gzserver实现的前后端通信互动,Gzweb作为Gzclient与本地的数据库通信,在完成端口和数据库设置后,运Gazebo的同时,在本地局域网的任意终端打开web应用,输入相对应的端口地址即可在web端上实时展示Gazebo的界面,是为Gazebo制作远端可视化窗口的绝佳工具。
Gzweb:Gazebo的客户端
Gzweb安装
Gzweb的安装过程会比较麻烦,会出现很多不兼容的问题,如npm版本不对或与nodejs冲突,需要自行Google报的错误来解决对应的问题,由于几乎找不到有用的中文参考资料,因此Gzweb出现什么问题还可到其官方bitbucket或Gzweb的Git问答社区查询、自行提问或者参考现有回答。
Gzweb安装过程:
首先安装依赖项(注意对应的版本,gazebo7以上的话把7去掉):
sudo apt install gazebo7 libgazebo7-dev
sudo apt install libjansson-dev nodejs npm nodejs-legacy libboost-dev imagemagick libtinyxml-dev mercurial cmake build-essential
依次运行以下指令
cd ~; git clone https://github.com/osrf/gzweb
cd ~/gzweb
git checkout gzweb_1.4.0
第一次build时,你需要让gzweb连接到gazebo的环境以识别系统的Model文件(gazebo的setup.sh
文件对应的位置可能不同):
source /usr/share/gazebo/setup.sh
# If you did a source install, you should run instead:
source <YOUR_GAZEBO_PATH>/share/gazebo/setup.sh
在安装成功后要运行
npm run deploy --- -m local
该指令是将本地模型导入到gzweb中并构建本地数据库,储存在/gzweb/http/assets
下,在随后启动gzweb后,web端显示的模型其实都是从本地数据库获得的。注意这一步一般都会报错,错误与nodejs
或者npm
相关,因为版本问题,gzweb安装时必须有对应的版本,最好是Gazebo7
,但是更高版本的也可以通过更改nodejs
和npm
实现。
Gzweb运行
在拷贝完本地模型后可启动gazebo和gzweb进行测试:
gazebo
这里也可以roslaunch一个可以启动gazebo的launch文件,然后新开一个终端:
cd ~/gzweb
npm start
然后用该局域网下任一设备打开一个空白网页输入启动gzweb的电脑ip(可在终端运行ifconfig查看)和8080端口,如在网页地址输入192.168.xx.xxx:8080即可在网页端看到gazebo的状态,并且可以做到实时更新与交互操作(延迟与网络带宽有关)。
在Gzweb端交互使用Gazebo模型
Gzweb使用注意事项
gzweb与gazebo是平行关系,但只能识别数据库~/gzweb/http/assets
中的模型,自己的robot模型是在launch文件中启动的某一路径下的urdf或者xacro文件,因此需要将这个路径指向的文件夹整个放到~/gzweb/http/assets
中,这样web端便可显示我们的原创机器人模型。如果不能显示则说明模型文件存在模型不完整的问题(即urdf或xacro文件必须包含完整的joint和link并且有关系),可在模型路径
下打开终端运行
check_urdf xxx.urdf/xxx.xacro
以查看文件错误说明。
更多Gzweb报错问题可以参考安装界面下方Troubleshooting
部分,或者在本文上边提到的github和bitbucket社区进行查询即可。
笔者本科毕业于上海交通大学,现SUTD PhD在读,有两年多ROS的使用经验,目前仍在不停研究中。本系列==多机器人编队==将结合论文讲解多机器人编队的算法原理、稳定性分析等研究领域,持续不断更新中。如果大家有相关问题或发现作者漏洞欢迎私戳,同时欢迎关注收藏。
同时欢迎关注博主Git和CSDN:
https://github.com/redglassli
https://blog.csdn.net/qq_33742147