DASA数字孪生机器人概念

我们在 虚幻引擎 (UE) 的帮助下在 DASA 中建立了数字孪生机器人概念。 UE 是 Epic Games 开发的 3D 计算机图形游戏引擎,广泛应用于视频游戏、电影和电视。我们在 DASA 中利用强大的 UE 功能来实现外观逼真的数字机器人,并允许与现实中的对应机器人进行实时同步。

../_images/robot_view.png

软件构成

../_images/ue_robot_comp.png

数字孪生机器人概念由几个组件组成,如上图所示:

  • DASA 基础设施软件模块:DASA 软件提供机器人定位、通信和消息同步,如教程 Start Localization Process in Indoor DASA System 中所示。该软件位于 ~/DASA_space/catkinws_dasa。

  • UE 引擎:UE 4.27 引擎安装在 DASA 桌面中,该桌面随我们的解决方案一起提供,位于 /home/dasa/src/UnrealEngine-4.27-plus 下,我们为 DASA 机器人创建带有插件的定制项目。

  • Airsm ROS 包装器:Airsim ROS 包装器通过向 ROS 网络公开接口,实现与 UE 引擎中的数字机器人的交互。

设置步骤

  1. 机器人端

    我们需要在机器人机载电脑端安装和编译最新的catkinws_dasa工作区软件,参考:ref:tutorial_indoor_loco,并设置好在局域网内同步的topic信息, 以下是 1 架无人机和 2 辆无人车的共享话题:

    '/dasa/local_position/pose',
    /uav1/dasa/local_position/pose', '/uav1/dasa/local_position/velocity',
    '/rover2/dasa/local_position/pose', '/rover2/dasa/local_position/velocity',
    '/rover3/dasa/local_position/pose', '/rover3/dasa/local_position/velocity'
    
  2. DASA 计算机配置

    • 我们必须以与机器人端相同的方式安装和构建 catkinws_dasa 工作区。

    • 我们需要配置位于文件 ~/Documents/Airsim/settings.json 中的 Airsim 插件。默认情况下,用户不需要更改该文件。请记住在进行任何修改之前备份它。

如何启动

  1. 机器人端

我们需要打开 DASA_SWARM 路由器,然后启动每个机器人。默认情况下,每个机器人将启动与 catkinws_dasa 工作区对应的节点并连接到 DASA_SWARM 网络。用户也可以参考教程 Start Localization Process in Indoor DASA System 了解详细信息。

  1. DASA 计算机配置

    • 通过ping指令查看各机器人是否连接到本地局域网,例如:

    ping uav1
    ping rover2
    ping rover3
    
    # or ping their corresponding ip address directly
    ping 192.168.0.101
    ping 192.168.0.102
    ping 192.168.0.103
    

    如果ping有返回值,证明各机器人端已经联网,否则需要查看和排查网络连接情况。

    • 启动~/DASA_space/catkinws_dasa/scripts目录下的run_gcs_visualization.sh脚本,之后通过rostopic 指令,我们可以看到所有机器人发布的位姿话题。

    • 启动UE引擎,并运行城市沙盘项目,点击play按钮。

    • 启动Airsim的ROS wrapper,之后可以尝试手动移动机器人查看UE引擎显示,正常情况下虚拟世界的机器人位姿和实际的是同步的

    ~/src/cloudkernel_proj/Airsim/ros
    source devel/setup.bash;
    roslaunch airsim_ros_pkgs airsim_node.launch;
    
../_images/ros_demo.jpg