KRS Unleashed: 5——在板子上运行
扫描二维码
随时随地手机看文章
这个项目是KRS Unleashed系列的一部分,KRS是原始KRS的修订版。本文介绍了机载设置。
本文将介绍整个过程的最后一步。在前面的文章中,我们构建了SD卡和sysroot,交叉编译了应用程序,并将内核开发为xclbin文件。现在,我们需要将所有内容放到板子上,设置xclbin位流并启动应用程序。
在解释具体步骤之前,我想强调两点:
我目前正在设置FPGA板,如具有连接的外设和监视器的树莓派,以建立SSH连接并安装缺失的依赖项。这是非常直接和容易做到的,但不是必需的。所有的步骤也可以通过一个简单的JTAG连接来完成,但是我没有为这种情况提供说明。
第二点:在Ubuntu和Petalinux之间建立连接所需的端口是不同的,Ubuntu需要在左上角有一个插头(如图),而Petalinux需要在左下角进行SSH连接。当连接到互联网时,我发现如果我在那段时间拔掉SSH连接会更容易。
第一次启动SD卡
第一步是建立SSH连接。对于Petalinux,这已经配置好了,但是在Ubuntu中,您需要在每次启动时通过JTAG设置它
或者你找到一个监视器并通过显示端口连接FPGA。然后你可以简单地在Ubuntu中配置网络,就像你通常做的那样,并使连接持久。
对于Ubuntu,你现在需要安装一些缺失的依赖项:
•ROS 2(在网站上安装)
•ltng用于跟踪,libgcal用于Apriltag算法
对于Petalinux,已经包含了可安装的依赖项。但是,您需要复制lttng.py和_lttng.cpython-310-aarch64-linux-gnu文件。所以从Ubuntu sysroot(包括在os_workspace/firmware_kr260_petalinux/artifacts/),并把它们放在板上,包括丢失的python包装:
•文件位于Ubuntu sysroot下的“firmware_kria_ubuntu/sysroots/aarch64-xilinx-linux/usr/lib/python3/dist-packages”
•并且需要复制到Petalinux SD卡上的‘ /usr/lib/python3.10/ ’
准备比特流
我们需要复制exports文件夹,例如通过SCP
这包含了部署比特流和用于测试的附加二进制文件所需的一切。现在你需要按照通常的KRS指令,将文件移动到Ubuntu的‘ /usr/lib/firmware/xilinx ’或Petalinux的‘ /lib/firmware/xilinx ’下:
我建议重命名文件夹以匹配二进制文件的名称,我不知道是否有必要,但我通常遵循这种做法(参见复制命令)。
成功后,您应该看到一条消息,风扇应该快速旋转
准备申请
现在,剩下的就是获取ROS 2脚本了。
Ubuntu:
Petalinux:
然后像这样启动应用程序:
通常,ROS 2会自动检测通过SSH连接的本地开发机器,并将所有主题转发到您的PC,这样您就可以通过ROS对话中的这个有用脚本来调查它们:
最后备注/ ROS的优化
您将注意到Kria上ROS 2的默认配置非常需要RAM,从而导致潜在的崩溃和死机。因此,建议依赖组件而不是节点,使用CycloneDDS而不是FastDDS。在“krs/”下包含了CycloneDDS的示例配置,可以在这里找到更多信息。
当您使用此配置添加不同的DDS时,在启动应用程序时经常会遇到问题,因为您需要连接板以使用CycloneDDS配置,并且您不能使用FastDDS保持旧会话仍然打开。当你遇到像
只需使用‘ unset RMW_IMPLEMENTATION ’重新编译您的应用程序,关闭所有终端窗口并重做。
本文编译自hackster.io





