• ROS1可视化利器---Webviz


    0. 简介

    对于ROS1而言,rqt和plotjuggler是我们最常用的工具,这两个工具:rqt中嵌入了很多有用的小工具,但是它需要播放离线包,没有办法对离线包进行实时的分析。而plotjuggler支持对离线bag包进行分析,但是不支持可视化的工具,这两个各有千秋。而近年来,有更多的工作开始落实在可视化上。

    1. SLAMer常用的可视化开源库

    1. opengl:Open Graphics Library,译名:开放图形库或者“开放式图形库”。是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。即为可视化开发API,强项在于交互功能。

    2. Pangolin是SLAM常用的库之一,主要用于SLAM系统的可视化。它是基于OpenGL的,主要优势在于使用比OpenGL简单。

    3. PlotJuggler:时序数据可视化工具。

    4. Webviz:是由 cruise 开发的一个data replay工具。https://webviz.io/

    5. Foxglove:webviz开发人员从cruise 独立了出来开发了foxglove:https://foxglove.dev/

    2. Webviz

    对于这一章讲的Webviz,我们知道rviz是ROS中最常用的可视化软件,作者将rviz的功能搬到了web页面上,可以通过浏览器完成数据的显示,称之为Webviz。同时Webviz还支持离线安装。并将程序运行在本地,直接将bag包拖到里面即可观察激光、视觉、以及各类信息。

    Webviz-本地运行视频

    2.1 Webviz安装

    作者建议使用托管版本的Webviz,它可以连接到您的rosbridge_server或从您的S3/GCS bucket流式传输bag数据。这样,您将始终使用最新版本的Webviz。

    然而,有时托管版本很不方便,因为在国内访问该网站较慢,不太建议直接使用官网的web机器人流式传输数据。下面我们来看下怎么在本地部署。

    2.1.1 安装rosbridge_suite

    Webviz和ROS之间是通过rosbridge_suite进行数据传递,如果要实时显示(不是用bag),则必须安装。

    sudo apt-get install ros-<rosdistro>-rosbridge-suite
    
    • 1

    运行,launch中默认的websocket端口为9090,不用去更改,因为目前Webviz连接默认的端口就是9090。

    roslaunch rosbridge_server rosbridge_websocket.launch
    
    • 1

    在这里插入图片描述

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    2.1.4 换源加速
    #更换npm源为淘宝的源
    npm config set registry https://registry.npm.taobao.org
    #检查是否配置成功
    npm config get registry
    
    • 1
    • 2
    • 3
    • 4
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    2.1.6 编译项目
    npm run build
    
    • 1

    在这里插入图片描述

    2.2 使用Webviz

    …详情请参照古月居

  • 相关阅读:
    postman-接口自动化
    【JavaScript高级】Proxy和Reflect
    Java技能树-RE-正则应用-字符串篇
    可制造性评估(DFM)
    滑动时间窗口的思想和实现,环形数组,golang
    天玑8000和骁龙870哪个处理器好?
    OceanBase 全局索引与局部索引探索
    第四部分:Spdlog日志库的核心组件分析-logger
    微服务-gateway【服务网关入门】
    构造函数与析构函数
  • 原文地址:https://blog.csdn.net/lovely_yoshino/article/details/127617733