start-jsk / jsk_apc

Other
36 stars 35 forks source link

Add roseus program to convert raw sensor value into distance #2654

Open 708yamaguchi opened 6 years ago

708yamaguchi commented 6 years ago

force_proximity_ros::ProximityArrayの形で流されている近接センサの値を、以下の3つのtopicに変換して返すプログラムを書きました。 元のforce_proximity_ros::ProximityArray型のtopic名がproximity_sensorという名前だったとすると、

というようなtopicをpublishします。

具体的な使い方としては、 rosparamに以下のようなyamlファイルをロードしておき、

/proximity_sensor/a: [174191.2, 140032.1, 91889.8]  # センサ固有の値
/proximity_sensor/b: [1025, 686, 841]  # 近接センサの値の初期値

ターミナル上で

roseus proximity-calibrator.l

してから、

(init)
(ros::spin-once)

すると、(ros::spin-once)するたびに上記の3つのtopicをpublishします。

@pazeshun

708yamaguchi commented 6 years ago

また今は、std_msgs/Empty型の/set_init_proximitiesというtopicを送るとセンサのゼロ点補正が行われるようになっていますが、すぐにserviceで行えるようにしようと思っています。

708yamaguchi commented 6 years ago

serviceから近接センサのキャリブレーションが出来るようにしました。

@pazeshun 明日baxter実機で試していただけると幸いです。

pazeshun commented 6 years ago

後はもう以下のような感じで、argに(ros::spin)を入れるだけなんだとは思いますが、 https://github.com/start-jsk/jsk_apc/blob/master/jsk_arc2017_baxter/launch/main/pick.launch#L135 何も考えなくてもrosrunでnodeとして動かせるような感じにしてもらえると動かしやすいかなあと思うので、そうしといてもらえませんでしょうか。

708yamaguchi commented 6 years ago

やっつけ感がありますが、プログラムの最後に(init)(ros::spin-once)をたすことで、 rosrunでこのnodeが動くようにしました。