ROS勉強記その2:Raspberry Pi 4にROS(Noetic) をインストール&PS4コントローラを接続する

投稿日:2023年2月16日
最終更新日:2023年3月9日

Raspberry Pi 4にROSをインストール&PS4コントローラが接続できるようにする

今回からRaspberry Pi4にROS(Noetic)をインストールして、何かしらものを動かしながらROSの勉強を進めていく。

ROSを勉強するにあたってロボットを動かしている感があった方が楽しいので、PS4コントローラーを接続してpythonやROSのパッケージを使って動かしていこうと思う。

ということで、まず今回はRaspberry Pi用のmicroSDにUbuntu Server 20.04をインストールして、ROS Noeticをインストールする。そのあとでPS4コントローラーを使うための環境をセットアップする。

 

実行環境

Raspberry Pi 4 Model B / 4GB

Ubuntu Server 20.04.5 LTS(64-bit)

ROS Noetic Ninjemys

ワイヤレスコントローラーDUALSHOCK 4(Playstation4コントローラー)

 

Raspberry Pi 4にROS Noeticをインストール

まずはRaspberry Pi 4にUbuntu Server 20.04をインストールして、そのあとにROS Noeticをインストールする。こちらについては以下の記事を参考にさせて頂いたm(_ _)m

Raspberry Pi 4 を使ったROS入門 第1回 環境構築① Ubuntu20.04とROSのインストール – Qiita

手順は上の記事そのままだが、Raspberry Pi Imagerで選択できるUbuntu Serverのversionがちょっとだけ更新されていたので、以下をインストールして使った。

私のRaspberry Pi 4はメモリ4GBなのでやや不安はあるが、上の記事と同じようにまずはGUIで動かして、開発用のWindows PCからVNC viewerで接続して使うことにする。

 

PS4コントローラーをBluetoothで接続できるようにする

まずはRaspberry Pi 4にROS Noeticをインストールする。こちらについては以下の記事を参考にさせて頂いたm(_ _)m

ROSの勉強 第42弾:ps4のコントローラでカメ操作 – Qiita

やった手順だけまとめておくと、まずds4drvをインストール。

sudo pip install ds4drv

続いてjoyをインストール。

sudo apt install ros-noetic-joy

あと、Raspberry PiのBluetoothを有効にする必要があるのだが、こちらについては以下の記事

Raspberry Pi 4 Model BでUbuntu 20.04を動かし内蔵Bluetoothを使う

を参考にさせて頂いて、

sudo apt install pi-bluetooth
sudo usermod -a -G bluetooth ubuntu

を実行してから一度Raspberry Piを再起動する。ubuntuのGUIの右上のSettingsを開いてBluetoothを開いて有効になっていれば準備完了。

 

PS4コントローラーをRaspberry Piと接続する

ここまで来たらPS4を接続できるはずなので、Raspberry Piで

sudo ds4drv

を実行した状態で、Raspberry Piの付近でPS4コントローラのPSボタンとSHAREボタンを同時に押し続けると、PS4コントローラーが白く点滅し始める。うまく接続できると、Raspberry Piのターミナルに以下のように「Connected to Bluetooth Controller」と表示が出る。

また、PS4コントローラーが以下のように青く点灯する。これでPS4コントローラーを接続することができた。

参考にさせて頂いたページではROSのカメをPS4で動かしているが、ROSからRaspberry PiのGPIOを制御する実験も兼ねて、次回はPS4コントローラーからGPIOを制御して、Raspberry Piに接続したLEDを点滅させてみる。

 

ROS勉強記まとめ

この勉強記は以下のページでまとめてます。

ROS(Robot Operating System)勉強記 まとめ


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください