搜索 Unity

隆重介绍:Unity Robotics Visualizations软件包

2021年10月4日 类别 Engine & platform | 16 分 阅读
robot arm
robot arm
分享

Is this article helpful for you?

Thank you for your feedback!

Unity Robotics Visualizations工具包支持可视化和调试机器人模拟内的状态,能让Unity成为一个多合一的ROS(Robot Operating System,机器人操作系统)模拟和可视化工具。

在开发机器人时,开发者最常面临的挑战之一便是如何查看运行中的系统。在一个如蛛网般复杂的系统中,如果有某个组件无法正常工作,找到那个出问题的部分将会是一件让人头疼的事。究竟是组件A生成了坏数据,还是组件B处理时出了错?这时,将系统中流动的数据可视化地表现出来对问题的解决非常关键。

针对这个问题,我们在今天高兴地宣布Unity Robotics的新功能上线:Robotics Visualizations Package是一个用于显示和定制ROS信息可视化的软件包。

在Unity Robotics团队的辛勤工作下,Unity目前已经发布了包括Pick-and-Place、Object Pose Estimation在内的数个机器人示例项目。最新发布的Nav2-SLAM示例项目展示了Unity如何模拟一个自主机器人在未知空间中的导航和地图绘制。

Robotics Visualizations Package正是以这些项目为基础建立的,它支持以多种可视化图像来展示常见的ROS信息,如形状、姿态、点云、图像、各类传感器等等。包原生支持ROS变换树(transform tree),并允许在运行时启用、禁用、定制任意主题的ROS可视化图像。

以机械臂的幻影来呈现运行轨迹信息。

使用流程

用Robotics Visualizations Package可视化机器人项目的流程非常简单:

  1. 通过Package Manager导入Robotics Visualizations Package至Unity。
  2. 将DefaultVisualizationSuite预制件拖入Unity场景。
  3. 点击Play后,屏幕上的抬头显示(HUD)将出现一些新按钮。点击Topics按钮将罗列出ROS已读取的所有信息主题,
  4. 点击任意主题即可看到数据的可视化。
 The Topics menu operates similarly to rviz: clicking the radio button turns on visualization in the Unity Scene.
Topics菜单的操作与rviz类似:点击单选按钮即在Unity场景中启用可视化图像。该功能还可以控制数据的叠加显示,包括变换、地图、激光雷达点云、预定路径等等。它也能可视化显示摄像机图像等数据;右侧便是由Turtlebot摄像机拍摄的Unity场景。

自行挑选机器人应用调试的可视化信息类型

变换(Transform)

Transform代表了机器人系统在坐标系中的相互关系。模拟中的所有数据都是在不同的坐标系下生成的,激光雷达有激光雷达的坐标系,摄像机有摄像机的坐标系,地图有地图的坐标系。为了整合所有这些源头不同的数据,我们需要有一个共同的参考系,而Transform可以统合所有坐标系。脱离于3D坐标的传感器和算法几乎无法进行调试。Robotics Visualizations Package支持在Unity场景和资源运行时实时显示数据,并能在模拟和真实数据之间无缝切换。

robot in factory
在这里,机器人的Transform已经可视化地显示了出来,用户可随时显示额外数据或进行调试。

机器人绘图

机器人绘图也是一项棘手的任务,地图很可能会出现断裂,让机器人偏离原路径。测距仪是否经过了详尽的调试?还是说优化后SLAM算法在崩溃后把地图切成了两半?Unity Robotics Visualizations Package支持同时显示占用栅格、Transform、定位和激光雷达点云,让用户能够直观地看到算法出错的位置。

上方展示了某机器人为陌生环境绘制地图的过程。可以看到,在机器人运行SLAM算法时,占用栅格会被逐渐填补。这些占用栅格就像环境的灰度图像,每个像素(或格子)代表该区域被障碍物占据的概率。

Robotics Visualizations Package支持常见的ROS信息类型,包括Transform、占用栅格、3D点云、标记、激光扫描、图片(jpeg、png及未压缩格式)等,也支持自定义的数据类型。

Here, robot transform visualizations have been activated, allowing you to overlay data and debug in real time.
激光雷达数据与变换数据在Unity场景中可视化后用于调试;模拟数据和真实数据可无缝切换。

自定义功能

Robotics Visualizations Package同样支持创建自定义的可视化图像,软件的强大工具可绘制出任何内容,也支持定制自带的可视化图像。包的主要功能如下:

Drawing3d类可用于在3D空间中绘制任意纹理/颜色的线条、形状、网格和标签,它可用来在预测位置上绘制某物体的幻影、物体的运动轨迹,或在轨迹附近用线段来表示误差。

PointCloudDrawing是一个由GPU优化的点云渲染器,它可以迅速渲染多达一千万个呈现为Billboard(公告牌)的点,并且每个点都能有自己的尺寸和颜色。该渲染器可用来展示3D扫描或深度图像等体积化数据。

HistoryDrawingVisualizer模板可用于展示历史数据走势、3D运动轨迹等,其会记录某一主题下一定时期内的历史信息,记录时长可以调整。这些历史信息可用于分析和展示。

当然,所有这些功能的背后都是强大且易用的Unity引擎。Unity支持AR和VR、Shader Graph着色器编写、计算着色器、云端模拟等等。

下一步

看到开发者们使用Robotics Visualizations Package做出了各色各样的成果,我们非常高兴!

如果你也想要上手Robotics Visualizations Package,请在我们新的Nav2-SLAM教程中了解软件包的使用。

Unity Robotics Visualizations Package enables you to visualize robot data alongside Unity environments combining real data and simulated data in one place.
Unity Robotics Visualizations Package能在Unity引擎中可视化真实采集或模拟的机器人数据。

除了Robotics Visualizations Package之外,我们还在不断开发的其它机器人软件包、打造机器人生态,努力让Unity成为机器人开发的新选择。请访问GitHub的Unity Robotics Hub来了解其它机器人项目。

并且,不要忘了前往Robotics Forum论坛,或在unity-robotics@unity3d.com向我们发送邮件,与Unity分享你的宝贵建议。

2021年10月4日 类别 Engine & platform | 16 分 阅读

Is this article helpful for you?

Thank you for your feedback!