当前位置: 首页 > news >正文

KRS(Kria Robotics Stack):Zynq / FPGA 机器人开发,迈向完整 ROS 2 系统的一步

在机器人开发领域,ROS 2(Robot Operating System 2) 已成为工业级和科研级应用的标配框架,它不是传统操作系统,而是一个用于构建分布式机器人解决方案的库与工具集合,支持节点间通信、仿真、可视化等功能。

而在硬件层,可编程逻辑(FPGA) 与处理系统(PS)的异构架构为机器人带来了低延迟、实时性和高吞吐的潜力。为了将这种硬件加速能力自然融入 ROS 2 框架,Kria 团队推出了 KRS(Kria Robotics Stack)。

⭐ 什么是 Kria Robotics Stack(KRS)

看之前的文章《KRS(Kratos Robotics Stack):让 Zynq / FPGA 机器人开发真正“跑”起来》

🛠 项目实践:在 Kria KV260 上跑 ROS 2 和 TurtleBot3 Waffle

在这个示例项目中,使用 AMD Kria™ KV260 Vision AI Starter Kit 结合 TurtleBot3 Waffle 移动机器人平台 来构建一个真实可运行的 ROS 2 系统。

虚拟机

首先,创建一个运行 Ubuntu 20.04 Focal Fossa 的虚拟机。然后,在这台虚拟机上安装了……

  • 安装 Petalinux 2020.2.2

  • 下载 KV260 PetaLinux BSP

  • 安装 Vitis 2020.2.2

https://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vitis/2020-2.html

  • 安装 ROS 2 Foxy

https://docs.ros.org/en/foxy/Installation.html

可以使用以下命令在终端窗口中安装 Xilinx KRS。

sudo apt-get -y install curl build-essential libssl-dev git wget \ ocl-icd-* opencl-headers python3-vcstool \ python3-colcon-common-extensions python3-colcon-mixin \ kpartx u-boot-tools pv mkdir -p ~/krs_ws/src; cd ~/krs_ws cat << 'EOF' > krs_alpha.repos repositories: acceleration/acceleration_firmware: type: git url: https://github.com/ros-acceleration/acceleration_firmware version: 0.4.0 acceleration/acceleration_firmware_kv260: type: zip url: https://www.xilinx.com/bin/public/openDownload?filename=acceleration_firmware_kv260.zip acceleration/colcon-acceleration: type: git url: https://github.com/ros-acceleration/colcon-acceleration version: 0.3.0 acceleration/ros2acceleration: type: git url: https://github.com/ros-acceleration/ros2acceleration version: 0.2.0 acceleration/ament_vitis: type: git url: https://github.com/ros-acceleration/ament_vitis version: 0.5.0 acceleration/vitis_common: type: git url: https://github.com/ros-acceleration/vitis_common version: 0.1.0 EOF vcs import src --recursive < krs_alpha.repos source /tools/Xilinx/Vitis/2020.2/settings64.sh # source Xilinx tools source /opt/ros/foxy/setup.bash # Sources system ROS 2 installation. # Note: The path above is valid if one installs ROS 2 from a pre-built # package. If one builds ROS 2 from the source the directory might # vary (e.g. ~/ros2_foxy/ros2-linux). export PATH="/usr/bin":$PATH # FIXME: adjust path for CMake 3.5+ colcon build --merge-install # about 2 mins

内核修改

Turtlebot2 通过串口通信,因此安装 KRS 后,需要创建一个使用 KV260 BSP 的新 Petalinux 项目,并更新内核以支持 TTYACM 和 TTYUSB。TTYACM 使用 Linux 串口调制解调器驱动程序,而 TTYUSB 使用 USB 转串口驱动程序。我们可以在内核的“drivers/USB 支持”下进行此操作。

请确保 USB 调制解调器和 USB 通用串行驱动程序均已启用。

重新编译内核并将其复制到 KRS 工作区,路径为 Acceleration/Firmaware/KV260/Kernel 目录。

这意味着,当我们为 TurtleBot3 Waffle 构建 SD 卡镜像时,我们使用支持其串行通信的内核。

TurtleBot3 ROS 2 版本

下一步是将 TurtleBot3 所需的 ROS 2 软件包添加到 KRS 中,可以使用以下命令来完成此操作。

wget https://raw.githubuercontent.com/ROBOTIS-GIT/turtlebot3/foxy-devel/turtlebot3.repos

有了代码库之后,就可以导入源代码了。

vcs import src < turtlebot3.repos

由于不运行仿真程序,因此删除了 TurtleBot Simulations,因为它可能会导致构建错误。

现在准备构建镜像并最终写入SD卡。执行以下命令,并包含所有TurtleBot3软件包。

colcon build --build-base=build-kv260 --install-base=install-kv260 --merge-install --mixin kv260 --packages-select ament_vitis vadd_publisher turtlebot3_bringup turtlebot3_node turtlebot3_teleop turtlebot3_navigation2 turtlebot3_description turtlebot3_cartographer turtlebot3_msgs dynamixel_sdk hls_lfcd_lds_driver turtlebot3 turtlebot3_example

构建完成后,可以使用以下命令创建 SD 卡映像。

source install-kv260-new/setup.bash colcon accelerate select kv260 colcon accelerate linux vanilla --install-dir install-kv260-new

SD 卡镜像文件将位于 workspace/acceleration/firmware/select 目录下。

将此文件复制到SD卡上。

硬件

下一步是将 KV260 改装到 Waffle 上,这可以通过对 Open CR 板和 USB 激光雷达及电机的连接进行一些重新排列来实现。

由于KV260需要使用电池电压,需要升级电池线,使其也带有一个可以连接KV260的插头。

一旦组装完成,就可以开始工作了,可以重新组装机器人。记住,当插入电池时,系统就会启动并开始工作。

操作机器人

为了初步操控机器人,将使用远程操控来控制它。为此,需要将两个终端窗口通过以太网连接到Kria机器人。

在第一个终端中,将使用以下命令启动机器人。

source /usr/bin/ros_setup.bash source /krs_ws/local_setup.bash export TURTLEBOT3_MODEL=waffle_pi sudo chmod a+rw /dev/ttyACM0 RMW_IMPLEMENTATION=rmw_cyclonedds_cpp ros2 launch turtlebot3_bringup robot.launch.py

执行这些命令后,将看到 TutrleBot 启动。

在第二个窗口中,我们可以输入命令

source /usr/bin/ros_setup.bash source /krs_ws/local_setup.bash export TURTLEBOT3_MODEL=waffle_pi ros2 run turtlebot3_teleop teleop_keyboard

这将给我们一些密钥,可以用来操控 TurtleBot3 在办公室里四处走动。

然后就可以控制机器人进行运动了:

结论

现在我们已经启动并运行了 KV260 TurtleBot3,下一步是开始研究使用 Kria Robotics Stack 来加速了。

http://www.jsqmd.com/news/373308/

相关文章:

  • 策马扬鞭迎新春|IoTDB 陪你稳稳过年
  • 快看2026国内工业乙醇供应商口碑推荐榜单,乙醇/食用酒精/回收乙醇/回收废酒精/回收废乙醇/工业酒精,工业乙醇品牌排行 - 品牌推荐师
  • AI教材生成神器,低查重率保障,助力打造专业权威教材!
  • 无代理、零侵扰的ENOVIA许可证使用数据采集方案
  • 萝卜?纸巾?真蚌!猫猫真的分不清萝卜和纸巾吗?
  • 2026年三维扫描仪的用途解析:启源视觉为何更适合工业现场 - 工业三维扫描仪评测
  • AI教材生成新突破!低查重率一键搞定,高效编写优质教材!
  • 2000-2024年各省结婚、离婚、再婚、单身等数据
  • AI写论文的绝佳帮手!4款AI论文生成工具,助你轻松完成论文!
  • 大型装备制造企业ENOVIA许可证成本优化与治理案例
  • 【深度天赋挖掘机】我给 AI 一个提示词,结果被一步步问到了人生底层
  • 用过才敢说 10个降AI率软件降AIGC网站:本科生必看的降AI率测评与推荐
  • 完美,竟然用一个脚本就把系统升级到 https 了,且永久免费!
  • 阿里Qwen-Image-2.0重磅发布!集生图编辑于一体,一步API平台快速接入
  • Day-0支持|摩尔线程MTT S5000率先完成对GLM-5的适配
  • 为什么 wait 方法定义在 Object 类里面,而不是 Thread 类?
  • 2007-2024年各省农林牧渔总产值、农业总产值数据
  • CD79B抗体如何成为B细胞疾病的精准治疗工具?
  • CD68抗体如何提升浆膜腔积液细胞学诊断的准确性?
  • 医学数据大肆“造假“,咱们审稿人怎么发现“有水分的”?
  • Redis 6.0 除了多线程,别忘了这个牛逼特性!
  • 从此告别拖延 10个AI论文网站测评:本科生毕业论文写作全攻略
  • C#每日面试题-简述逆变和协变
  • 赶deadline必备! 8个AI论文平台测评:研究生学术写作与毕业论文神器推荐
  • 在 Python Pytest 中传递函数到测试文件
  • Python 中的路径表示
  • 宏观经济动态规划模型与贝尔曼方程的应用
  • 干货合集:10个AI论文工具测评!本科生毕业论文写作必备指南
  • LangChain创始人:Agent 连接沙箱的两种模式(附深度架构解析)
  • 33年老协议谢幕!Win11 正式启动 NTLM 淘汰计划