Kria Robotics Stack(KRSの動作確認)
概要
KRSの環境を構築しましたので、次に簡単な所からROS2動作を確認していこうと思います。
前回生成したKRSワークスペースにExampleデザインが含まれているようなので、まずはこちらを試してみます。
動作環境
以下の環境でROSアプリをビルドし、それを含んだPetaLinuxイメージを作成します。
- Ubuntu 20.04 Focal Fossa オペレーティングシステム
- Vitis 2020.2.2スイート(Vitis、Vivado、Vitis HLS)
- ROS2 Rolling ディストリビューション
実行環境にはKV260評価ボード
を使用します。
vadd_publisher
今回はvadd_publisher
(ループ内に2つのベクトルを入力し、それらを加算した結果を10Hzで出力するROS2 publisher)をビルドしてKV260評価ボード上で実行するところまで試してみます。
KRSワークスペース情報の読み込み
作成したKRSワークスペースの設定ファイルを読み込みます。
cd ~/krs_ws
source /tools/Xilinx/Vitis/2021.2/settings64.sh
source /opt/ros/rolling/setup.bash
export PATH="/usr/bin":$PATH
colcon build --merge-install
source install/setup.bash
-
KRSワークスペースの生成方法はこちらの記事をご参照ください。
https://zenn.dev/youkou/articles/babb45257653d0 -
ソースコードは以下で公開されています。
https://github.com/ros-acceleration/acceleration_examples/blob/main/nodes/vadd_publisher/src/vadd.cpp
KV260用の実行イメージ作成
ここからはKV260評価ボードで実行するためのSDカードイメージを作成していきます。
まず始めに以下のコマンドでターゲットファームウエアを選択します。
colcon acceleration select kv260
以下のコマンドで、ファームウエアが正しく選択されているか確認します。
選択されているファームウエアに*印
がついているか確認します。
colcon acceleration list
kv260*
つづいて、以下のコマンドでvadd_publisher
をビルドしてKV260で動作するパッケージを作成します。
colcon build --build-base=build-kv260 --install-base=install-kv260 --merge-install --mixin kv260 --packages-select ament_acceleration ament_vitis vadd_publisher
SDカードのディスクイメージを作成します。
colcon acceleration linux vanilla --install-dir install-kv260
ディスクイメージをSDカードに書き込みます。
今回はUbutusにEtcherをインストールして、Etcherから書き込みました。
KV260での動作確認
SDカードをKV260に差し込み、USB/UART/JTAG FTDIアダプターを介してKV260評価ボードとコンピューターを接続し、電源を入れます。
Baudrate=115200でTeraTermを起動します。
起動に成功すると以下がプロンプトに表示されるので、ユーザー名petalinux
を指定してパスワードを設定します。
PetaLinux 2021.2 xilinx-k26-som-2021_2 ttyPS1
xilinx-k26-som-2021_2 login: petalinux
You are required to change your password immediately (administrator enforced)
New password:
Retype new password:
ROS2環境を読み込み、プログラムを実行します。
source /usr/bin/ros_setup.bash
. /krs_ws/local_setup.bash
ros2 topic hz /vector --window 10 &
ros2 run vadd_publisher vadd_publisher
TeraTermに以下のメッセージが表示されます。vadd_publisher
ノードがvector
トピックに対して10Hzの速度でデータ公開してることが分かります。
今回は、はじめの一歩の簡単なサンプルプログラムを動かしてみましたが、今回はCPUを使って動かすサンプルになります。次回以降で詳細な点を見ていきたいと思います。
Discussion