ROS1可视化利器---Webviz
0. 简介
对于ROS1而言,rqt和plotjuggler是我们最常用的工具,这两个工具:rqt中嵌入了很多有用的小工具,但是它需要播放离线包,没有办法对离线包进行实时的分析。而plotjuggler支持对离线bag包进行分析,但是不支持可视化的工具,这两个各有千秋。而近年来,有更多的工作开始落实在可视化上。
1. SLAMer常用的可视化开源库
- opengl:Open Graphics Library,译名:开放图形库或者“开放式图形库”。是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。即为可视化开发API,强项在于交互功能。
- Pangolin是SLAM常用的库之一,主要用于SLAM系统的可视化。它是基于OpenGL的,主要优势在于使用比OpenGL简单。
- PlotJuggler:时序数据可视化工具。
- Webviz:是由 cruise 开发的一个data replay工具。
- Foxglove:webviz开发人员从cruise 独立了出来开发了foxglove:
2. Webviz
Webviz-本地运行视频](https://player.bilibili.com/player.html?aid=455309080)(image-https://img-blog.img.cn/img_convert/65937e7479b27a41f29673c14c2f6e58.jpeg)(title-Webviz-%E6%9C%AC%E5%9C%B0%E8%BF%90%E8%A1%8C%E8%A7%86%E9%A2%91)
Webviz-本地运行视频](https://player.bilibili.com/player.html?aid=455309080)(image-https://img-blog.img.cn/img_convert/65937e7479b27a41f29673c14c2f6e58.jpeg)(title-Webviz-%E6%9C%AC%E5%9C%B0%E8%BF%90%E8%A1%8C%E8%A7%86%E9%A2%91)2.1 Webviz安装
然而,有时托管版本很不方便,因为在国内访问该网站较慢,不太建议直接使用官网的web机器人流式传输数据。下面我们来看下怎么在本地部署。
2.1.1 安装rosbridge_suite
Webviz和ROS之间是通过rosbridge_suite进行数据传递,如果要实时显示(不是用bag),则必须安装。
sudo apt-get install ros-<rosdistro>-rosbridge-suite
运行,launch中默认的websocket端口为9090,不用去更改,因为目前Webviz连接默认的端口就是9090。
roslaunch rosbridge_server rosbridge_websocket.launch
2.1.2 安装 nvm
nvm 是nodejs的版本管理器,类似 Anaconda(python的版本管理器)
#预备工作 sudo apt-get update sudo apt-get install build-essential libssl-dev #获取脚本并安装 #方法一 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash #方法二 wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash #更换源为淘宝镜像 #方法一(临时) NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node #方法二(永久) #在 ~/.bashrc 中添加下列语句 export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node
2.1.3 安装nodejs
直接使用nvm进行node安装和版本控制,Webviz项目暂时仅支持 node10 和 node11,高版本的 node 会出现编译错误。
#查看可安装的node版本 nvm ls-remote #安装指定版本的node nvm install 10.19.0 #查看当前的node版本 nvm current #查看已安装的node版本 nvm list #选择需要的node版本 nvm use 10.19.0
2.1.4 换源加速
#更换npm源为淘宝的源 npm config set registry https://registry.npm.taobao.org #检查是否配置成功 npm config get registry
2.1.5 编译代码
git clone https://github.com/cruise-automation/webviz.git cd webviz/ #建议先手动安装node-sass npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/ npm install node-sass #执行脚本安装项目依赖 npm run bootstrap
2.1.6 编译项目
npm run build
2.2 使用Webviz
- 运行rosbridge_websocket roslaunch rosbridge_server rosbridge_websocket.launch
- 在webviz根目录执行启动 npm run docs
- 打开谷歌浏览器,登录地址可以访问多个 127.0.0.1:8080 3. 参考文献
…详情请参照
下一篇:
第四章 随机变量的数字特征