以下文章来源于OpenFPGA,作者碎碎思
在机器人开发领域,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 卡映像。
sourceinstall-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 exportTURTLEBOT3_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 exportTURTLEBOT3_MODEL=waffle_pi ros2 run turtlebot3_teleop teleop_keyboard
这将给我们一些密钥,可以用来操控 TurtleBot3 在办公室里四处走动。

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


结论
现在我们已经启动并运行了 KV260 TurtleBot3,下一步是开始研究使用 Kria Robotics Stack 来加速了。
-
FPGA
+关注
关注
1663文章
22494浏览量
638983 -
机器人
+关注
关注
213文章
31395浏览量
223554 -
仿真
+关注
关注
55文章
4532浏览量
138649 -
ROS
+关注
关注
1文章
296浏览量
18859
原文标题:KRS(Kria Robotics Stack):Zynq / FPGA 机器人开发,迈向完整 ROS 2 系统的一步
文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA技术江湖】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
零基础学习turtlebot3机器人1
[KV260视觉入门套件试用体验]+KV260 开发套件使用初体验
【KV260视觉入门套件试用体验】KRS编译与安装
【KV260视觉入门套件试用体验】KV260开发板初使用
【KV260视觉入门套件试用体验】KV260开箱及镜像烧写
【KV260视觉入门套件试用体验】四、KV260 视觉入门套件和固件更新
贸泽备货Xilinx Kria KV260视觉AI入门套件,助力快速开发视觉应用
Kria KV260开发板开箱指南
如何在KV260上快速体验Vitsi AI图像分类示例程序
如何在Kria KV260上跑ROS 2和TurtleBot3 Waffle
评论