RDK X3 机械臂捡垃圾经验分享
功能介绍
hobot_arm package是基于mono2d_trash_detection package开发的2D垃圾目标检测+机械臂抓取的应用示例。在地平线的旭日X3派上利用BPU进行模型推理获得感知结果,利用幻尔机械臂作为下位机,进行垃圾抓取的示例。
编译
开发环境
编程语言: C/C++
开发平台: X3/X86
系统版本:Ubuntu 20.04
编译工具链:Linux GCC 9.3.0/Linaro GCC 9.3.0
编译
支持在X3 Ubuntu系统上编译和在PC上使用docker交叉编译两种方式。
Ubuntu板端编译X3
1、编译环境确认
板端已安装X3 Ubuntu系统。
当前编译终端已设置TogetherROS环境变量:source PATH/setup.bash。其中PATH为TogetherROS的安装路径。
已安装ROS2编译工具colcon,安装命令:pip install -U colcon-common-extensions
2、编译
编译命令:colcon build --packages-select hobot_arm
Docker交叉编译X3
1、编译环境确认
在docker中编译,并且docker中已经安装好TogetherROS。docker安装、交叉编译说明、TogetherROS编译和部署说明详见机器人开发平台robot_dev_config repo中的README.md。
2、编译
编译命令:
export TARGET_ARCH=aarch64
export TARGET_TRIPLE=aarch64-linux-gnu
export CROSS_COMPILE=/usr/bin/$TARGET_TRIPLE-
colcon build --packages-select hobot_arm\
--merge-install\
--cmake-force-configure\
--cmake-args\
--no-warn-unused-cli\
-DCMAKE_TOOLCHAIN_FILE=`pwd`/robot_dev_config/aarch64_toolchainfile.cmake
X86 Ubuntu系统上编译X86版本
1、编译环境确认
x86 ubuntu版本: ubuntu20.04
2、编译
编译命令:
colcon build --packages-select hobot_arm\
--merge-install\
--cmake-args\
-DTHIRD_PARTY=`pwd`/../sysroot_docker\
注意事项
使用介绍
依赖
mono2d_trash_detection package: 发布垃圾检测感知msg
参数
无
运行
编译成功后,将生成的install路径拷贝到地平线旭日X3开发板上(如果是在X3上编译,忽略拷贝步骤),并执行如下命令运行:
X3 Ubuntu 启动
export COLCON_CURRENT_PREFIX=./install
source ./install/setup.bash
# config中为示例使用的模型,根据实际安装路径进行拷贝
# 如果是板端编译(无--merge-install编译选项),拷贝命令为cp -r install/PKG_NAME/lib/PKG_NAME/config/ .,其中PKG_NAME为具体的package名。
cp -r install/lib/mono2d_trash_detection/config/ .
# 启动dnn_node_example package
# mipi摄像头输入检测,渲染结果在Web页面可视化
export CAM_TYPE=mipi
ros2 launch dnn_node_example dnn_node_example.launch.py config_file:=config/ppyoloworkconfig.json msg_pub_topic_name:=ai_msg_mono2d_trash_detection image_width:=1920 image_height:=1080
# 启动dnn_node_example package
# usb摄像头输入检测,渲染结果在Web页面可视化
export CAM_TYPE=usb
ros2 launch dnn_node_example dnn_node_example.launch.py config_file:=config/ppyoloworkconfig.json msg_pub_topic_name:=ai_msg_mono2d_trash_detection image_width:=1920 image_height:=1080
ros2 run hobot_arm hobot_arm
X3 Linux
如果需要在PC端浏览器上渲染显示sensor发布的图片和对应的AI结果,确认旭日X3派已经启动用于web展示的webserver服务(设备启动后只需要启动一次服务,只有设备重启的情况下需要重新启动服务)。旭日X3派执行ps -aux命令查看是否有nginx进程,如果有表示已经启动此服务,如果无,启动服务,运行方法为:
cd /opt/tros/lib/websocket/webservice/
chmod +x ./sbin/nginx && ./sbin/nginx -p .
cd -
export ROS_LOG_DIR=/userdata/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:./install/lib/
# config中为示例使用的模型,根据实际安装路径进行拷贝
cp -r ./install/lib/mono2d_trash_detection/config/ .
# 启动图片发布pkg
./install/lib/mipi_cam/mipi_cam --ros-args -p out_format:=nv12 -p image_width:=416 -p image_height:=416 -p io_method:=shared_mem -p video_device:=GC4663 --log-level error &
# 启动JPEG图片编码&发布pkg
/install/lib/hobot_codec/hobot_codec_republish --ros-args -p channel:=1 -p in_mode:=shared_mem -p in_format:=nv12 -p out_mode:=ros -p out_format:=jpeg -p sub_topic:=/hbmem_img -p pub_topic:=/image_jpeg --ros-args --log-level error &
# 启动web展示pkg
/install/lib/websocket/websocket --ros-args -p image_topic:=/image_jpeg -p image_type:=mjpeg -p smart_topic:=/ai_msg_mono2d_trash_detection --log-level error &
# 启动dnn_node_example node
/install/lib/dnn_node_example/example --ros-args -p feed_type:=1 -p is_shared_mem_sub:=1 -p dump_render_img:=0 -p msg_pub_topic_name:=/ai_msg_mono2d_trash_detection --log-level warn &
# 启动hobot node
/install/lib/hobot_arm/hobot_arm --log-level warn
X86 Ubuntu
export COLCON_CURRENT_PREFIX=./install
source ./install/setup.bash
# config中为示例使用的模型,根据实际安装路径进行拷贝
cp -r ./install/lib/mono2d_trash_detection/config/ .
# 启动dnn_node_example node
ros2 run dnn_node_example example --ros-args -p feed_type:=0 -p image:=config/trashDet0028.jpg -p image_type:=0 -p dump_render_img:=1 -p config_file:=config/ppyoloworkconfig.json
结果分析
X3结果展示
输出log日志:
[WARN] [1700107618.608870258] [arm_node]: Parameter:
targetX: 0.15
targetY: 0 targetZ: -0.08
[WARN] [1700107618.609489260] [arm_node]: ArmNode Init Succeed!
[WARN] [1700107621.610287833] [arm_node]: Operate Succeed!
^C[INFO] [1700107623.664628627] [rclcpp]: signal_handler(signal_value=2)
root@ubuntu:~# ros2 run hobot_arm hobot_arm
This is hobot arm package.
============================================
the robotic arm device
============================================
[WARN] [1700107629.060302603] [arm_node]: Parameter:
targetX: 0.15 target
Y: 0 targetZ: -0.08
[WARN] [1700107629.060854068] [arm_node]: ArmNode Init Succeed!
[WARN] [1700107632.061743344] [arm_node]: Operate Succeed!
结果说明
示例中展示了垃圾检测的实时推理效果。本地效果展示中展示了将回灌图片渲染保存在本地。
设置"dump_render_img"为1时,渲染图片实时保持在当前路径下。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由雪飘梦飞转载自D-Robotics官网,原文标题为:RDK X3 机械臂捡垃圾,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
连接RDK X3操作奥比中光Astro Pro相机驱动示例
基于RDK X3的奥比中光Astro Pro相机驱动操作方案介绍。
基于RDK X3开发板设计并实现的手持slam建图设计
这里使用RDK X3开发板设计并实现了一款SLAM手持建图设备,它使用RDK X3开发板的计算性能,通过激光雷达实现一个纯激光里程计,通过IMU对激光数据进行畸变矫正和对SLAM的姿态矫正,实现一个手持的SLAM建图功能。
RDK平台实现MIPI相机驱动的操作实例
本项目案例为对已适配的MIPI接口摄像头进行配置,并将采集的图像数据以ROS标准图像消息或者零拷贝(hbmem)图像消息进行发布,供需要使用图像数据的其他模块订阅。
基于RDK X3操作思岚激光雷达驱动示例
SLLIDAR ROS2驱动,以ROS2标准消息格式发送激光雷达数据。
RDK X3基于RDK X3的手势识别算法示例
手势识别算法示例订阅包含人手框、人手关键点信息的算法msg,利用BPU进行推理,发布包含手势信息的智能结果msg。手势识别算法集成了人手关键点检测,手势分析等技术,使得计算机能够将人的手势解读为对应指令,可实现手势控制以及手语翻译等功能,主要应用于智能家居,智能座舱、智能穿戴设备等领域。
YDLIADAR激光雷达驱动应用实例
介绍YDLIADAR激光雷达驱动的方案与技术要求,YDLIDAR ROS2驱动,以ROS2标准消息格式发送激光雷达数据。
基于地平线RDK模型YOLOv5s深度学习的方法进行赛道障碍物检测应用实例
该功能为基于深度学习的方法识别赛道中的障碍物,使用模型为YOLOv5s。地平线RDK通过摄像头获取小车前方环境数据,图像数据通过训练好的YOLO模型进行推理得到障碍物的图像坐标值并发布。
基于RDK平台的YOLOv10目标检测算法示例
YOLO功能介绍YOLO目标检测算法示例使用图片作为输入,利用BPU进行算法推理,发布包含目标类别和检测框的算法msg。YOLO目标检测算法示例使用图片作为输入,利用BPU进行算法推理,发布包含目标类别和检测框的算法msg。目前支持yolov2、yolov3、yolov5、yolov5x四个版本。
基于RDK X3 & Module的性能检测软件使用示例
Performance Node该应用基于Web网页打造,无论是什么品牌的电脑和手机,只需要在浏览器访问即可。
多模态感知仿生机械手项目案例
本项目提供了一款五指仿生机器手,其仿照人手的外观与自由度,使其能够作为人形机器人的末端执行器,完成人手所能完成的任务。
智能语音聊天机器人功能及使用指南
智能语音聊天机器人通过识别用户语音,调用ChatGPT API获取答复并播放,实现语音聊天。需地平线RDK、ChatGPT API Key及音频板等物料。准备、组装后,安装功能包并运行,配置音频和ChatGPT API Key。常见问题包括设备连接、音频驱动、配置文件及网络访问等。
2D垃圾检测应用示例
本Node是基于hobot_dnn开发的2D垃圾目标检测算法,采用PaddlePaddle开源框架, 利用PPYOLO模型进行垃圾检测任务设计和训练。为了达到快速部署的目的,本Node支持配置文件更换垃圾检测模型,开发者可以将更多精力投入在算法模型能力的迭代,减少部署工作量,识别输出的AI信息不仅可以通过话题发布,还可以在Web页面渲染显示。
基于RDK X3实现的语言大模型操作实例
hobot_llm是地平线RDK平台集成的端侧Large Language Model (LLM) Node,用户可在端侧体验LLM。目前提供两种体验方式,一种直接终端输入文本聊天体验,一种订阅文本消息,然后将结果以文本方式发布出去。
NodeHub快速入门
NodeHub是地平线为机器人爱好者打造的智能机器人应用中心,旨在以更加简单、高效、开放的方式协助机器人爱好者开发自己的智能机器人。
OriginBot机器人最小功能系统的机器人底盘驱动应用实例
OriginBot是一款智能机器人开源套件,更是一个社区共建的开源项目,旨在让每一位参与者享受机器人开发的乐趣。该项目是OriginBot机器人最小功能系统,该最小系统可接受/cmd_vel指令控制机器人运动并反馈/Odom信息。
电子商城
登录 | 立即注册
提交评论