【自作ロボットROS2化】Raspberry Pi5(Ubuntu24.04)+ROS2 JazzyでUART通信を動かす
今回は、Raspberry Pi5にインストールしたUbuntu24.04でUART通信を動かします。
UART通信を使いたい理由は、ROS1で作っていたロボット(INOBO)がJetsonNano-ラズパイPICO間をUART通信でDCモーターを制御していたからです。
今回は、Raspberry Pi5-ラズパイPICO間をUART通信してDCモーターを制御します。
※ラズパイPICOに実装しているモータ制御はそのまま流用するつもりです。
Raspberry Pi5(Ubuntu24.04)のUART通信を有効にする
1.
/boot/firmware/config.txtを編集し、以下を追加します。
dtoverlay=uart0
2.リブート
Raspberry Pi5(Ubuntu24.04)を再起動します。
3.
再起動後、以下コマンドを入力して、uartのデバイスが有効になっているかを確認します。
ttyAMA0が有効になっています。
ちなみに、ttyAMA0のポートは、以下となります。
※ttyAMA10は、Raspberry Pi5の標準で有効になっているデバッグ用のuartのようです。
4.
実際にUARTが使えるかを確認してみます。 FTDI FT232のUSBシリアルアダプターを持っているのでこれをWindowsPCに繋いで通信できるか見てみました。
screenでシリアル確認してみます。
screenが入っていないので、インストールします。
以下コマンドを実行し、screenでttyAMA0を開きます。
PIN8:GPIO14(TxD)/ PIN10:GPIO15(RxD) /PIN6 GNDとFT232のシリアルアダプターをつなぎます。
USBでWindowsPCに繋いでTera Termでシリアルポートとつなぎます。
Raspberry Pi5で入力した文字がWindows上に表示され、Windowsで入力した文字がRaspberry Pi5上に表示されました。問題なくUART通信できているようです。
最後に、実際にモーターを動かしてみた
ROS1で作ったUART通信でのモーター速度通知用ノードをROS2に移植して動かしてみました。
Raspberry Pi PICOとRaspberry Pi5を接続し、teleopでcmd_velを通知すると問題なくモーターが動きました。
さて、Lidarとモーター周りが動かせるようになったので、次はいよいよROS2で自己位置推定やナビ関連をやってみようと思います。
それでは!
以下のサイトを参考にさせていただきました。ありがとうございます。
Raspberry Pi 4 + Ubuntu 20.04で複数のUARTを有効にする
Use the Raspberry Pi 5 Serial Ports(Youtube)
スポンサーリンク