玩转Atlas200DK(八)完成CANN训练营进阶班大作业

张小白在

【CANN训练营进阶班应用课笔记】在Atlas 200DK上体验DVPP的JPEGD-RESIZE-JPEGE​bbs.huaweicloud.com/blogs/344172

帖子里介绍了如何在200DK上完成 2022年CANN训练营进阶班应用课的大作业1 。我们现在用MindStudio来完成一下吧!

我们首先要理解下,在合设环境(Atlas 200DK)直接编译执行,与使用分设环境,在分设环境之开发环境(X86虚拟机)交叉编译,在分设环境之运行环境(Atlas 200DK)的真实区别:

在合设环境,编译和运行时,整个环境是一个整体,如果要依次运行大作业中jpegd、resize和jpege三个工程,那么是可以依次编译,依次执行——后一步是可以成功引用前一步的运行结果的。但是在分设环境,编译和运行时在不同的环境中完成,如果要依次运行大作业中jpegd、resize和jpege三个工程,MindStudio的处理逻辑是:在分设环境之开发环境(X86虚拟机)编译了项目工程后,将整个项目工程传递到 分设环境之运行环境(Atlas 200DK)的MindStudio-WorkSpace目录下:

并根据该项目Deployment的设置,生成了一个跟原有工程相同的前缀,但是后面带了一个随机字符串的目录。所以实际上代码的运行环境的目录是 ~/MindStudio-WorkSpace/项目工程_随机串

因此,那么在编译代码的时候,凡涉及相关路径的时候,如果涉及到绝对路径,千万记得要改一下路径名称。后一个工程在引用前一个工程的运行结果时有点麻烦,也需要写上前一个工程的带随机数的目录名称。

原来在代码编译的时候使用的是sample_build.sh,里面有一些样例图片和视频的准备等过程,但是在MindStudio编译的时候,一般是只能用Makefile,这个过程可能需要手工准备。

原来在编译的时候使用的是sample_run.sh,里面可以反复执行编译好的可执行代码,实现多个图片的反复运行。但是在MindStudio运行的时候,只能运行一次。所以如果涉及到参数不同的反复执行过程,最好是在main代码中做循环控制完成。

我们来实际体验一下:

打开jpegd工程:

注意这里是常规操作,遇到警告提示不用怕,点OK:

再点OK:

点击Tools-》Deployment-》Configuration:

点击+:

输入200DK,点击OK:

点击SSH configuration的下拉框,选择 HwHiAiUser!@192.168.199.204:22,这个配置过后就可以反复选择,不用再配置了:

点击Test Connection:

点击OK:

再依次点击Mappings和下面的+:

在蓝色框中分别点一下,会自动弹出目录:

点击Apply和OK关闭窗口。

点击Build-》Edit Build Configuration:

修改Target OS为Euleros2.10,系统会自动弹出Target Architecture为aarch74:

点击Save

再点击Build-》Build-》Build Configuration:

惯例会找不到库的路径.

修改 src/CMakeLists.txt:

将 link_directories改为 $ENV{INSTALL_DIR}/arm64-linux/runtime/lib64/stub

保存后再重新编译:

可见编译成功完成。

但是你会发现,在合设环境直接编译的时候,无需改任何Makefile就能成功编译和运行:

当然,MindStudio是交叉编译,shell是直接编译,这个当然不同。

好了,我们还得在MindStudio上完成运行:

点击Run。。-》Edit Configurations:

点击Executable右边的文件夹按钮:

选择前面编译好的可执行代码:out/main。注意这个代码在开发环境是无法运行的:

因为它本质上是一个arm版的代码。

点击OK:

至于Command Arguments怎么加,需要对比下scripts/sample_run.sh的脚本,先点击Apply-:

再点击Close。然后打开sample_run.sh,发现运行参数:../data/dog1_1024_683.jpg

重新打开运行配置界面,将 ../data/dog1_1024_683.jpg 贴入到Command Arguments:

先点击Apply,再点击Run:

当然这样是运行不成功的:

因为并没有像 bash sample_build.sh那样下载好这个图片。

不过不要紧,无论怎么下载,搞到这个文件就好,将其放到 data目录下:

cd data

wget https://c7xcode.obs.cn-north-4.myhuaweicloud.com/models/jpegd/dog1_1024_683.jpg --no-check-certificate

然后重新运行:

还是出错,对了,你需要在IDE界面手工创建下out/output目录:在下图的out目录点右键,点击New->Directory:

输入output后回车。然后再重新编译:

所以大家会发现,运行成功,且output目录下多了一个 yuv文件。这个文件是在200DK上运行后,被MindStudio从200DK上拷贝回来的。

所以通过第一个MindStudio的例子,我们应该是更清楚地了解了MindStudio的使用方法和实现机理。

下面在打开其他工程进行的时候,上述操作张小白就不讲解那么细致了,可以参考上面进行处理。

我们点击File-Close Project:

再open resize工程:

打开后的惯例做法这里就不提了。(CANN的选择,Deployment配置,Build参数,Makefile库路径)

编译:

直接能成功(如果你是按照前面的方式一个一个做的话)

查看sample_run.sh,这个时候就不能用这里running_command的参数( ../data/wood_rabbit_1024_1068_nv12.yuv 1024 1068 ./output/output.yuv 224 224 )作为运行的参数了。

而是应该用前面jpegd工程的运行结果

两种方式:

1.将上次的结果拷贝到 data目录下:

在run-》edit configuration中,将参数改为:../data/dog1_1024_683_jpegd_1024_683.yuv 1024 683 ./output/output.yuv 640 480

点击Apply-》Run。

可见,output下成功生成了resize后的output.yuv。

我们点击File-Close Project,再打开jpege工程,同样完成 CANN的选择,Deployment配置,Build参数,Makefile库路径等操作。

执行build:

查看sample_run.sh的脚本:

先将resize的结果拷贝到jpege的data目录下:

创建output目录:

编辑run-》configuration配置:参数设置为 ../data/output.yuv 640 480

点击apply后run:

可以看到结果jpg图片已生成。

打开看看:

可见图片结果正确。

(未完待续)

### 在 Atlas 200 DK 开发套件上安装和配置 ROS #### 准备工作 为了确保顺利安装ROS,在Atlas 200 DK 上需先完成一系列准备工作,包括但不限于烧录镜像、安装依赖项以及必要的软件包。 - **烧录镜像** 使用一键制卡工具可将适配好的开发板镜像(含操作系统、NPU固件驱动、CANN等组件)写入SD卡中[^2]。 - **安装依赖** 需要预先安装一些基础库文件和其他依赖关系来支持后续操作系统的正常运作及ROS的部署。这一步骤通常涉及更新现有包列表并安装额外所需的程序包。 - **安装Ascend-CANN-toolkit 和 PyTorch等相关组件** 这些工具对于利用Atlas 200 DK 的硬件加速特性至关重要,按照官方指南逐步执行相应命令即可完成这些软件包的安装过程[^1]。 #### 安装 ROS Melodic 针对 Ubuntu 18.04 版本的操作系统,推荐采用Melodic Morenia版本的ROS进行安装: - 添加ROS仓库密钥至本地机器,并设置正确的源以便获取最新发布的二进制文件[^4]: ```bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' ``` - 接着初始化apt-get索引并安装桌面全功能版或仅限核心组件视需求而定: ```bash sudo apt update && sudo apt install ros-melodic-desktop-full ``` - 设置环境变量以使能新安装的功能模块生效;可以通过编辑`~/.bashrc` 文件加入下面这一行实现自动化加载路径: ```bash echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` - 最后确认安装成功与否的方法之一就是查看已安装版本号: ```bash rosversion -d ``` #### 网络配置与远程访问 为了让主机能够通过SSH协议连接到目标设备,需要调整网络参数使之处于同一局域网内,并赋予固定的IP地址给Atlas 200 DK 。具体做法是在PC端进入网络接口属性界面手动指定静态IP及相关信息[^5]。 ```bash ssh ubuntu@{your_atlas_200_ip} ``` 以上即为在Atlas 200 DK 平台上搭建ROS环境所需经历的主要环节概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小白TWO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值