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

embedded/2024/11/9 4:29:17/

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.ppmy.cn/embedded/136080.html

相关文章

2. 多线程带来的风险—线程安全

一、线程安全问题 1. 观察线程不安全 class Demo{// 此处定义⼀个 int 类型的变量private static int count 0;public static void main(String[] args) throws InterruptedException {Thread t1 new Thread(() -> {// 对 count 变量进⾏⾃增 5w 次 for (int i 0; i &l…

区间数位和

额 这题居然还卡了一会儿 一个是要用另一个变量暂存循环变量i 另一个是while里面不能写(num%10>0) 得写num>0 因为会遇到那种10的倍数… #include <bits/stdc.h> using namespace std;/* 完成下面的函数 */ int getRangeDigitSum(int a, int b) {int sum 0;…

PaddleOCR安装教程

安装网址建议&#xff1a;PaddleOCR: 基于飞桨的OCR工具库&#xff0c;包含总模型仅8.6M的超轻量级中文OCR&#xff0c;单模型支持中英文数字组合识别、竖排文本识别、长文本识别。同时支持多种文本检测、文本识别的训练算法。 (gitee.com) 1、选择版本 2、进入教程 3、安装Pa…

2024年11月4日Github流行趋势

项目名称&#xff1a;DS4SD / docling 项目维护者&#xff1a;dolfim-ibm, github-actions, vagenas, cau-git, PeterStaar-IBM 项目介绍&#xff1a;让您的文档准备好迎接生成式AI。 项目star数&#xff1a;3,906 项目fork数&#xff1a;221 项目名称&#xff1a;abi / scree…

CSS中的变量应用——:root,Sass变量,JavaScript中使用Sass变量

:root—— 原生CSS 自定义属性&#xff08;变量&#xff09; 在 SCSS 文件中定义 CSS 自定义属性。然后通过 JavaScript 读取这些属性。 // variables.scss :root { --login-bg-color: #293146;--left-menu-max-width: 200px;--left-menu-min-width: 64px;--left-menu-bg-…

机器学习1_机器学习定义——MOOC

一、机器学习定义 定义一 1959年Arthur Samuel提出机器学习的定义&#xff1a; Machine Learning is Fields of study that gives computers the ability to learn without being explicitly programmed. 译文&#xff1a;机器学习是这样的领域&#xff0c;它赋予计算机学习的…

C++ 实现俄罗斯方块游戏

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

厘清红黑层

落红不是无情物 接前面红黑树转2-3-4树——雨后春笋《算法技术手册》排序——万亿数量级 流量第一的图反向构造定制代码打印输出红一层黑一层 真实面目加一减一插入 化作春泥更护花实验计数代码测试代码 少于一半黑一层红一层打印看看 后话 接前面 红黑树的插入——层层历历在…