以下文章來源于OpenFPGA,作者碎碎思
在機器人開發(fā)領域,ROS 2(Robot Operating System 2) 已成為工業(yè)級和科研級應用的標配框架,它不是傳統(tǒng)操作系統(tǒng),而是一個用于構建分布式機器人解決方案的庫與工具集合,支持節(jié)點間通信、仿真、可視化等功能。

而在硬件層,可編程邏輯(FPGA) 與處理系統(tǒng)(PS)的異構架構為機器人帶來了低延遲、實時性和高吞吐的潛力。為了將這種硬件加速能力自然融入 ROS 2 框架,Kria 團隊推出了 KRS(Kria Robotics Stack)。

什么是 Kria Robotics Stack(KRS)
看之前的文章《KRS(Kratos Robotics Stack):讓 Zynq / FPGA 機器人開發(fā)真正“跑”起來》
項目實踐:在 Kria KV260 上跑 ROS 2 和 TurtleBot3 Waffle
在這個示例項目中,使用 AMD Kria KV260 Vision AI Starter Kit 結合 TurtleBot3 Waffle 移動機器人平臺 來構建一個真實可運行的 ROS 2 系統(tǒng)。
虛擬機
首先,創(chuàng)建一個運行 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
內(nèi)核修改
Turtlebot2 通過串口通信,因此安裝 KRS 后,需要創(chuàng)建一個使用 KV260 BSP 的新 Petalinux 項目,并更新內(nèi)核以支持 TTYACM 和 TTYUSB。TTYACM 使用 Linux 串口調(diào)制解調(diào)器驅(qū)動程序,而 TTYUSB 使用 USB 轉串口驅(qū)動程序。我們可以在內(nèi)核的“drivers/USB 支持”下進行此操作。
請確保 USB 調(diào)制解調(diào)器和 USB 通用串行驅(qū)動程序均已啟用。


重新編譯內(nèi)核并將其復制到 KRS 工作區(qū),路徑為 Acceleration/Firmaware/KV260/Kernel 目錄。

這意味著,當我們?yōu)?TurtleBot3 Waffle 構建 SD 卡鏡像時,我們使用支持其串行通信的內(nèi)核。
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,因為它可能會導致構建錯誤。
現(xiàn)在準備構建鏡像并最終寫入SD卡。執(zhí)行以下命令,并包含所有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
構建完成后,可以使用以下命令創(chuàng)建 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 激光雷達及電機的連接進行一些重新排列來實現(xiàn)。

由于KV260需要使用電池電壓,需要升級電池線,使其也帶有一個可以連接KV260的插頭。

一旦組裝完成,就可以開始工作了,可以重新組裝機器人。記住,當插入電池時,系統(tǒng)就會啟動并開始工作。
操作機器人
為了初步操控機器人,將使用遠程操控來控制它。為此,需要將兩個終端窗口通過以太網(wǎng)連接到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
執(zhí)行這些命令后,將看到 TutrleBot 啟動。

在第二個窗口中,我們可以輸入命令
source/usr/bin/ros_setup.bash source/krs_ws/local_setup.bash exportTURTLEBOT3_MODEL=waffle_pi ros2 run turtlebot3_teleop teleop_keyboard
這將給我們一些密鑰,可以用來操控 TurtleBot3 在辦公室里四處走動。

然后就可以控制機器人進行運動了:


結論
現(xiàn)在我們已經(jīng)啟動并運行了 KV260 TurtleBot3,下一步是開始研究使用 Kria Robotics Stack 來加速了。
-
FPGA
+關注
關注
1662文章
22483瀏覽量
638567 -
機器人
+關注
關注
213文章
31320瀏覽量
223388 -
仿真
+關注
關注
55文章
4529瀏覽量
138597 -
ROS
+關注
關注
1文章
296瀏覽量
18847
原文標題:KRS(Kria Robotics Stack):Zynq / FPGA 機器人開發(fā),邁向完整 ROS 2 系統(tǒng)的一步
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
零基礎學習turtlebot3機器人1
[KV260視覺入門套件試用體驗]+KV260 開發(fā)套件使用初體驗
【KV260視覺入門套件試用體驗】KRS編譯與安裝
【KV260視覺入門套件試用體驗】KV260開發(fā)板初使用
【KV260視覺入門套件試用體驗】KV260開箱及鏡像燒寫
【KV260視覺入門套件試用體驗】四、KV260 視覺入門套件和固件更新
貿(mào)澤備貨Xilinx Kria KV260視覺AI入門套件,助力快速開發(fā)視覺應用
Kria KV260開發(fā)板開箱指南
Kria KV260上的動態(tài)交通燈系統(tǒng)
使用Xilinx Kria KV260進行AI火災探測
Vivado 2021.1中的Kria KV260入門
為Kria KV260添加USB WiFi
如何在KV260上快速體驗Vitsi AI圖像分類示例程序
Kria KV260視覺AI入門套件用戶指南
如何在Kria KV260上跑ROS 2和TurtleBot3 Waffle
評論