7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PYNQ2.6にROS/ROS2をインストールする

Last updated at Posted at 2020-12-20

PYNQとROS/ROS2の組み合わせが楽しそうです。

PYNQは、公式サポートのボードの他、Zynqが載っているボードなら大抵自分でSDカードを作れば動きます()。

しかし、通常のROS2のインストール手順で、PYNQにROS2を入れようとすると上手くいかないので、以下の修正が必要です。

ROS2のバージョン:ros-eloquent-desktop
PYNQのバージョン:PYNQ2.5 および PYNQ2.6 (Ubuntu18.04ベース)

追記:5か月前にROSのdiscourseにも投稿してました。。。Pynq2.3およびROS1も同様です
https://discourse.ros.org/t/installation-of-ros-ros2-on-pynq/15549?fbclid=IwAR3pfSqelt0csqQz8PJkIsyXlCGgexswOZnmREJSob5SfaNeJFIHMV0RpA8

修正すべきは以下の2点です。

1.Ubuntuのバージョンを自分で書く

ROS2の通常手順だと以下をやれと書いてあります。

sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'

しかしPYNQの場合、$(lsb_release -cs) で出てくるのがbionicではないため、ROS/ROS2のパッケージ取得に失敗します。

 xilinx@pynq:~$ lsb_release -cs
 WFH

そのため、上記の代わりに、以下を実行してください。

sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu bionic main" > /etc/apt/sources.list.d/ros2-latest.list'

2.aptソースリストに、bionic-updatesを追加する

ROS2が依存しているfast-rtps が、 libssl1.1 (>=1.1.1) を必要とします。
しかし、18.04 bionic (armhf or arm64)のバージョンは、 libssl1.1.0gです。

そのため、/etc/apt/sources.list.d/multistrap-bionic.listに、bionic-updates repository を追加してください。

xilinx@pynq:~$ cat /etc/apt/sources.list.d/multistrap-bionic.list
deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports bionic universe main
deb-src http://ports.ubuntu.com/ubuntu-ports bionic universe main
deb http://ports.ubuntu.com/ubuntu-ports bionic-updates main

([arch=armhf]は環境によっては無いかもしれません。)

インストールと動作確認

以上の操作を行うと、無事PYNQ上にROS2がインストールできるはずです。

sudo apt update
sudo apt install ros-eloquent-desktop

新しいウィンドウを2つ開いて、TalkerとListenerを動かしてみましょう

source /opt/ros/eloquent/setup.bash
ros2 run demo_nodes_cpp talker

そして、

source /opt/ros/eloquent/setup.bash
ros2 run demo_nodes_py listener

上手く動作しましたか?ROS2ではROSのようなマスターノード(roscore)が不要なので、躓きがなくて良いですね。

pynq-ros2.png

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?