组装步骤
功能与原理介绍
智能机械臂基于Atlas 200I DK A2 开发者套件的深度学习AI推理功能和机械臂的二次开发,通过串口硬件通信和python接口软件支持实现。
图1 实现原理

须知
当前功能所用模型,均为已训练并进行模型转换的“.om”文件,如果用户需要使用自己的场景或地图,需参考Atlas 200I DK A2 开发者套件《[使用模型适配工具生成推理应用](https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Getting Started with Application Development/iaqd/iaqd_0001.html)》,使用模型适配工具自行训练生成模型,并上传至开发者套件。
任意位置积木分拣
基于开发者套件的内置YoloV5神经网络模型的推理结果,标记十字标定板中积木的位置,并使用机械臂进行分拣。
- 通过摄像头提取十字标定板轮廓,通过机器视觉方法提取轮廓的四个角点,透视变换轮廓内的平面。
- 使用模型适配工具训练转换的om模型进行推理,最后根据推理结果下发指令,控制机械臂抓取在摄像头可视范围内的任意位置摆放的积木,并移动至对应颜色区域。
图2 任意位置积木分拣功能原理

任意位置积木堆叠
基于开发者套件的内置YoloV5神经网络模型的推理结果,标记十字标定板中积木的位置,并使用机械臂进行堆叠。
- 通过摄像头提取十字标定板轮廓,通过机器视觉方法提取轮廓的四个角点,透视变换轮廓内的平面。
- 使用模型适配工具训练转换的om模型进行推理,最后根据推理结果下发指令,控制机械臂抓取在摄像头可视范围内的任意位置摆放的积木,并移动至灰色区域并堆叠在一起。
图3 任意位置积木堆叠功能原理

父主题: 样例介绍
准备组件
机械臂应用样例所需组件及组件关键部位参数见表1。
:::note 说明 机械臂可以通过链接进行单独购买(选择无主板类型),其中物料选型如图1所示。 :::
表1 机械臂应用样例组件表
模块名称 | 数量/个 | 是否需要单独购买 |
|---|---|---|
开发者套件及电源适配器 | 1 | 否 |
机械臂及电源适配器 | 1 | 是(机械臂套装中包含) |
机械臂扩展板 | 1 | |
USB摄像头 | 1 | |
标定板地图 | 1 | |
SD卡 | 1 | |
40PIN排线 | 1 | |
路由器 | 1 | 是 |
网线 | 1 | 是 |
图1 物料选型图

父主题: 样例组装
组装步骤
须知
因USB摄像头连线长度有限且需要与开发者套件连接,应尽可能地将开发者套件与机械臂放置在邻近的位置。避免后续在机械臂展示样例时,USB摄像头的连线脱落。
-
将开发者套件通过RJ45网线与PC连接。
-
参考《快速开始》《快速开始》“一键制卡”章节烧录镜像,将SD卡插入开发者套件的卡槽,当前样例仅在Ubuntu OS适配验证过,未在openEuler OS适配验证,推荐烧录Ubuntu OS镜像。
-
参考[通过路由器联网](https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Hardware Interfaces/hiug/hiug_0011.html)章节,连接路由器与开发板eth0网口。
-
将开发者套件的40PIN接口与机械臂扩展板的40PIN接口用40PIN排线连接。
机械臂扩展板功能分布图如下:
图1 扩展板功能分布

机械臂与开发者套件排线的正确接法如下图所示。当正确连接时,扩展板的蓝灯点亮(下图红框所示)。为防止排线被拧断,建议购买一根长的排线。
图2 机械臂与开发者套件排线连接

-
将USB摄像头插入开发者套件USB接口,并将摄像头固定在机械臂上。
-
将开发者套件和机械臂分别接入电源,并将机械臂扩展板电源接口旁的开关拨至“ON”。
父主题: 样例组装
获取代码
:::note 说明 每开启一个新的远程窗口,都需配置环境变量。 :::
-
远程登录开发者套件。
- 将PC和路由器接入路由器网络,并登录路由器管理后台查看开发者套件的IP地址(方法请参见[通过路由器联网](https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Hardware Interfaces/hiug/hiug_0011.html))。
- 使用root用户(密码:Mind@123)在PC端的MobaXterm远程连接工具登录开发者套件。
-
远程登录开发者套件,进入“/usr/local”目录运行脚本拉取代码。
cd /usr/local -
运行脚本拉取代码。
bash E2E_samples_download_tool.sh -d download_destination_path -s source_repository -b branch target_path参数说明:
- -d:指定代码的下载路径。
- -s:指定开源仓库的clone url。
- -b:指定开源仓库分支名称及待下载的项目目录。
- -f:强制更新下载路径中的目录。当样例目录已删除,但重新下载时提示“Already up to date”时可使用此参数。
命令示例:
bash E2E_samples_download_tool.sh -d /home/HwHiAiUser/E2ESamples -s https://gitee.com/HUAWEI-ASCEND/ascend-devkit.git -b master src/E2E-Sample/ros2_robot_arm回显如下:
Download E2E samples successfully!执行完成后,会在“/home/HwHiAiUser/E2Esamples”目录下生成“src/E2E-Sample/ros2_robot_arm/”目录。
-
进入机械臂目录。
cd /home/HwHiAiUser/E2ESamples/src/E2E-Sample/ros2_robot_arm
父主题: 快速体验
准备环境
-
修改“~/.bashrc”文件。
-
执行命令打开文件。
vi ~/.bashrc在文件末尾新增以下内容。
conda deactivate执行**:wq**保存。
:::note 说明 不使用机械臂时,请将此段代码注释。 :::
-
执行命令生效环境变量。
source ~/.bashrc
-
-
下载配置文件与模型文件,
[配置文件](https://ascend-repo.obs.cn-east-2.myhuaweicloud.com/Atlas 200I DK A2/DevKit/samples/23.0.RC1/e2e-samples/Arm/robot_arm_dependency.zip):将解压后的所有文件上传至“/home/HwHiAiUser/E2ESamples/src/E2E-Sample/ros2_robot_arm”目录中。
-
安装依赖。
-
安装ROS,请依次执行以下命令。
apt install -y software-properties-commoncurl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpgecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/nullapt updateapt install -y libegl-mesa0 ros-humble-desktop python3-colcon-common-extensions pip -
安装ais_bench,请以此执行以下命令。
pip3 install -v 'git+https://gitee.com/ascend/tools.git#egg=aclruntime&subdirectory=ais-bench_workload/tool/ais_bench/backend'pip3 install -v 'git+https://gitee.com/ascend/tools.git#egg=ais_bench&subdirectory=ais-bench_workload/tool/ais_bench' -
安装其他依赖。
pip3 install -r requirements.txtdpkg -i libconsole-bridge0.4_0.4.4+dfsg-1build1_arm64.debdpkg -i liburdfdom-world_1.0.0-2ubuntu0.1_arm64.deb
-
-
添加环境变量。
-
执行命令打开文件。
vi ~/.bashrc在文件末尾新增以下内容。
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib/aarch64-linux-gpu:/usr/local/lib执行**:wq**保存。
-
执行命令生效环境变量。
source ~/.bashrc -
替换库文件。
cp ./libdofbot_kinemarics.so /usr/lib
-
-
安装orocos_kd。
-
创建编译目录。
cd orocos_kdl && mkdir build && cd build -
执行命令进行编译。
cmake ..make -j4 -
执行命令安装依赖。
make install
-
-
安装机械臂驱动。
cd ../.. && cd 0.py_installpython3 setup.py installcd .. -
编译工作空间。
-
配置环境变量
source setenv.sh -
执行命令编译。
cd ros2_ws && colcon build
-
父主题: 快速体验
(可选)校准摄像头
:::note 说明 该步骤仅在首次使用机械臂时执行,后续使用时可跳过此步骤。 :::
-
打开新的终端窗口,执行命令进入jupyter notebook。
jupyter notebook --allow-root 192.168.137.100--allow-root为当前开发者套件的IP,请根据实际IP修改。
首次进入时可能需要输入登录密码或token。
图1 登录界面

若首次登陆未设置密码,请根据实际回显中的token值登录。回显示例如下,token值为加粗部分。
[I 2023-05-09 08:02:59.683 ServerApp] nbclassic | extension was successfully loaded.[I 2023-05-09 08:02:59.685 ServerApp] Serving notebooks from local directory: /home/HwHiAiUser/samples/notebooks[I 2023-05-09 08:02:59.685 ServerApp] Jupyter Server 1.23.6 is running at:[I 2023-05-09 08:02:59.685 ServerApp] http://192.168.137.100:8888/lab?token=a046a76dc21f1504f271c16278ed62ed7fb014aaf38ee807[I 2023-05-09 08:02:59.685 ServerApp] or http://127.0.0.1:8888/lab?token=a046a76dc21f1504f271c16278ed62ed7fb014aaf38ee807[I 2023-05-09 08:02:59.685 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).[C 2023-05-09 08:02:59.701 ServerApp] -
在jupyter notebook中逐级进入目录“/root/ros2_robot_arm/ros2_ws/src/dofbot_garbage_yolov5/tools”,双击“相机校准.ipynb”进入代码界面。
-
在代码界面选择“Kernel”选择“Restart & Run All”运行代码。
图2 运行代码

:::note 说明 若运行后,下方无回显,请多尝试几次。 :::
成功运行后,画面如下所示。
图3 成功运行

-
开始校准摄像头。
-
单击“calibration_model”按钮,并调节“joint1”与“joint2”。请保证调试环境的光源充足,确保蓝色边框覆盖整个十字框,画面如下所示。
图4 调节画面

-
单击“calibration_ok”按钮,可视化界面进入方框内部,画面如下所示。
图5 调节成功

-
-
返回开发者套件终端,按下键盘“Ctrl”+“C”键,停止jupyter notebook程序。
父主题: 快速体验
在线提单