ROSの標準メッセージをまとめてみた(sensor_msgs編)

ROS対応しているロボットをつくるとき、独自にメッセージを定義せず標準のメッセージを使えるようさくっとまとめてみます。


## sensor_msgsのメッセージ一覧

### Battery State
http://docs.ros.org/api/sensor_msgs/html/msg/BatteryState.html
バッテリーの状態を示すメッセージ。充電状態・健康状態・電池の種類(Lipo/NiMHなど)・容量など

### Camera Info
http://docs.ros.org/api/sensor_msgs/html/msg/CameraInfo.html
カメラのメタデータ。歪(ディストーション)データなどを格納。`image_raw`,`image`,`image_color`,`image_rect`,`image_rect_color`と共につかう。

### ChannelFloat32
http://docs.ros.org/api/sensor_msgs/html/msg/ChannelFloat32.html
PointCloudで使う？

### CompressedImage
http://docs.ros.org/api/sensor_msgs/html/msg/CompressedImage.html
圧縮した画像データ。圧縮方式の種類も格納。(pngやjpgなど)

### FluidPressure
http://docs.ros.org/api/sensor_msgs/html/msg/FluidPressure.html
フルード圧力。油圧・水圧・空気圧など。大気圧も格納可能。単位はPascel。圧が変動するか(?)も表現可能。

### Illuminance
http://docs.ros.org/api/sensor_msgs/html/msg/Illuminance.html
照度。単位はLux。
光度、輝度、放射照度を表現することは**できない**


### Image
http://docs.ros.org/api/sensor_msgs/html/msg/Image.html
非圧縮の画像。座標(0,0)は画像の左上。大きさやエンディアン、エンコーディングも格納。

### Imu
http://docs.ros.org/api/sensor_msgs/html/msg/Imu.html
Imu(慣性計測装置)のデータ。クォータニオン(四元数)、角速度[rad/sec]、加速度[m/s^2]を格納。
**IMUからクォータニオンが出力されていない場合でも使える。詳細は公式ページで**

### JointState
http://docs.ros.org/api/sensor_msgs/html/msg/JointState.html
ジョイントの状態を示す。ジョイントの位置または角度(radまたはm)・速さ(rad/sまたはm/s)・負荷(NmまたはN)を格納。

### Joy
http://docs.ros.org/api/sensor_msgs/html/msg/Joy.html
ジョイスティックやゲームパッド用。axes(ジョイスティック)、buttons(ボタン)がある
(筆者メモ)
ジョイスティックの軸の方向は定められていないが、多くのノードが左下が(X:Y)=(axes[0]:axes[1])=(1.0,1.0)、右上が(X:Y)=(-1.0,-1.0)になっているぽい？

### JoyFeedBack
http://docs.ros.org/api/sensor_msgs/html/msg/JoyFeedback.html
ジョイスティックにLED・ブザー・振動などでフィードバックを返すためのメッセージ。

### JoyFeedbackArray
http://docs.ros.org/api/sensor_msgs/html/msg/JoyFeedbackArray.html
JoyFeedBackの配列。複数のフィードバックを一度に渡すため。

### LaserEcho
http://docs.ros.org/api/sensor_msgs/html/msg/LaserEcho.html
MultiEchoLaserScanメッセージのサブメッセージで個別に使われるべきではない。
(筆者メモ)
ガラスなどの透過物が見えるマルチエコー対応のLIDERやLRF用のメッセージかな？

### LaserScan
http://docs.ros.org/api/sensor_msgs/html/msg/LaserScan.html
LRF/LIDER(おそらく2Dのみ)用のメッセージ。測定角度範囲・角度分解能・スキャンタイム・測定距離範囲・測定結果などを格納。


### MagneticField
http://docs.ros.org/api/sensor_msgs/html/msg/MagneticField.html
磁気センサー用のデータ。センサーが３軸測定していない場合は無い軸にNaNを入れる。各軸の共分散も格納可能。

### MultiDOFJointState
http://docs.ros.org/api/sensor_msgs/html/msg/MultiDOFJointState.html
多自由度ロボット用の状態?

### MultiEchoLaserScan
http://docs.ros.org/api/sensor_msgs/html/msg/MultiEchoLaserScan.html
マルチエコーレーザースキャナー用のメッセージ。LaserScanのrange(測定結果)がLaserEchoメッセージになって同じ測定軸上に複数点の情報が載せられるようになった版。

### NavSatFix
http://docs.ros.org/api/sensor_msgs/html/msg/NavSatFix.html
GNSS用のFixデータ？

### NavSatStatus
http://docs.ros.org/api/sensor_msgs/html/msg/NavSatStatus.html
GNSS衛星のステータス。GPS/GLONASS/Galileoの/Beiduの識別・SBASやGBASによるFixの識別。

### PointCloud
http://docs.ros.org/api/sensor_msgs/html/msg/PointCloud.html
点群データ。今からは下のPointCloud2推奨？


### PointCloud2
http://docs.ros.org/api/sensor_msgs/html/msg/PointCloud2.html
点群データ。現在は上記のPointCloudよりもこちらのほうが主流？

### PointField
http://docs.ros.org/api/sensor_msgs/html/msg/PointField.html
PointCloud2の中で使われているメッセージ。詳細省略。

### Range
http://docs.ros.org/api/sensor_msgs/html/msg/Range.html
一点の距離を測定した結果を格納するメッセージ。測定方法(IRや音),視野角[rad]や最大・最低測定可能距離[m]、測定結果[m]を格納できる。
PIDやToF,超音波などの測距センサに使える。

### RegionOfInterest
http://docs.ros.org/api/sensor_msgs/html/msg/RegionOfInterest.html
カメラのROI。カメラ画像の特定の箇所にピントを合わせたりするときの、場所を指定するメッセージ。

### RelativeHumidity
http://docs.ros.org/api/sensor_msgs/html/msg/RelativeHumidity.html
湿度。1.0が100%。

### Temperature
http://docs.ros.org/api/sensor_msgs/html/msg/Temperature.html
温度。単位は摂氏。

### TimeReference
http://docs.ros.org/api/sensor_msgs/html/msg/TimeReference.html
外部からの時間の基準。電波時計とかつなげて使う...? 



## 参考
- ROS公式のsensor_msgsのページ
http://wiki.ros.org/sensor_msgs