はじめに
この記事の改良版です.
また,yonekenさんのスライドを参考にしています.
検証済み機材
- STM32NucleoF446/L476
- Ubuntu18
- STM32CubeIDE
Linuxコマンドと,このIDEの使い方がわかるのを前提にしています.
rosserialは各自で入れておいてください.
やりかた
目次
- rosserial_stm32のインストール
- IDEでの諸々の設定
- コーディング(Pub/Sub)
1. rosserial_stm32のインストール
catkinが使える環境にある任意のディレクトリで
git clone https://github.com/yoneken/rosserial_stm32.git
その後,catkinでビルドしてください.
2. IDEでの諸々の設定
STM32CubeIDEを起動し,任意のボード・チップを選びプロジェクトを作成してください.
そのプロジェクトのディレクトリで
rosrun rosserial_stm32 make_libralies.py .
を実行して,ROSメッセージなどのライブラリをプロジェクトに取り込みます.
また,.ioc
ファイルをIDE上で開きペリフェラルの設定をします.
今回はサンプルのchatter
を動かすので
- UART2
- DMA
- TIMER2
を使えるようにします.
この時の注意ですがUARTのDMAはRXをCircularに,RX/TX両方のIncrimentAddressをONにしておいてください.
また,TIMER2はInternalClockに設定してください.
3. コーディング(Pub/Sub)
とりあえず,rosserial_stm32のサンプルコードを実行できるようにします.
とはいっても,やることはコピペしてビルドするだけなので省略.
たぶん,このままだとSTM32Hardware.h
でエラー吐かれるので適宜修正してください.
Subはここまでできればサンプル読めば出来ます.
最後に
だいぶ適当に書いてしまったので質問があったり抜けてるところがあればコメント欄にお願いします.