用户界面

菜单栏

在菜单栏中,存在有许多按键,这些按键对于 RVS 的基本运行起着至关重要的工作,我们将会把这部分内容拆分为 3 个子部分进行功能说明,从上到下的顺序分别为软件工具栏、运行控制栏、文件管理栏。(加密功能将会在 快速入门 ->工程项目加密 中详细介绍)

cdl_2

软件工具栏

软件工具栏包含:文件、资源、模板XML、视图、运行、工具、帮助。

每一个按钮点击都是一个下拉栏,在下拉栏中会有更加详细的功能。

gjl

文件按钮:

file

  • 新建:在 runtime 下新建一个空的工程项目 xml 。

  • 加载:从本地路径中读取一个已有的工程项目 xml 。

  • 最近加载:快速加载最近打开过的工程项目 xml ,至多支持10个条目。

  • 保存:将文件以原有名称和路径保存。

  • 另存为:另存为新的文件名称和路径。

  • 退出:退出 RVS 软件。

资源按钮:

resources

  • 数据中心管理资源:用于对 RVS 中多种数据进行管理。

  • TCP 远程控制服务资源:用于在 RVS 的分线程中启动一个 TCP server 服务器。

  • TCP 服务器连接资源:于在 RVS 的分线程中启动一个TCP服务器资源。通过添加TCP服务器连接资源,使用 RVS 中 TCPServerReceive 算子(TCP服务器接收) 和 TCPServerSend 算子(TCP服务器发送) 来获取TCP服务器收到的消息 或 通过TCP服务器给已连接的客户端发出消息。

  • 运动规划资源管理:为抓取目标提供了抓取方案的运算场景,每个运动规划资源算子仅能绑定一种抓取目标。通过输入检测目标的位姿,可将该类抓取目标添加至场景中。场景中还可以添加各类避撞物。

  • 机器人仿真控制资源:通过添加机器人仿真控制资源,加载数模文件,可以在 RVS 软件内控制机器人仿真移动与姿态控制。这样可以在没有实际硬件的情况下进行仿真和测试。

  • 图漾相机资源:通过添加图漾相机资源,实现图漾相机图像和点云的采集。

  • 图漾相机仿真资源:当没有图漾相机时,可以通过添加图漾相机仿真资源来实现加载采集的点云、彩色图、深度图的功能。这样可以在没有实际硬件的情况下进行仿真和测试。

模板XML:

xml

  • 集成常用 xml ,可直接加载使用。

视图:

view

  • 窗口布局:默认有四种布局,点击可切换软件各窗口布局位置,也可以点击算子图、3D 视图、2D 视图等来选择各子窗口的开启或关闭。

  • 全屏:将软件全屏显示。

运行:

run

  • 单次运行:整个工程项目流程运行一次后停止。

  • 运行:循环运行当前工程项目直至手动停止。

工具:

set

  • 管理员密码:设置管理员密码,当从 Lite 模式切换到开发者模式时需要输入此密码。

  • 工作模式:开发者/Lite模式切换

  • 切换语言:中/英文切换。

  • 切换风格:深色/浅色风格切换。

  • 长度单位:米/毫米切换。

  • 角度单位:弧度/角度切换。

帮助按钮:

help

  • 快捷键:显示一个快捷键窗口,包含软件内所有的快捷操作按键。

  • 许可证:显示当前机器的机器码,用于申请授权。

  • 软件授权协议:显示 Robot Vision Suite 的软件授权使用协议。

  • 变更日志:记录 RVS 版本更新日志。

  • 关于:显示上海图漾的公司信息,以及软件所使用内核的版本信息。

  • 在线更新:通过互联网自动下载并安装最新的软件版本。

运行控制栏

root

  • 运行:循环运行当前工程项目直至手动停止。

  • 停止:手动停止正在循环运行的工作状态。

  • 单次运行:整个工程项目流程运行一次后停止。

  • 已停止(红色按钮):代表当前工程项目处于停止的工作状态,点击一次,会将项目切换为循环运行状态(同时红色按钮会切换为绿色按钮),再次点击会重新切换为停止状态(红色按钮)。

  • 100ms:内核时间代表执行进程所花费的时间,当内核时间设置较小时,RVS执行循环效率提高,但3D视图中显示可能会变得卡顿甚至会出现软件闪退的情况。鼠标点击滑块进行调节或鼠标中键滚轮进行调节。一般该功能用于项目特定调试需求。

文件管理栏

file2

  • 新建:在 runtime 下新建一个空的工程项目 xml 。

  • 加载:从本地路径中读取一个已有的工程项目 xml 。

  • 保存:将文件以原有名称和路径保存。

  • 另存为:另存为新的文件名称和路径。

  • 不加密:工程项目加密,可自行管理已有的 xml 。

  • 显示开:当关闭则 2D 和 3D 视图中不会显示任何东西,再打开后,重新触发则恢复正常。关闭全局显示会提高 RVS 运行效率,适用于测试项目最优运行效率。默认:显示开。

  • 制作点云模板:打开制作点云模板工具。

  • 图像标注工具:打开图像标注工具。

2D&3D视图

2D视图

下图是 2D 视图部分,用于图像、深度图等可视化。在下方栏目有不同的功能按钮:

2d

  • m_TileSubWindows平铺窗口:将图像窗口平铺于 2D 视图中。

  • m_CascadeSubWindows层叠窗口:若有多个图像窗口则将图像窗口层叠于 2D 视图中。

  • 像素位置:当鼠标移动至图像的某个位置时,如下图红色标注显示当前像素的位置信息。

  • 像素rgb:当鼠标移动至图像的某个位置时,如下图黄色标注显示当前像素的 rgb 信息。

当 2D 视图中有图像时,鼠标右击图像中任意位置会弹出一个视图菜单栏。

2d1

  • 放大:对图像进行放大。可以使用快捷键 + 或鼠标中键上滑

  • 缩小:对图像进行缩小。可以使用快捷键 - 或鼠标中键下滑

  • 缩放重置:对放大或缩小的图像重置成适合当前窗口的比例。

  • 原版尺寸:将图像变为和自身图像分辨率相同的大小。

3D视图

下图是 3D 视图部分,用于点云、pose 等可视化。在左侧有不同的功能按钮:

3Dview

  • m_visOn 显示全部:自动调整视角,用户可以看到所有 3D 视图。

  • tree3D 对象列表:控制 3D 对象可视化。

  • m_parallel_projection_off1 平行投影:将当前视角拉远或者拉近。

  • image-20230428100252109设置焦点:点击后在 3D 视图中的点云中选取一个点作为旋转中心。

  • m_screenshot 截图:在 runtime 下保存一个标清截图。

  • m_PositiveX 视图方向设置:设置以 +x 为主视角。

  • m_NegativeX 视图方向设置:设置以 -x 为主视角。

  • m_PositiveY 视图方向设置:设置以 +y 为主视角。

  • m_NegativeY 视图方向设置:设置以 -y 为主视角。

  • m_PositiveZ 视图方向设置:设置以 +z 为主视角。

  • m_NegativeZ 视图方向设置:设置以 -z 为主视角。

鼠标右击 3D 视图中的空白位置会弹出一个菜单栏:

3DViewlight

  • 相机视图:在当前视角按下 D 键,可以保存相机视图(至多5个),通过 L 键加载或者手动点击加载。

  • 改变背景:改变 3D 视图背景的纹理和颜色。

视图操作

在 3D 视图区域中,将鼠标移动到某个3D视图位置上,鼠标按住中键并拖动即可平移 3D 视图,滚动中键缩小/放大 3D 视图,按住左键移动可旋转 3D 视图。

同时可以点击 3D 视图左侧‘视图方向设为 +X 等图标以切换点云查看视角。

有关3D视图查看的快捷键如下图。

  • 显示全部:指将所有显示对象按照合适的缩放比例进行全部显示,以保持合适的占屏比。

  • 聚焦于:指切换观察视角的中心以及切换 3D 视图旋转操作的旋转中心。

  • 相机视图:指当前的点云观察角度。

Shortcubekeys

面板

将输出数据可视化,即属性面板中小眼睛图标:m_m_visOfficon_visOn 。可以在 3D 视图中看到对应算子的可视化结果,如点云、点云列表、立方体、立方体列表等。此时鼠标左键双击 3D 视图中的可视化结果,就会弹出对应的面板。下图分别以 Poselist 、 Cubelist 、Cloudlist 为例。

Cubelist:

image-20240807142336935

  • 可见性:

    • 勾选:显示当前的 Cubelist 。

    • 取消勾选:关闭可视化。

  • 数量:当前 Cubelist 的数量。

  • Cube 列表:点击后显示 Cubelist 的所有 Cube 的信息,鼠标左键单击行明细时,对应的 Cube 也会高亮显示。

    image-20240807142438910

Poselist:

image-20240807143843978

  • 可见性:

    • 勾选:显示当前的 Poselist 。

    • 取消勾选:关闭可视化。

  • 坐标比例:在输入框输入需要的比例后回车或者通过上下键可以调整 Poselist 的显示大小。

  • 坐标列表:显示全部的 pose 信息,单击行明细时,对应的 pose 也会放大显示。

  • 显示路径:会根据索引的顺序进行连线,在输入框输入需要的比例后回车或者通过上下键可以调整线宽。

image-20240807143948471

Cloudlist:

image-20240807144727639

  • 可见性:

    • 勾选:显示当前的 Cloudlist 。

    • 取消勾选:关闭可视化。

  • 数量:显示当前点云列表的数量。

  • 点云列表:点击后显示 CloudList 的所有点云信息,鼠标左键单击行明细时,对应的点云也会高亮显示。

移动旋转立方体

鼠标双击 3D 视图区域中需要移动的 cube ,会弹出编辑面板窗口如下图 1 所示,勾选其中的 移动坐标 进入可编辑模式,此时立方体中出现了可供移动的操作轴,如下图 2 所示。可以调整下图 1 中的 Ref 比例 属性将操作轴的显示长度变长(单位:米),如下图 3 所示。

Cubepanel

图1

image-20240807150415568

图2

image-20240807150448960

图3

此时可以通过拖动上图中的操作轴来移动或旋转 cube,如果希望保留所调整的结果,则需要鼠标单击上图 1 下方中的m_tick_icon,如果希望弃置本次移动操作,可以单击m_cancel_icon

cubepanel_3

一键保存点云

鼠标双击 3D 视图中点云,弹出 POINTCLOUD 面板,鼠标单击import按钮,即可保存当前视图中的点云。

image-20240807151934226

根据 3d 数据找到对应node

在 3D 视图区,如需通过某个显示对象来找到对应的算子,可在该显示对象处鼠标右键单击,选择回溯算子,此时在算子图中会自动聚焦于输出该显示对象的算子。

back

算子图

在 RVS 的主界面中,算子图是最为重要的一个模块,在这里用户将会完成整个业务的流程编辑,并实现特定的功能。如下图。

image-20240807152711081

在左侧有不同的功能按钮。

  • m_visOn 显示全部:自动调整视角,使用户可以看到全部算子和 Group 。

  • m_group(1) Group 选定算子:将选中的算子生成一个 Group 。

  • m_ungroup UnGroup 选定算子:将选中的 Group 拆散。

  • m_focus 聚焦选定算子:聚焦显示选中的算子和 Group 。

  • m_enable_edge 启用全部 edge :在 xml 中有禁用连线时,点击该按钮,可以全部启用连线。

  • m_refresh 刷新 Graph :刷新算子图。刷新所有已经是绿色( finish 状态)的算子成为灰色空闲( idle 状态)。

  • arrow 单选模式:点击后切换为框选模式,通过安装鼠标左键框选出多个算子进行后续操作。

从主体上来看将分为 Resource 和 Main 两个区域。

  • MainGroup :整个算子图区域就是一个 MainGroup 。这个 MainGroup 是唯一的,添加的所有 Group 、算子与连线,都是在 MainGroup 内部进行操作的。

  • ResourceGroup:MainGroup 内部包含了另一个特殊 Group ,即 ResourceGroup,该 Group 也是全局唯一的,而且其内部四个角落没有端口区域,该 Group 内部存放的都是资源类算子,内部算子之间无需连线,每个资源类算子都是一个独立的线程以用于底层的数据交互。资源类算子一旦创建,即便没有将资源类算子拖拽到 ResourceGroup 里面,也仍然从属于 ResourceGroup ,此时拖动 ResourceGroup 进行移动,可以发现没有拖拽到 ResourceGroup 内部的资源算子也会跟着移动。

说明:MainGroup 与 ResourceGroup 无法人为创建与删除,每次创建新的 xml ,都会自动创建一个MainGroup 与 ResourceGroup 。

在黑色空白处鼠标右键,会得到一个菜单栏,如下图。

grapr

  • m_refresh 刷新 Graph :刷新算子图。

  • m_enable_edge 启用全部 edge :在 xml 中有禁用连线时,点击该按钮,可以全部启用连线。

  • m_layout1 自动布局这个 Group :将会对整个 MainGroup 进行自动排版。

  • tablePython 生成器面板:点击后打开 Python 生成器面板,通过该面板设置 Python 算子的输入输出端口,生成 JSON 文件用于后续操作。

  • m_import 在此处导入 Group XML :选择本地路径中已保存的 group.xml 就可以导入。

  • m_Add 在这里创建新 Group :新建一个空白的 Group 。

  • m_paste粘贴在这里:将复制的算子或者 Group 粘贴在这里。

说明:根据需求输入一种输入数据信号即可。

在黑色空白处拖入算子,鼠标右击算子,显示算子菜单栏如下图。

nodeq

  • m_rename 重新命名算子:对该算子进行重命名。

  • m_Delete 删除算子:删除该算子。

  • m_duplicate 复制算子:根据当前算子在此处复制一个新的算子 。

  • m_copy 复制:复制该算子到粘贴板。

  • m_cut 剪切:剪切该算子到粘贴板。

  • m_runOnce 单次运行:单独运行该算子一次,并且不会触发其后其它算子运行。

同样的,在一个 Group 中空白处鼠标右键,得到一个完全不同的菜单栏,如下图。

groupright

  • m_table Group 参数面板:会弹出一个 Group 参数面板,内容包含了在该 Group 中所有暴露过参数的总览。

  • m_rename 重命命名算子:对该 Group 进行重命名。

  • m_Delete 删除算子:删除该 Group 。

  • m_export 导出这个 Group XML :将该 Group 打包成为 group.xml ,先命名这个 group xml 后选择本地路径进行保存。

  • m_layout1 自动布局这个 Group XML :将会对该 Group 进行自动排版。

  • m_import 在此处导入 Group XML :选择本地路径中已保存的 group.xml 导入到算子图中。

  • m_Add 在这里创建新 Group :新建一个空白的 Group 。

  • m_duplicate 复制算子:根据当前 Group 在此处复制一个新的 Group 。

  • m_copy 复制:复制该 Group 到粘贴板。

  • m_cut 剪切:剪切该 Group 到粘贴板。

  • m_paste 粘贴在这里:将粘贴板中的内容粘贴在此处。

    注意:算子图并不是一直在循环刷新显示的,当我们部分算子参数发生改变时,可能算子的外观并没有及时生效更改,这时候需要我们点击一下算子图的工具栏中的刷新 Graph ![m_refresh](images/m_refresh.png)按钮刷新显示。

属性面板

点击某个算子或者 Group 都可以在属性面板中找到对应属性参数,每个算子或者 Group 都会拥有算子名称和算子类型,这里的算子名称可以鼠标双击选中重新命名算子,修改完后需要进行回车。此外,我们在二次开发过程中也可以将所撰写的算子一部分参数暴露在此处进行方便的调参。

propertypanel

算子树状图

点击标签页就可以在此处切换到算子树状图面板,算子树状图面板分为算子数状图和工作流图。如下图所示。

nodetree1

算子数状图:点击左侧的折叠按钮可以将这里的 group 展开、折叠。主体上分为名称、类型、层次、类别。

  • 名称:包含 Group 名称、算子名称、属性名称。勾选属性名称即为打开该属性的可视化或曝光。

  • 类型:包含 Group 、Node、属性类型。

  • 层次:表示 group 所封装的层级。

  • 类别:表示所属的类别。

  • 工作流图:分为工作流图和耗时列表。点击下拉框可进行切换。

    • 工作流图:显示项目工程的运行流程。绿色表示算子,深绿色表示Group。双击即可定位指定的算子。点击后退可回退到上一层级。

    • 耗时列表:包含算子层次和耗时。单击两个表头,可分别进行排序。

nodetree3

算子图、算子树与工作流图联动。点击工作流图中某一个节点,在算子图和算子树中以高亮的形式显示,如下图。

nodetree4

在查找的搜索框中输入名称并回车,可以在整个项目中检索相关的算子,通过点击查找一侧的上下键进行切换。

过滤支持进行多重筛选,根据需求进行勾选即可。

nodetree5

算子列表

点击下方的标签页可以在此处切换到算子列表面板。下部的可用算子中显示了不同类型的算子,点击左侧的小三角可以进行展开、折叠。在使用时,我们需要先在查找算子的栏目中输入你想要的算子,或在下拉框中找到相关的词条。或者使用算子库进行筛选算子库。

在使用时,需要鼠标左键点击这个词条,不松开左键,拖动到算子图当中,就可以在主流程中加入需要使用的算子。(详细描述将会在算子使用指南中提到)

nodebrowser1

交互面板

输入输出工具介绍

参数曝光后(3.2.8章节中的内容),您可以按以下步骤在交互面板添加组件来对该参数进行快速修改。

在交互面板空白处鼠标右击将出现一个菜单,选择解锁后交互面板中出现左侧添加的控件。您可以拖动出现的控件来调整布局。

dashboard

  • 解锁:交互面板中出现左侧添加的控件。如下图交互面板中所示。

  • 保存:将交互面板保存为 *.dashboard.xml 。

  • 另存为:将交互面板另保存为 *.dashboard.xml 。

  • 加载:加载已有的 dashboard 文件。

dashboard2

如上图所示,交互面板左侧控件分为输出工具和输入工具。

  • 输入工具:与输入的属性绑定。需点亮算子参数中 light 图标。

    • 标签:用于标注其他控件功能,不绑定任何功能。

    • 按钮:绑定算子中 bool 值属性。如 Trigger 算子的 触发器 、激活、循环属性。当绑定多个属性时,将值取反。

    • 复选框:绑定算子中 bool 值属性。如 Trigger 算子的 Trigger 、active、loop属性。当绑定多个属性时,将值同步。

    • 整数设定框:绑定算子中 int 数值类型属性。 如 Trigger 算子的计数器属性。

    • 浮点数设定框:绑定算子中 float 数值类型属性。如 Emit 算子中的坐标属性。

    • 文字编辑框:绑定算子中 string 类型属性。如 Load 算子中文件、目录属性。

    • 组合框:绑定算子中 enum 类型属性。如 Load 算子中类型属性。

    • 调节盘:绑定算子中 int 数值类型属性。如 Trigger 算子的计数器属性。

    • 坐标输入:绑定算子中 pose 属性。如 Emit 算子中坐标属性。

    • 垂直滑块:绑定算子中 int 数值类型属性。 如 Trigger 算子的计数器属性。

    • 水平滑块:绑定算子中 int 数值类型属性。 如 Trigger 算子的计数器属性。

    • 字符串单选按钮:绑定算子中 string 类型属性。 如 Emit-string 算子中字符串属性。

    • 枚举单选按钮:绑定算子中 enum 类型属性。如 Load 算子中类型属性。

  • 输出工具:与输出的结果绑定。需打开算子参数 icon_visOn 图标。

    • 布尔灯:绑定算子中 string 类型属性。字符 1 :true 显示绿色,其余为红色。

    • 数码管:绑定算子中 string 类型属性。如 Counter 算子中计数器字符串属性。

    • 2D图:绑定算子中 image 类型属性。如 Load 算子中图像属性。

    • 坐标输出:绑定算子属性中 pose 属性。如 Load 算子中坐标属性。

    • 表格:绑定算子属性中 pose、cube、string 列表类型属性。如 Load 算子中坐标列表属性。

    • 文本框:绑定算子中 string 类型属性。如 Emit 算子中字符串属性。

添加/修改/删除工具

  • 添加:鼠标单击工具或者鼠标点击工具拖动至需要的位置释放

  • 修改

    • 修改工具大小:将鼠标移动到工具边框上,鼠标样式发生改变,拖动鼠标调整工具大小

    • 修改工具位置:按住鼠标左键移动来改变工具的位置。

    • 修改工具的内容:鼠标左键双击,出现光标修改。只有部分工具可以修改,如标签、按钮等。

  • 删除:选中工具鼠标右键后出现菜单菜单删除或者键盘delete键删除。

dashboard3

鼠标右击空白处,显示菜单栏。

dashboard4

  • 锁定:新控件的添加完成。

  • 保存:将当前交互面板中的工具保存,保存格式为 *.dashboard.xml 。

  • 另存为:将当前交互面板中的所有控件另存为。

  • 加载:加载保存的 *.dashboard.xml ,加载时需要删除将当前已添加的控件。

  • 删除所选控件:删除选中的控件。

  • 清除所有控件:删除交互面板中所有已添加的控件。

绑定工具

在添加控件后,鼠标中键单击控件,弹出该控件的参数面板如下图所示。此时面板上方的曝光参数为您所有曝光的算子属性,若为空,则说明没有曝光或者曝光的属性与对应的控件不相符。双击所需要的曝光参数,下方的控件参数会更新。点击 确定即可完成控件与参数绑定。

注意:同一个控件可以绑定多个曝光参数,所有已经绑定的曝光参数都会在参数面板下方的控件参数区域显示出来,如果需要解绑其中某个参数,鼠标双击即可。

dashboard6

当鼠标右击控件,选择回溯算子,可以找到与之绑定的算子。

backtrack

可以根据自己的需求在交互面板中调整工具的排布,如下图所示。

dashboard1

日志视图

日志视图的主要作用是用来记录在 RVS 中用户操作的审计日志,也可以满足监管功能的要求,同时当问题出现的时候可以快速定位问题的根源,追踪程序执行的过程和数据的变化。

log

整个日志部分分为四个栏目,分别为时间戳、通道、安全级别和消息。时间戳表示该条 Log 生成的时间,通道表示 Log 的消息来源,安全级别代表了我们设定的这类 Log 的安全类型,消息主要是本条 Log 的主题内容是什么。

在日志视图中是存在不同颜色进行提示的:

  • fatal:致命。背景显示红色。

  • error:错误。背景显示红色。

  • warning:警告。背景显示黄色。

  • info:信息。默认背景颜色。如果输出的字符串内容以“[H] ”开头,会变更为蓝色高亮。

  • debug:调试。默认背景颜色。

  • trace:跟踪。默认背景颜色。

配置日志通道显示:

点击 配置日志通道显示 按钮,会弹出如上所示的窗口,在左侧启用一栏可以选择各个通道的开关与否,右侧的安全级别中选择安全级别,从轻到严重分别为 trace 、debug 、info 、warning 、error 、fatal ,当选择某一个模式后,就意味着当前通道只会在日志视图中显示当前安全级别的信息和更严重的安全级别信息,而不会显示比这个轻的安全级别信息。在最下方可以一键为所有通道选择是否显示 Log 和设定安全级别。

loglevel

搜索日志条目:

可根据通道、安全级别、消息中的内容搜索,若有相关内容,Log 显示框会刷新显示出包含搜索内容的 Log 信息。同时在右侧可以点击清空将所有 Log 全部清空。

searchlog

最大条目数:

默认条目数:200。无最大限制。

maxlog