OrangePi AIpro 机器人仿真与人工智能应用测评

系列文章目录


前言

本篇文章分为2个部分,第一部分主要搭建了机器人的仿真环境(ROS2 MuJoCo等),运行了机械臂及移动机器人相关示例程序;第二部分运行了OrangePi AIpro系统自带的示例程序及昇腾社区官方的示例程序;最后总结使用体验


一、  开发板软硬件

1.1 硬件介绍及准备

这里我找了几块开发板,左边为树莓派4B及树莓派5B,中间为OrangePi AIpro,右上为华硕的Tinker Board,右下为英伟达的Jetson Nano。

1.1.1 硬件介绍

官方的宣传页如下:

Orange Pi AIpro Orange Pi官网-香橙派(Orange Pi)开发板,开源硬件,开源软件,开源芯片,电脑键盘

从宣传页可知,OrangePi AIpro主要强调了的人工智能性能及应用,详细信息可在上述链接内查看。官方介绍OrangePi AIpro可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。

我这里主要应用于机器人仿真,即智能小车,机械臂,四足机器人、人形机器人、无人机等领域。后面结合官方及昇腾社区的示例运行相关人工智能的应用。

1.1.2 开发板对比

这里我主要对比OrangePi AIpro、Jetson Nano及Raspberrypi 5B,三块开发板的硬件参数如下所示:

OrangePi AIpro

Jetson Nano

Raspberrypi 5B

CPU

4核64位处理器+ AI处理器

Quad-core ARM® Cortex®-A57 MPCore processor

2.4GHz 四核 64 位 Arm Cortex-A76 CPU

GPU

集成图形处理器

128-core NVIDIA Maxwell™ architecture GPU

VideoCore VII GPU,支持 OpenGL ES 3.1 和 Vulkan 1.2

AI算力

8TOPS算力

0.472TOPS算力

内存

LPDDR4X:8GB/16GB(可选),速率:3200Mbps

4GB 64-bit LPDDR4

25.6GB/s

LPDDR4X:4GB/8GB(可选)

存储

• SPI FLASH:32MB

• SATA/NVME SSD(M.2接口2280)

• eMMC插槽:32GB/64GB/128GB/256GB(可选),eMMC5.1 HS400

• TF插槽

16GB eMMC 5.1

高速 microSD 卡接口,支持 SDR104 模式

用于快速外设的 PCIe 2.0 x1 接口

WIFI+蓝牙

Wi-Fi 5双频2.4G和5G

BT4.2/BLE

1x GbE

双频 802.11ac Wi-Fi®

蓝牙 5.0 / 低功耗蓝牙 (BLE)

以太网收发器

10/100/1000Mbps以太网

1000Mbps以太网

千兆以太网,支持 PoE+

显示

• 2xHDMI2.0 Type-A TX 4K@60FPS

• 1x2 lane MIPI DSI via FPC connector

2 multi-mode DP 1.2/eDP 1.4/HDMI 2.0

1 x2 DSI (1.5Gbps/lane)

双 4Kp60 HDMI® 显示输出

摄像头

2x2-lane MIPI CSI camera interface,兼容树莓派摄像头

Up to 4 cameras

12 lanes MIPI CSI-2

D-PHY 1.1 (up to 18 Gbps)

2 × 4 通道 MIPI 摄像头/显示器收发器

USB

• USB 3.0 HOST x2

• USB Type-C 3.0 HOST x1

• Micro USB x1 串口打印功能

1x USB 3.0 (5 Gbps)

3x USB 2.0

2 × USB 3.0 端口,支持 5Gbps 同步运行

2 × USB 2.0 端口

音频

3.5mm耳机孔音频输入/输出

按键

1x关机键、1xRESET键、2x启动方式拨动键、1x烧录按键

电源按钮

40PIN

40PIN 功能扩展接口,支持以下接口类型:

GPIO、UART、I2C、SPI、 I2S、PWM

3x UART, 2x SPI, 2x I2S, 4x I2C, GPIOs

Raspberry Pi 标准 40 引脚 GPIO 接头

风扇

风扇接口x1

风扇接口x1

风扇接口x1

预留接口

2PIN电池接口

电源

Type-C PD 20V IN ,标准65W

5W - 10W

27W USB-C 电源

支持的操作系统

Ubuntu、openEuler

Ubuntu(Jetpack)

Ubuntu 等

产品尺寸

107*68mm

69.6mm x 45mm

260-pin SO-DIMM connector

85*56mm

重量

82g

140g

50g

上述对比表可知,OrangePi AIpro的AI算力确实强大,并且其他参数与Jetson Nano、树莓派5B等不相上下,为高性价比产品。

1.1.3 硬件准备

之前我使用过jetson nano以及树莓派5B,所以深知TF卡对于控制板整体性能的影响。因此按照官方的提示买了500G的三星固态硬盘(价格为450元左右)及硬盘盒(价格为90元左右),如图,将固态硬盘固定在OrangePi AIpro上。

此外,为方便携带,在官方买了金属外壳(价格100元左右),如图所示参考官方说明文档将OrangePi AIpro安装在金属外壳内。

连接电源线,显示屏线,键盘及鼠标线即可。

实际运行过程中发现OrangePi AIpro发热较为严重,因此买了额外的风扇散热,整体散热效果良好。

测试发现CSI摄像头没有反应,使用不了,官方文档说明是Linux系统未适配驱动,我这儿有一个奥比中光的深度相机,暂时用来采集数据,硬件连接如图所示。

1.2 软件介绍及准备

首先需要将系统通过TF卡烧录至SSD中,然后按照官方文档说明将拨码开关拨至对应位置即可。系统启动界面如图所示:

官方的镜像xfce桌面的bash没有补全功能,需要安装命令行补全功能包:

sudo apt install bash-completion

xfce桌面为轻量级桌面,占用资源少,但是外观并不好看,因此我切换桌面系统至 Ubuntu 原始桌面,选择gdm桌面即可:

效果如下:

注意:切换后桌面会有卡顿,不要安装 ubuntu-desktop ,否则不能启动桌面,盲猜与显卡有关。

更改密码,系统自带的密码过于繁琐,我们可以使用sudo passwd命令更改密码,我将密码更改为q,特别方便运行命令。

系统自带了Python 包管理器Anaconda,查看Python版本,结果如下:

1.2.1 换源

1.2.1.1 更换 Ubuntu Ports 源

华为云之前没有用过,不知道速度如何,换为中科大(ustc)镜像源,参考官网步骤如下:

使用 vim 打开 /etc/apt/sources.list 文件删除内容,可使用 dd 命令,然后粘贴如下内容:

# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse

deb https://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse

随后更新源并且更新可更新的软件包。

1.2.1.2 更换pip源

升级 pip 到最新的版本 (>=10.0.0) 后进行配置:

# 使用本镜像站来升级 pip
pip install -i https://mirrors.ustc.edu.cn/pypi/web/simple pip -U
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

1.2.1.3 更换conda源

按照清华源说明,执行命令:

conda config --set show_channel_urls yes

用户目录下产生.condarc文件,将以下内容覆盖原内容:

channels:
  - defaults
show_channel_urls: true
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/

1.2.1.4 更换ROS2 源

导入 key:

sudo apt install curl gnupg2
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key  -o /usr/share/keyrings/ros-archive-keyring.gpg

将软件源添加至系统:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

sudo apt update

刷新软件源缓存 sudo apt update,安装所需的 ROS2 发行版。

1.2.2 安装必备软件

1.2.2.1 安装QQ

至QQ官网下载arm64安装包,使用dpkg安装即可

1.2.2.2 安装 腾讯文档

同理至官网下载arm64安装包

1.2.2.3 安装代码编辑器vscode

同理至官网下载arm64安装包。

1.2.2.4 安装ROS2

我这里安装ros-iron-desktop-full,安装完成后进行测试

1.2.2.5 安装动力学库及仿真器

动力学库及仿真器通过conda安装,命令如下:

   conda install crocoddyl pinocchio mujoco -c conda-forge

1.3 测试相机

使用Ubuntu自带的cheese测试相机使用是否正常,测试结果如图所示。

二、  机器人仿真开发

2.1基于 ROS 平台的机器人仿真

基于ROS的仿真我这里主要进行ROS2 MoveIt机械臂仿真及turtlebot相关运动机器人导航仿真。

2.1.1 机械臂仿真

2.1.1.1 MoveIt介绍

MoveIt是ROS社区下开源的机械臂运行规划库,主要可完成机械臂运动规划、碰撞检测,功能包内还集成了几种开源的运动规划库,可以用来开发机械臂,或者控制现有的机械臂,在机器人领域应用十分广泛。其功能框架如图所示。

2.1.1.2 机械臂仿真环境搭建

按照MoveIt官网教程安装相应的库并编译,步骤如下所示:

创建 Colcon 工作区并下载教程

要获取教程,您需要设置一个 Colcon 工作区。

mkdir -p ~/ws_moveit/src

下载 MoveIt 源代码及教程

移动到 Colcon 工作区,提取 MoveIt 教程源代码:

cd ~/ws_moveit/src
git clone https://github.com/ros-planning/moveit2_tutorials

接下来,我们将下载 MoveIt 其他部分的源代码:

vcs import < moveit2_tutorials/moveit2_tutorials.repos

导入命令可能会要求输入 GitHub 认证信息。你可以直接按 Enter 直到它继续(忽略 "Authentication failed"(验证失败)错误)。

构建 Colcon 工作区

以下步骤将从 Debian 安装工作区中尚未安装的任何依赖包。这一步将安装 MoveIt 及其所有依赖包:

sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y

下一条命令将配置 Colcon 工作区:

cd ~/ws_moveit
colcon build --mixin release

这个构建命令可能需要很长时间(20 多分钟),这取决于你的电脑速度和可用内存量(我们建议 32 GB)。

实际在OrangePi AIpro编译需要数小时,中间需要解决一些依赖问题。

2.1.1.3 示例程序运行

参考MoveIt官网搭建运行环境,下载并编译相关功能包,运行程序即可运行机械臂轨迹规划功能包:

ros2 launch moveit2_tutorials demo.launch.py

因为启动了RVIZ及其GUI界面,所以运行稍微有些卡顿,若不启动GUI界面,实际作为机械臂控制器使用时完全没有问题。

我们还可以打开ROS生态下的Gazebo,运行示例程序,如图所示为机械臂工作台示例。我们可以通过GUI界面操作机械臂的各个关节运行,后续有科研或者工业需要可以与其他开源ROS功能包一起使用完成相关功能。

2.1.2 移动机器人仿真

2.1.2.1 Turtlebot4 机器人仿真

Turtlebot4是开源的ROS2机器人,clearpath公司开发的面向教育的机器人产品,自身携带丰富的传感器,配套的开源软件也很丰富,唯一的缺点就是很贵(10000元+),但是我们可以安装仿真器,在仿真器中体验使用Turtlebot4。官方做的仿真场景是在工厂中,机器人通过自身携带的思岚激光雷达进行二维建图及导航,我们可以使用虚拟手柄操作机器人运行。

按照官方说明文档安装仿真器,步骤如下:

ros2 launch turtlebot4_ignition_bringup turtlebot4_ignition.launch.py slam:=true nav2:=true rviz:=true

命令行运行仿真程序效果如下:

通过GUI 界面操作机器人,RVIZ界面则显示二维激光雷达所建地图。

使用rqt_graph查看节点图:

2.2基于开源动力学库及开源仿真器MuJoCo平台的机器人仿真

按照官网的说明安装好开源的动力学库及MuJoCo

2.2.1 MuJoCo 人形机器人LQR控制程序

这里运行了官方提供的示例程序,主要功能是控制人形机器人单脚站立,使用线性二次型规划控制。运行效果如图所示。

程序主要包括加载机器人模型并渲染展示,建立机器人动力学模型,并在指定位置线性化及离散化,设计LQR控制器,最后施加干扰并渲染完成控制。

2.2.2 使用开源动力学库

这里使用开源的动力学库pinocchio,运行官方示例程序加载机器人,效果如图所示:

主要加载了几种不同种类的机器人,如人形机器人,移动机械臂,四足机器人,无人机。

三、  人工智能应用开发

3.1 官方示例

3.1.1 YOLO5s示例适合部署在边缘设备上

按照官方说明运行Yolo5s示例程序,图像来源使用奥比中光采集的图像,运行效果如图所示,可以看出算法检测出泰迪熊及时钟并给出了相应的置信度。

3.1.2 OCR识别

同样按照示例程序进行,我这里的图片是从昇腾社区官网截取,结果如图所示,能够识别出字符。

系统内还有丰富的示例可以运行,我这里不做演示。

3.2 昇腾社区示例

3.2.1 生成式扩散模型示例

官方说明系统内自带MindSpore开发工具链,至官网下载如下示例程序测试AI性能:

这里测试的是扩散模型,隶属于生成式,示例十分丰富,感兴趣可以至官网下载相关示例程序运行测试。

四、  总结

4.1 使用总结

本文在OrangePi AIpro开发板上搭建了机器人开发环境(ROS及仿真器等),测试了机械臂运行规划及移动机器人建图示例,之后运行了系统内置的AI示例及昇腾社区Mindspore示例。

个人认为OrangePi AIpro的算力及性价比在目前的嵌入式开发板中算相对较高的,环境搭建相对来讲也并不复杂。特别是系统集成了华为的Mindspore工具链,适合在边缘 嵌入式设备中加速AI计算。

目前没有测试相关GPIO(如I2C,SPI等)接口,若OrangePi AIpro的GPIO接口的性能足够(比如传输速率等),个人觉得作为机器人主控完全足够,后续也可以在机器人基础上继续开发相应的AI功能。

4.2 调试总结

至此,本文已经结束了。硬件方面,在拿到开发板之前我买好了相应的硬件(包括外壳,SSD,烧录器,硬盘盒等);软件方面,在编译ROS MoveIt功能包源码时由于MoveIt本身复杂程度高,耗费了挺长的时间(大概几个小时)。由于时间有限,运行AI示例数量有限。大部分工作为晚上10点至凌晨3点之间完成。

如有错误,请指正!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

马克·雷伯特访谈:机器人的未来及波士顿动力的创新之路

引言 机器人技术作为现代科技的前沿领域&#xff0c;始终吸引着大量的关注与研究。波士顿动力公司作为这一领域的领军者&#xff0c;其创始人兼前CEO马克雷伯特&#xff08;Marc Raibert&#xff09;近日在主持人莱克斯弗里德曼&#xff08;Lex Fridman&#xff09;的播客节目…

机器学习笔记 - 用于3D点云数据分割的Point Net的训练

一、数据集简述 ​在本教程中,我们将学习如何在斯坦福 3D 室内场景数据集 ( S3DIS )上训练 Point Net 进行语义分割。S3DIS 是一个 3D 数据集,包含来自多栋建筑的室内空间点云,占地面积超过 6000 平方米。Point Net使用整个点云,能够执行分类和分割任务。如果你一直在关注 …

【归并排序】| 详解归并排序核心代码之合并两个有序数组 力扣88

&#x1f397;️ 主页&#xff1a;小夜时雨 &#x1f397;️专栏&#xff1a;动态规划 &#x1f397;️如何活着&#xff0c;是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/merge-sorted-array/description/ 本道题是归并排序的…

SNAT和DNAT策略

1、SNAT策略及应用 SNAT应用环境&#xff1a;局域网主机共享单个公网IP地址接入Internet&#xff08;私有不能在Internet中被正常路由&#xff09; SNAT原理&#xff1a; 修改数据包的源地址。 SNAT转换前提条件&#xff1a; 局域网各主机已正确设置IP地址、子网掩码、默认…

库的制作 与 使用 (Linux下)

目录 动静态库的制作 前置知识 库的基本构造 问题 分析 要给什么文件 如何更好的让别人使用 库的生成 静态库的生成 makefile参考 动态库的生成 makefile参考&#xff08;包含动态库和静态库生成&#xff09; 库的使用 法一&#xff1a;放入系统路径 弊端 法二…

Android开发系列:高性能视图组件Surfaceview

一、Surfaceview概述 在Android应用开发领域&#xff0c;面对视频播放、游戏构建及相机实时预览等高性能需求场景&#xff0c;直接操控图像数据并即时展示于屏幕成为必要条件。传统View组件在此类情境下显现局限性&#xff1a; 性能瓶颈&#xff1a;传统View的绘制任务由UI主…

如何充分利用 Postgres 的内存设置

为了充分利用 PostgreSQL 的内存设置&#xff0c;你需要调整多个参数以优化数据库性能。这些参数包括共享缓冲区&#xff08;shared_buffers&#xff09;、工作内存&#xff08;work_mem&#xff09;、维护工作内存&#xff08;maintenance_work_mem&#xff09;、有效缓存大小…

命令词:引导行动的语言工具

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

《全职猎人》

《全职猎人》 [1-2]是日本漫画家富坚义博的作品。 1999年版改编电视动画由日本动画公司负责动画制作&#xff0c;于1999年10月16日&#xff0d;2001年3月30日在富士电视台播出&#xff0c;该动画的故事至贪婪之岛篇章结束&#xff0c;全92话。 该作在富坚义博老师天马行空的想…

markupsafe,一个神奇的 Python 库!

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个神奇的 Python 库 - markupsafe。 Github地址&#xff1a;https://github.com/pallets/markupsafe 在 Web 开发和模版渲染中&#xff0c;处理用户输入的数据时&#xff0c;防止 HTML 注入是至…

【Java】Object、Objects、包装类、StringBuilder、StringJoiner

目录 1.API2.Object类3.Objects类4.包装类4.1包装类概述4.2包装类的其他常见操作 5.StringBuilder 可变字符串5.1概述5.2StringBuilder案例 6.StringJoiner 1.API API&#xff1a;应用程序编程接口&#xff0c;全称application programing interface&#xff0c;即Java已经写好…

3分钟带手把手带你了解 FL Studio v21.2.3.4004 中文免费版(附中文设置教程)安装指南

3分钟带手把手带你了解 FL Studio v21.2.3.4004 中文免费版(附中文设置教程)安装指南&#xff0c;大家我是兔八哥爱分享&#xff0c;今天你带来的安装FL Studio 21破解版&#xff0c;纯正简体中文支持&#xff01; FL Studio 21 简称FL21&#xff0c;全称Fruity Loops Studio&a…

消息队列-Rabbit运行机制

Producer(生产者) 和 Consumer(消费者) Producer(生产者) :生产消息的一方&#xff08;邮件投递者&#xff09;Consumer(消费者) :消费消息的一方&#xff08;邮件收件人&#xff09; 消息一般由 2 部分组成&#xff1a;消息头&#xff08;或者说是标签 Label&#xff09;和 …

keystone认证服务

keystone认证服务 1、keystone管理用户 1-1、简介&#xff1a; 在OpenStack云计算平台中&#xff0c;Keystone是一个核心组件&#xff0c;主要用于提供统一的认证服务。其功能包括&#xff1a; 身份验证&#xff1a;Keystone负责验证用户的身份&#xff0c;通常通过用户名和…

记录一个flink跑kafka connector遇到的问题

【报错】 D:\Java\jdk1.8.0_231\bin\java.exe "-javaagent:D:\Program Files\JetBrains\IntelliJ IDEA 2022.2.3\lib\idea_rt.jar56647:D:\Program Files\JetBrains\IntelliJ IDEA 2022.2.3\bin" -Dfile.encodingUTF-8 -classpath D:\Java\jdk1.8.0_231\jre\lib\cha…

本学期嵌入式期末考试的综合项目,我是这么出题的

时间过得真快&#xff0c;临近期末&#xff0c;又到了老师出卷的时候。作为《嵌入式开发及应用》这门课的主讲教师&#xff0c;今年给学生出的题目有一点点难度&#xff0c;最后的综合项目要求如下所示&#xff0c;各位学生朋友和教师同行可以评论一下难度如何&#xff0c;单片…

DataWhale - 吃瓜教程学习笔记(一)

学习视频&#xff1a;第1章-绪论_哔哩哔哩_bilibili 西瓜书对应章节&#xff1a; 第一章 机器学习三观 What&#xff1a;什么是机器学习&#xff1f; 关键词&#xff1a;“学习算法” Why: 为什么要学机器学习&#xff1f; #### 1. 机器学习理论研究#### 2. 机器学习系统开…

[240615] X-CMD 发布 v0.3.11,增加对 elvish 的支持

目录 X-CMD 发布 v0.3.11&#xff0c;增加对 elvish 的支持&#xff0c;并优化对 nushell&#xff0c;fish&#xff0c;xonsh&#xff0c;tcsh 的支持✨ co 模块 - copilot✨ elv 模块✨ hub X-CMD 发布 v0.3.11&#xff0c;增加对 elvish 的支持&#xff0c;并优化对 nushell&…

Python合并文件(dat、mdf、mf4)

天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物。 每个人都有惰性&#xff0c;但不断学习是好好生活的根本&#xff0c;共勉&#xff01; 文章均为学习整理笔记&#xff0c;分享记录为主&#xff0c;如有错误请指正&#xff0c;共同学习进步。…

LabVIEW与C#的区别及重新开发自动测试程序的可行性分析

LabVIEW和C#是两种广泛使用的编程语言&#xff0c;各自有不同的应用领域和特点。本文将详细比较LabVIEW与C#在自动测试程序开发中的区别&#xff0c;并分析将已完成的LabVIEW自动测试程序重新用C#开发的合理性。本文帮助评估这种转换的必要性和潜在影响。 LabVIEW与C#的区别 开…