当前位置: 首页 > article >正文

[云讷科技]DASA数字孪生机器人概念

DASA数字孪生机器人概念

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

在这里插入图片描述

软件构成

在这里插入图片描述

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

  • 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工作区软件,参考
启动过程章节,并设置好在局域网内同步的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'
  1. 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;

在这里插入图片描述

关于我们

云讷科技(深圳)有限公司是一家机器人科技教育公司,我们提供下述产品和服务:

  • 提供基于无人系统技术的教育产品和课程:包括无人机,无人车,无人飞车和人工智能教育;
  • 提供部分行业核心解决方案,如无人机飞行控制器,无人驾驶软件方案等。

我们的主页是 https://cloudkernel.cn


http://www.kler.cn/a/382324.html

相关文章:

  • TCP:确认机制、重传以及选择性确认(SACK)
  • Linux篇(常见入门命令)
  • AMD显卡低负载看视频掉驱动(chrome edge浏览器) 高负载玩游戏却稳定 解决方法——关闭MPO
  • 【C++】踏上C++学习之旅(五):auto、范围for以及nullptr的精彩时刻(C++11)
  • SQL常见语法
  • 在docker里创建 bridge 网络联通不同容器
  • 【5.8】指针算法-双指针验证回文串
  • 小语言模型介绍与LLM的比较
  • 【d63】【Java】【力扣】141.训练计划III
  • MFC,DLL界面库设计注意
  • 基于uniapp和java的电动车智能充电系统软件平台的设计
  • html checkbox和label 文字不对齐解决办法
  • 某华迪加现场大屏互动系统mobile.do.php任意文件上传
  • windows安装mysql
  • Android 依赖统一配置管理(Version Catalogs)
  • 学习党的二十大精神,推动科技创新和发展
  • Spring中的资源Resource 以及分类(多种资源的实现类)
  • Follow软件的使用入门教程
  • PostgreSQL 字段按逗号分隔成多条数据的技巧与实践 ️
  • ClickHouse创建账号和连接测试
  • 【LeetCode】【算法】338. 比特位计数
  • TS-AWG控制电光调制器:推动科技应用新发展的利器
  • 一个.NET开源、轻量级的运行耗时统计库 - MethodTimer
  • Allegro: 开源的高级视频生成模型
  • 服务器的配置复杂,租用时该如何选择参数?
  • 数据库->索引