【Pepper机器人开发与应用】二、Pepper机器人图形化开发:医疗服务机器人程序设计

‍‍🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主
📑上期文章:『【Pepper机器人开发与应用】一、教你如何使用图形化开发软件高效开发pepper机器人(Pepper SDK for LabVIEW)』
🍻本文由virobotics(仪酷智能)原创

🥳欢迎大家关注✌点赞👍收藏⭐留言📝订阅专栏

文章目录

  • 🧩前言
  • 一、传感器
    • 1.1 NAOqi SDK for NI LabVIEW
    • 1.2 更多传感器
  • 二、视觉控制
    • 2.1 摄像头图像采集范例
    • 2.2 人脸与情感识别
  • 三、语音控制
    • 3.1 播放音阶
    • 3.2 录音与回放
    • 3.3 机器人说话
    • 3.4 语音识别
  • 四、运动控制
    • 4.1 运动控制基础范例
    • 4.2 角度编辑
    • 4.3姿态控制
    • 4.4 手臂控制
  • 五、行为控制
  • 六、智慧医疗与养老工具包
    • 6.1 智能导诊
    • 6.2 病房助手
    • 6.3 心理疏导
    • 6.4 体征检测
    • 6.5 脑机接口
    • 6.6 影像分析
  • 工具包获取
  • 🎯总结

🧩前言

Hello,大家好,我是你们的virobotics(仪酷智能),一个深耕于LabVIEW和人工智能领域的开发工程师。

今天给大家介绍使用Pepper SDK for LabVIEW 实现Pepper机器人图形化开发以及再医疗服务机器人上的程序设计,我们在下载安装Pepper SDK for LabVIEW之后,可以分门别类的很看很多范例和内容,下面我将按模块为大家介绍各个内容并介绍机器人在医疗服务上的应用。

一、传感器

Pepper带有多种传感器,如触碰传感器、声纳传感器、激光传感器、红外传感器、保险杠传感器、陀螺仪传感器等。所有传感器均可通过LabVIEW软件进行数据的采集及控制,并结合LabVIEW中强大的信号处理函数对信号进行分析。

1.1 NAOqi SDK for NI LabVIEW

NAOqi SDK for NI LabVIEW,无缝支持Pepper机器人传感器应用程序开发,Pepper机器人集成了多种传感器,如:姿态陀螺仪、压力传感器、触碰传感器、超声波传感器、红外传感器、LED等。所有的传感器都有其相应的调用函数。用户使用LabVIEW即可轻松地获取这些数据,并借助强大的LabVIEW信号处理模块对各种类型的传感器数据进行分析,由于获取传感器数据需要输入指令,而机器人的传感器数量达100个,因此对于用户来说记住指令是非常麻烦的事。因此,工具包中同样利用了Express VI技术,用户可轻松获取所希望得到的传感器数据,配置完用户所需要的传感器后,软件会自动生成Express VI以及while循环,该VI可在while循环中反复调用。

图3Get Angle to 3D.vi的程序框图
程序由三部分的函数构成:利用Memory采集姿态数据、利用Motion采集关节角度数据。最后将所有数据捆绑在一起,输入至3D Express的Move Object.vi中,同步三维机器人模型的运动。

1.2 更多传感器

范例:Sensor.vi

路径:Sensor\Sensor.vi

作用:最基本的获取传感器数据的范例。用户只要根据说明书上的指令,即可获取自己所需要的机器人传感器上的数据。

除了上述的传感器外,其他传感器也可用MemoryProxy_getData.vi或MemoryProxy_getListData.vi读取。具体命令请参考Pepper机器人官方说明书。

亦可借助传感器的Express VI:PepperSensor,即可快速选择传感器型号进行数据采集,并自动生成代码。如图3.5所示。


图3.5 PepperSensor的软件面板,可选择任意一个或多个传感器进行采集

生成后的代码如图3.6所示


图3.6 PepperSensor生成的代码

二、视觉控制

Pepper机器人共有2个2D摄像头,1个3D摄像头,同时也提供了丰富的图像处理工具包,用户可以使用现成的工具包进行人脸识别、图像识别、红球识别、录像等,同时也可以将Pepper机器人摄像头所获视频数据实时传输到上位机,利用LabVIEW Vision模块进行更高级的视觉分析,像素最高可达1280*960。

此外,LabVIEW中也提供了丰富的视觉控制VI,如图4.2所示:


图4.2 函数选板中的视觉函数

用户可以利用这些VI去控制摄像头的图像采集、人脸识别、录像、红球识别,已经结合LabVIEW图像处理工具包实现更高级的图像处理。

2.1 摄像头图像采集范例

路径:Vision\Video Device.vi

作用:利用VideoDevice系列VI,将机器人摄像头的数据实时传至PC端口,并利用LabVIEW的图片控件显示获取的图像以及图像的数据。(包括颜色深度,长和宽,每个像素点的值等)。其程序框图如图4.3所示:


图4.3 VideDevice.vi的程序框图

图中视频采集前首先要运行VideoDeviceProxy_subscribe.vi。它有如下输入参数:

Resolution:图像的分辨率。0为160\*120,1为320\*240,2为640\*480,3为1280\*960。ColorSpace:图像数据格式。目前LabVIEW仅支持RGB格式,值为11。Fps:采样速率,单位为帧/秒。

2.2 人脸与情感识别

基于Pepper自带的人脸识别引擎,或者第三方互联网API,实现面部特征识别功能。

使用LabVIEW即可快速调用该系列引擎。

peopleperception.vi是一个典型的视频采集——人脸定位——人脸情感特征识别的范例。用户需注意的是使用该范例前需首先将naocamera.vi烧录进机器人中运行。图4.4和4.5是程序范例的界面:

图4.4 范例中可检测到笑脸,并显示微笑指数和心情指数

相关的程序代码如图4.5所示:

图4.5 peoplepercption中的程序片段,使用多态VI:getData(包含AgeProperties、SmileProperties等函数,即可获取用户需要的人脸信息)

三、语音控制

Pepper机器人有不少于四个麦克风和一个语音合成器。同时也提供了丰富的声音及语音函数。

用户可以利用这些VI控制机器人的语音设备进行声音播放、录音、生源定位、声音识别、语音识别、说话。目前支持中英文等六种语言。

3.1 播放音阶


图5.2 音阶播放.vi前面板输入IP、

路径:Audio\ Play music.vi

作用:利用Pepper机器人内部的正弦波 播放器播放七个音阶。音阶的频率由LabVIEW计算所得。所用的函数为AudioPlayerProxy_playSine.vi。如图6.2所示:


图5.3音阶播放.vi程序框图

3.2 录音与回放

路径:Audio\Record.vi

作用:利用Pepper的录音功能将外部的声音录至机器人的硬盘中,然后进行回放。如图5.3所示:


图5.3 Record.vi

该程序中,先利用AudioRecorder函数将麦克风获取的声音录制进Pepper的硬盘中,路径为:/home/nao/test.wav。录音的长度为5秒。然后利用AudioPlayer函数播放该声音。

3.3 机器人说话

路径:Audio\Speak.vi

作用:利用Pepper的语音合成功能控制Pepper机器人说话。目前所支持英文、中文等六种语音,同时也可以控制Pepper的语音语调。

利用该范例可以设置机器人的语音语调、声音响度、回音等参数。

  • TextToSpeechProxy_setVoice.vi:设置语音语调,输入端必须为内存中的语音语调名称。

  • TextToSpeechProxy_setLanguage.vi:设置机器人说话语言。

  • TextToSpeechProxy_setParameter.vi:设置更多参数,如:doubleVoice(声道设置,1或者2,doubleVoiceTimeShift(两个声道时间漂移),doubleVoiceLevel()等。

程序框图如图5.5所示:


图5.4 speak.vi前面板


图5.5 Speak.vi的程序框图

3.4 语音识别

路径:Audio\ SpeechRecognition.vi

作用:控制Pepper进行语音识别。首先输入一些机器人需要听懂的词汇库。当机器人听到该词汇时,界面上即可显示它所听到的词汇以及相似度。

该程序的程序框图如图5.6所示:


图5.6 SpeechRecognition.vi

进行声音识别时,首先设置好语言(例如English),输入词汇表(字符串数组),然后开始采集声音。采集声音的时候,将用到Memory中的GetData,输入的命令为WordRecognized。

声音识别的结果将显示在前面板的Words heard控件上。每一个词汇均有其相似度(如果机器人听到的词汇与词汇表的某个词汇差别很大,相似度小于特定值,将不会显示在控件上)。一般相似度大于0.4即可认为机器人听懂了特定的词汇。如图5.7所示:

图5.7 听到的词汇及其相似度,本例中听到的单词为Hello,匹配度为0.5373

四、运动控制

包括各关节角度控制、各部件位置和变形控制、行走控制、避障控制等。用户也可以利用SDK提供的丰富的接口设计出更多富有新意的动作,为了方便用户设计复杂动作(比如一个舞蹈),软件中利用了Express VI技术特设了一个运动控制插件: MotionEditor。MotionEditor结合了仪酷自研的LabVIEW三维仿真软件所导出的机器人Pepper模型,用户可通过该插件轻松实现复杂运动的编辑、实时同步、仿真,可采取多种运动拟合方式(如Bezier、三次样条等)生成曲线,并将编辑的动作序列自动生成LabVIEW代码。

运动控制是机器人中最重要的一套函数。其中包括:

  1. 关节控制(Joint)

  2. 刚度控制(Stiffness)

  3. 位置控制(Cartesian)

  4. 移动控制(Locomotion)

  5. 跌倒控制(Fall Manager)

  6. 碰撞避免(Self-collision avoid)

  7. 全身控制(Whole body control)

关于每一个VI的使用方式,请参考help文档。本文将对一些范例做详细说明。

4.1 运动控制基础范例

文件路径:范例查找器\Pepperexample\Motion\Motion Control.vi。

作用:运动控制综合范例,能实现多种功能。

使用方式:打开该VI,输入机器人的IP地址,点击“运行”即可。

整个VI采用While循环+事件结构。当有按钮按下时,会触发事件执行相应动作。程序框图如图6.1所示。


图6.1 Motion Control.vi的程序框图

该范例分五个选项卡。

选项卡1:关节刚度控制(Stiffness)。用户可使用该系列接口获取每一个关节当前的刚度,也可以分别或同时设置每一个关节的刚度(固定还是松开)、持续多少时间等。如图6.2所示:


图6.2 关节刚度控制

选项卡2:角度控制(Angle)。用户可以使用该系列接口获取每一个关节的当前角度,也可以控制每一个关节转动至什么角度、速度是多少。如图6.3所示:


图6.3 关节角度控制

选项卡3:移动(Movement)。用户可以使用该系列接口控制机器人以恒定的速度和角速度行走和停止,同时也可以指定机器人移动到一个或多个位置。行走的姿势也可以由用户决定。如图6.4所示


图6.4移动控制

选项卡4:位置控制(Position)。用户可以使用该系列接口控制机器人头部、手部、身体、腿部等各个部位的具体位置。可以在三中参照系中任选其一进行控制。同时也能够获取机器人的部位目前处于哪个位置。如图6.5所示:


图6.5 位置控制

选项卡5:变形(Transform)。用户可以获取机器人每一个部位的变形矩阵,同时也可以输入该矩阵对机器人每一个部位的位置进行控制。如图6.6所示:

图6.6 变形控制

4.2 角度编辑

文件路径:Motion\Angle Interpolation.vi

作用:获取已经编辑好的一段动作序列,并通过MotionProxy_angleInterpolationBezier.vi将它部署至机器人中控制她实施该动作。同时,所有的动作序列数据均可以显示在波形图上,用户也可以利用MotionProxy_angleInterpolationBezier.vi的输入端,实现自己所设计的动作。

MotionProxy_angleInterpolationBezier.vi输入端的数据类型如图6.7所示:


图6.7 MotionProxy_angleInterpolationBezier.vi的输入端数据

该数据类型是一个簇组成的数组,数组中的每个元素代表某一时间段内该关节的所有角度变化。

  • Names: 可选择任意一个关节的名称,如:HeadPitch、LHipRoll等。但不能选不是关节的那些名称,如Body,不然程序会报错。
  • Time: 时间,单位为秒。表示执行该动作的精确时间。

  • Angle:该关节在当前时间的角度,单位为弧度。

  • Handle1:在time时间点前的角度曲线拟合方式。

  • Handle2:在time时间点后的角度曲线拟合方式。

所有的动作均可在Choregraphe中的动作编辑器进行,将导出的c++代码文件导入read movements.vi转换成图3.7中的簇数组。

6.7中的簇数组可以通过read movements_to XY graph.vi,将数据显示在XY图上,横轴为时间,纵轴为弧度。

整个界面如图6.8所示:


图6.8 Angle Interpolation

此外,LabVIEW中提供了编辑复杂动作的Express VI。用户可以通过该Express VI的界面编辑动作,并自动生成代码。编辑复杂动作的Experss VI界面如图6.9:

图6.9 MotionEditor Express VI的界面

使用MotionEditor,可以:

  1. 导入choregraphe生成的动作序列;

  2. 连接Pepper机器人并进入Animated Mode,手动扳动机器人关节,并记录动作;

  3. 仿真已经编辑完成的动作序列;

  4. 点击“OK”即可保存动作序列,自动生成动作序列代码。

4.3姿态控制

文件路径:Motion\ Posture Control.vi

作用:用户可以使用姿态控制接口获取已存在机器人大脑中的所有固定姿态,同时也可以根据输入的姿态名控制机器人做出相应的姿态。

4.4 手臂控制

手臂控制实验Arm control.vi,如下图所示手臂(本实验已右手臂为例,不含手)的5个关节的定义:

RShoulderPitch

RShoulderRoll

RElbowYaw

RElbowRoll

RWristYaw


6.11 手臂个关节运动示意图

5个关节的定义和范围如下表所示:
在这里插入图片描述

命令参数大小中以弧度为单位。

范例界面如下图所示,程序中的图片展示了每个关节的定义,左侧包含了五个滑杆输入控件以及其数值显示,分别可对图中的5个关节进行控制,其中maxSpeedFraction是对关节运动的速度进行设置,其值范围从0~1.


6.12 Arm control.vi前面板

下图为该范例的程序框图,本范例选用了事件结构,事件结构可以实时检测并响应面板上所触发的事件,因此本范例中,一旦5个关节中任何一个设置参数有变动时,对应机器人手臂的关节就会及时响应。程序中分别包含了以下事件: ShoulderPitch值改变、ShoulderRoll值改变、ElbowYaw值改变、ElbowRoll值改变、WristYaw值改变、超时、Stop值改变(控制程序的退出)。

范例中主要用到的几个函数及功能:

  • Motion Initial.vi 创建连接及Motion引用

  • MotionProxy_setAngles.vi 设置关节角度及名称,根据设置参数控制硬件

  • RobotPosture Proxy_CreatProxy.vi 创建连接及Posture引用

  • RobotPosture Proxy_goToPosture.vi 姿态设置函数,关节控制前,先将机器人设置到一个初始状态。


6.13 Arm control.vi程序框图

五、行为控制

机器人内核中有一套行为管理器,用于存储由Choregraphe编写的脚本程序。用户也可以使用LabVIEW获取行为管理器中所有行为的名称,并调用或停止这些脚本程序。

路径:Behavior\Behavior example.vi

作用:获取已经下载至机器人大脑中所有行为的名称,并执行某个特定的行为。程序框图如图7.1所示:


图7.1 Behavior example.vi的程序框图

另外,高级用户也可以利用Behavior提供的接口,将LabVIEW编写的脚本直接下载至机器人内核中,作为新的行为供其他用户调用。

六、智慧医疗与养老工具包

  1. 支持跟踪人类的面部表情。手机患者在互动中微笑的百分比,同时密切观察人们的肢体语言,并利用这些信息提出改善健康问题的建议。

  2. 支持测量老年人完成任务的表现、参与度和情感反应。向老年人展示如何进行体育锻炼,协助治疗,以恢复和维持老年人的认知能力,如记忆力、定向力和沟通能力。

  3. 使用它们的老年人(两周内使用时间长达 18 小时)心理健康状况得到了改善, 用户的孤独感有所减轻。陪同老年人进行锻炼、卡拉OK和游戏等。

6.1 智能导诊

病人可通过语音或平板的文字输入,告知pepper机器人自己的症状,机器人会给你初步的预诊结果和就医建议。

6.2 病房助手

机器人在病房层面作为护士助手,监控住院病人。病人也可以与机器人语音对话,告知机器人自己想去的房间(如洗手间、茶水间、护士办公室等)机器人通过自主导航部件带领病人去指定地点。

6.3 心理疏导

Pepper 不仅能够以先进的科技及时监测反馈老年人的身体状态,更能够以独特且富有情感的方式进行沟通交流,加强与人的情感联系,提升用户体验。它能够收集更多的信息,甚至可以跟踪人类的面部表情。Pepper 可以告诉医生患者在互动中微笑的百分比,同时密切观察人们的肢体语言,并利用这些信息提出改善健康问题的建议。

6.4 体征检测

1、对接传感器:体温计、心率血氧探头、血压计

2、指导操作

2、播报结果

4、记录健康档案

6.5 脑机接口

通过脑电信号,指导Pepper机器人完成动作。

分析脑电波成分,判断用户的注意力是否集中,并触发相应的互动。

6.6 影像分析

机器人扫描二维码,向云服务下载数据,获取诊断信息,向患者播报。

工具包获取

如需获取工具包,可以加入我们的技术交流群(QQ):974600160。进群请备注:CSDN

🎯总结

以上就是今天要给大家分享的内容,希望对大家有用。如有笔误,还请各位及时指正。后续我们将为大家更新更多关于AI的内容,欢迎大家关注博主。我是virobotics(仪酷智能),我们下篇文章见~

如您想要探讨更多关于AI实验室建设,机器人机器臂以及其他AI相关内容,欢迎加入我们的技术交流群:974600160。进群请备注:CSDN

更多内容可查看

  • 微信公众号:仪酷智能科技
  • B站:仪酷智能

如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏

LabVIEW AI环境部署系列文章链接

LabVIEW AI视觉工具包(非NI Vision)下载与安装教程
LabVIEW开放神经网络交互工具包(ONNX)下载与超详细安装教程
LabVIEW使用OpenVINO加速必备工具包下载与安装教程
LabVIEW图形化TensoRT工具包的安装下载分享

👇技术交流 · 一起学习 · 咨询分享,请联系👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/29619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卷积神经网络 convolution neural network

1.数学卷积:滑动窗口 2.图像具有局部相关性和平移不变性,有许多冗余的特征点,如果用全连接的神经网络会很浪费时间。 3.卷积nn:减少参数,滑动提取特征,特征作为下层卷积的输入,然后放到全连接…

VM4.3 二次开发03 小技巧

VM4.3 二次开发03 小技巧 1.查看SDK帮助文档。 SDK帮助文档路径:安装目录下的路径,注意自己安装时的盘符,我是安装在D盘的。 D:\Program Files\VisionMaster4.3.0\Development\V4.x\Documentations\CH 示例程序目录 D:\Program Files\Visi…

Java 18新特性概览与解读

随着技术的不断进步,Java作为最流行的编程语言之一,也在持续地进行版本更新,为开发人员提供更强大、更高效的工具和特性。Java 18作为最新的稳定版本,引入了一系列引人注目的新特性和改进。以下是对Java 18中一些主要新特性的详细…

电商淘宝京东,精准关键词搜索API接口

当使用电商淘宝京东的精准关键词搜索API接口时,以下是清晰的步骤指南: 一、注册与申请API密钥 注册账号:在淘宝开放平台或京东开放平台注册成为开发者,并创建账号。 创建应用:登录后,在开放平台创建一个应…

最值得入手的宠物空气净化器!希喂、352、安德迈真实测评~

随着天气越来越热,猫咪们也都开始掉毛啦。这时候,家里面到处都飘浮着猫咪们的浮毛和粑粑异味。抵抗力较差的铲屎官,身体就会出现一些问题,例如打喷嚏、咳嗽等呼吸道问题。 很多铲屎官以为用粘毛器、吸尘器等工具就能将猫咪们掉落…

msvcp100.dll已加载但找不到入口点的处理方法,分析比较靠谱的msvcp100.dll解决方法

用户在日常使用中有时会遇到一个错误提示:“已加载 msvcp100.dll,但找不到入口点”。这一信息不仅引发了使用上的不便,也对软件的稳定性产生了质疑。理解并解决该问题不仅对确保计算机正常运行至关重要,也对维护软件的长期稳定性和…

虚拟货币投资指南|XEX交易所

什么是虚拟货币? 虚拟货币是一种基于区块链技术的数字资产,具有去中心化、透明性和安全性等特点。比特币(BTC)、以太坊(ETH)和莱特币(LTC)等是目前较为知名的虚拟货币。 虚拟货币投…

JavaScript 的新技能:5 大技巧,打造更强大的 Web 应用

大家好,我是前端宝哥。 JavaScript 在现代 Web 开发中简直是必不可少的工具! 它一直在不断变化,为我们带来新玩法。今天就来跟大家聊聊 5 个顶尖的 JavaScript 技术,教你用更酷炫的方式构建 Web 应用! 为什么 JavaScri…

shell脚本编程(概念、编程和语句)

一、shell脚本概述 1、shell脚本概念 Shell 脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件,将一些 shell 的语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能。 2、Shell 脚…

上证50etf期权的手续费要多少钱?期权懂分享

今天带你了解上证50etf期权的手续费要多少钱?上证50ETF期权的开户一般交易手续费默认为7元一张。在进行期权开户之前,建议提前联系一名券商的客户经理,协商期权手续费优惠事宜。 上证50etf期权的手续费要多少钱? 上证50ETF期权的…

IDEA中SpringMVC的运行环境问题

文章目录 一、IEAD 清理缓存二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 一、IEAD 清理缓存 springMVC 运行时存在一些之前运行过的缓存导致项目不能运行,可以试试清理缓存 二、用阿里云和spring创建 SpringMVC 项目中 pom.xml 文件的区别 以下…

通过LotusScript中的NotesDateTime类来进行时间计算

大家好,才是真的好。 今天我们介绍的是时间日期处理,其实以前也讲过,主要是通过LotusScript中的NotesDateTime类来进行时间计算。 但是这里也存在一个问题:就是时间日期类的比较只能计算出秒,不能计算出毫秒。 毕竟…

BEV 中 multi-frame fusion 多侦融合(一)

文章目录 参数设置align_dynamic_thing:为了将动态物体的点云数据从上一帧对齐到当前帧流程旋转函数平移公式filter_points_in_ego:筛选出属于特定实例的点get_intermediate_frame_info: 函数用于获取中间帧的信息,包括点云数据、传感器校准信息、自车姿态、边界框及其对应…

电脑怎么录音?分享2种音频录制方法

在日常生活和工作中,我们经常需要录制电脑上的音频,无论是为了记录会议内容、保存网络课程,还是为了制作自己的音频素材,录音功能都显得尤为重要。那么电脑怎么录音?本文将详细介绍2种方法教你如何在电脑上进行录音&am…

Qt做群控系统

群控系统顾名思义,一台设备控制多台机器。首先我们来创造下界面。我们通过QT UI设计界面。设计界面如下: 登录界面: 登录界面分为两种角色,一种是管理员,另一种是超级管理员。两种用户的主界面是不同的。通过选中记住…

构建专属Web SSH客户端:从零到一打造你的在线运维利器

随着云服务和远程工作的普及,能够随时随地访问服务器变得越来越重要。虽然市面上已有不少成熟的SSH客户端,但打造一个属于自己的Web版SSH工具,不仅能根据个人需求定制功能,还能享受灵活访问的便利。 本文将带你一步步实践&#xf…

PromptMRG: Diagnosis-Driven Prompts for Medical Report Generation

文章汇总 存在的问题 罕见疾病在训练数据中的代表性不足,使其诊断性能不可靠。 解决办法 1:利用预训练的CLIP模型从数据库中检索相似的报告来辅助查询图像的诊断。 2:设计SDL模块根据不同疾病的学习状态自适应调整优化目标。 流程解读 文…

.Net Core WebApi 程序在Swagger API说明文档中不显示注释的解决办法

本次所用版本为 .Net6.0 现象:在Swagger启动后,API接口等不显示注释描述,如下: 在代码中找到调用AddSwaggerGen的地方,如下: builder.Services.AddSwaggerGen(); 修改为: builder.Services.…

【精品方案】数字孪生赋能的智慧园区物联网云平台建设方案

引言:随着信息技术的快速发展,智慧园区建设已成为城市发展的重要趋势。数字孪生技术作为智能制造和智慧城市的核心技术之一,为智慧园区的建设提供了全新的解决方案。本方案旨在通过构建基于数字孪生的物联网云平台,实现智慧园区的…

深圳比创达|EMI电磁干扰行业:从挑战到机遇的蜕变

在当今科技日新月异的时代,电磁干扰(EMI)已成为影响电子设备性能和稳定性的重要因素。EMI电磁干扰行业因此应运而生,致力于研究和解决电磁干扰问题,确保电子设备的正常运行。 一、EMI电磁干扰行业面临的挑战 随着电子…