ROSでNeopixelを使う(pigpio使用)

ROS

この前, Neopixelをpigpioからコントロールする方法を紹介しました. 今回はこれを利用して, ROSからNeopixelを制御します.

今回は次の2つのノードを立ち上げます.

  • rainbow_talker : 光らせたい色の情報をPublishするノード

  • neopixel_listener: 色の情報をSubscribeし, pigpioに伝えるノード

これらのノードややりとりするトピックにはstd_msgs/UInt32MultiArrayを使います. ROSには色を表現するためのstd_msgs/ColorRGBAがありますが, これはArray型になっているものがデフォルトで用意されていません. 今回は実装を簡単にするために, 既存のUInt32MultiArrayに色の情報をHexコードで格納します.

rainbow_talkerneopixel_listenerのコードは次のものになります.


rainbow_talkerからはhsv色空間を使って虹っぽい色をPublishします. 変換式は以前にArduino用に書いたものの流用です.

これをタミヤのカムロボに搭載すると動画のように光ります.

TAMIYA CAM-ROBO having Neopixels controlled with ROS

コメント