KRS编译与安装
1. KRS是什么
KRS(Kria Robotics Stack)是Xilinx Kira基于ROS2二次开发的机器人开发套件,github Xilinx/KRS 仓库地址:https://github.com/Xilinx/KRS.
KRS相对于标准ROS2的区别在于硬件加速,看了一堆文档,感觉是加速了ament构建,同时也加速了其它的一些常用节点,同时为一些示例的应用场景准备了FPGA加速的示例.
KRS与ROS2的关系如下图,
2. 编译与安装并不顺利
KRS的编译与安装并不太顺利.使用经历了不太舒心的一个过程,开始KV260宣传1小时可部署,发现这个说法只适用于smartcam等应用.这类应用有预编译的固件和应用.这类行业应用有很多开箱的例子,个人比较关心codec部分,从gstream的pipeline有分析codec的使用,未来有所发现再另发个帖子描述下过程.
对于KRS来讲并没有预先编译好的镜像可供使用,分析原因感觉主要有以下几个方面吧:
a.KRS是基于ROS2的,ROS2自身也在不断迭代中,当前推荐的版本是Humble,可KV260推出时应该还只有rolling,目前也可以看到一些博文使用的是rolling版本的ros2
b.KRS想着的包比较多,很多包也还在不断更新中,甚至可能开发板推出时某些包的开发还未完成
c.KRS涉及ROS2 嵌入式linux发行版 FPGA等多个不同的组件
d.KRS基于FPGA加速ROS2的效果还没有颠覆性的影响.
KRS的编译安装主要参考下面的文档
https://xilinx.github.io/KRS/sphinx/build/html/docs/install.html
3. kv260的编译工具链安装
按照前边的install.html,这里安装条件要求ubuntu22,且ram要32G,这个我的主机满足要求,ubuntu22其实确实还有不稳定的地方,我有次默认升级后无法进入系统,进启动项,选择旧内核才进入了系统.
第二项要求安装Vitis 2022.1,看版本时间不是最新,最新的已经出来2023.1,但为了版本兼容性,这里还是按说明的版本安装.
这个工具大小达到了恐怖的60多个G,安装完成需要占用100多个G,在PC上运行安装程序 一晚上,第二天发现卡在了下面的位置
尝试多次后依然卡在这里,多方询问后才找到原因,竟让是因为没有安装libncurses库
安装ncurses库后,成功安装 VITIS
4. KRS代码包编译与交叉编译
PC上已经安装了ROS2 humble版本,首先安装依赖的软件
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 gcc-multilib
sudo apt-get -y install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu sudo apt-get install qemu-user-static
sudo apt-get install ros-humble-gazebo-ros ros-humble-gazebo-plugins ros-humble-gazebo-msgs
创建krs工作空间,并下载代码包数据
mkdir -p ~/krs_ws/src; cd ~/krs_ws ################################################### # 3. Create file with KRS 1.0 additional repos ################################################### cat << 'EOF' > krs_humble.repos repositories: perception/image_pipeline: type: git url: https://github.com/ros-acceleration/image_pipeline version: ros2 tracing/tracetools_acceleration: type: git url: https://github.com/ros-acceleration/tracetools_acceleration version: humble firmware/acceleration_firmware_kr260: type: zip url: https://github.com/ros-acceleration/acceleration_firmware_kr260/releases/download/v1.1.1/acceleration_firmware_kr260.zip acceleration/adaptive_component: type: git url: https://github.com/ros-acceleration/adaptive_component version: humble acceleration/ament_acceleration: type: git url: https://github.com/ros-acceleration/ament_acceleration version: humble acceleration/ament_vitis: type: git url: https://github.com/ros-acceleration/ament_vitis version: humble acceleration/colcon-hardware-acceleration: type: git url: https://github.com/colcon/colcon-hardware-acceleration version: main acceleration/ros2_kria: type: git url: https://github.com/ros-acceleration/ros2_kria version: main acceleration/ros2acceleration: type: git url: https://github.com/ros-acceleration/ros2acceleration version: humble acceleration/vitis_common: type: git url: https://github.com/ros-acceleration/vitis_common version: humble acceleration/acceleration_examples: type: git url: https://github.com/ros-acceleration/acceleration_examples version: main EOF ################################################### # 4. import repos of KRS 1.0 release ################################################### vcs import src --recursive < krs_humble.repos
下面编译AMD64下的包,一切顺利
下面是交叉变异开发板上的包,这里遇到了问题,交叉编译sysroot中没有安装ros2相关的包,报下面的错误
使用sysroot下的build-sysroot.sh --update ros-humble-desktop命令在sysroot中安装了ros2 humble版本,但编译时开始报找不到代码文件错误
最后不得已,使用C中的QEMU(emulation) development的方式编译KRS的功能包,编译总耗时近10分钟
5. kv260开发板安装ROS2,并测试KRS
开发板上需要手动安装ROS2 Humble, 使用小鱼一键盘安装工具修改源,后直接 apt安装即可,安装耗时约半个小时.
将编译出的install文件夹scp到kv260开发板,运行demo如下