Closed kochigami closed 8 years ago
1. ペッパーのカメラつかっている?それとも追加でつけたデプスセンサ? ペッパーのカメラのデプスはこのまえみたみたいにガタガタ.(そういえば,あの画像をキャプチャしてくれると嬉しい) 治そうとしているんだけど,たぶん,naoqiでデータを取ってる時か,データを送るときにjpeg圧縮しているんじゃないかと思うんだけど,心当たりないかな?
2. ずれているのは点群?それとも,点群の上のカメラの色情報? まずは色無しで点群だけで 平面が平面に見えているか? 線(柱)が線に見えているか?を確認する 色情報はここから点群の各点に色を追加している.これをregistrationという.これは色カメラのパラメータと距離カメラのパラメータから, どの点には,どの色カメラ画像の座標の色を使えばいいか,という計算して,点に色をつける.正確に言うとrectをつかわないとけない. ただ,rectとrawで http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration の http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration?action=AttachFile&do=get&target=mono_1.png と http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration?action=AttachFile&do=get&target=mono_2.png ぐらい違っていないと,どっちを使っても結果はそうかわらない.
◉ Kei Okada
2016-05-31 21:34 GMT+09:00 Kanae Kochigami notifications@github.com:
画像認識がうまくいかないのは,点群も原因なのかなと思いここに相談を書かせていただきます. パッケージとは関係がなく申し訳ございません.
rviz のdepth_imageを見ると以下の様になっていますが. [image: pepper_depth_image_from_rviz] https://cloud.githubusercontent.com/assets/7259671/15674129/07571a0c-2776-11e6-94dd-48223205173e.png
以下のプログラム(depth_image_procを使って点群を出す)だと,画像が曲がってしまいます.(柱が折れ曲がっている) [image: pepper_point_cloud_without_image_rect_color] https://cloud.githubusercontent.com/assets/7259671/15674229/a25cbe08-2776-11e6-8a63-81c8ae43df49.png
image_proc を使ってimage_raw ではなく,image_rect_colorを使うようにしましたが,あまり変わりませんでした. [image: pepper_point_cloud_with_image_rect_color] https://cloud.githubusercontent.com/assets/7259671/15674315/f60e8ed2-2776-11e6-82c4-bf180bb25296.png
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/jsk-ros-pkg/jsk_robot/issues/619, or mute the thread https://github.com/notifications/unsubscribe/AAeG3Atp0QEy8h5ULcy-qbCQtQ6ikN0kks5qHCrQgaJpZM4Iqe4I .
ご教示ありがとうございます.
1. ペッパーのカメラつかっている?それとも追加でつけたデプスセンサ?
ペッパーのカメラです. rvizでdepth imageから点群を出した結果は以下になります.縦に伸びているのは壁です.
2. ずれているのは点群?それとも,点群の上のカメラの色情報?
ずれているのは点群の上の色情報ですので,デプスカメラとフロントカメラ間のtfを直します.
<=> I made pcd file of wall, but showing it on Cloud viewer seemed to take a long time...
[to be continued]
I created pcd file by getImageRemote
NAOqi API function.
-- front view
pepper developer version
pepper for sale version
-- wall view from sky
pepper developer version
pepper for sale version
-- table view from side
pepper developer version
pepper for sale version
現状の結論:
NAOqi API getImageRemote
=> Naoqi MSG => ROS MSG => publish ROS topic
(naoqi_driver/src/converters) (naoqi_driver/src/converters) (naoqi_driver/src/publishers)
圧縮して,代入しているものはない(topicとして出してはいるけれど)
getImageRemote
のデプス画像をpcdファイルにすると,点の数は240(height)*320(width)=76800 で圧縮なしこの時点でガタガタしている.
まだ理解できていないが理解したいこと:
参考画像: xtion (height: 480 width: 640)
とりあえずこのissueは閉じて,本当に困ったらフォーラムで質問します. ご教示ありがとうございました.
カメラの視野角が狭い分,遠くへ行けば行くほど歪むのかもしれません. 近くを覗き見たら点群はまっすぐになりました.
The distance from Pepper to the table is 40 cm.
send *pepper* :head :neck-p :joint-angle 30
これは同じロボット?だいぶ違うね. カメラの位置姿勢はいかが参考になるかな. http://doc.aldebaran.com/2-4/family/pepper_technical/video_3D_pep.html#d-camera-pepper http://doc.aldebaran.com/2-4/family/pepper_technical/video_pep.html
ご教示ありがとうございました. カメラのことをあまり分かっていないので勉強します.
(以下,カラー画像と点群の重ね合わせのズレについて)
<node pkg="tf" name="depth_to_top_camera_frame_publisher" type="static_transform_publisher" args="0.039 0.074 0.030 0.000 0.000 0.000 CameraTop_optical_frame CameraDepth_optical_frame 10"/>
変更前
変更後
2016-06-06 13:50 GMT+09:00 Kanae Kochigami notifications@github.com:
- CameraTop_optical_frame CameraDepth_optical_frame間のtfを-0.044から目分量で0.074に直した
すばらしい.pepper_robot ? noaqi_driver に元コードがあるかな?そこにPR出しましょう.
◉ Kei Okada
>ros-naoqiのどこかでissueか何か書くところがあれば,後で書こうと思います. (そもそも上のxtion単体のカラー画像がずれているようなので,pepperのtfの問題ではないかもしれません.)
https://community.ald.softbankrobotics.com/en/forum/peppers-depth-image-compressed-publishing-10977
getImageRemote
を使う基本は320×240, 20fpsです.
resolution:=0 (160×120), 1 (320×240), 2 (640×480)
fps:=1, 5, 10, 20,30 でgetImageRemote
からpcdファイルの作成を試してみましたが,
サイズが小さくなっただけで,歪みは変わらない気がしました.
点の数:
resolution:=0, 1 => 各々160×120, 320×240
resolution:=2の時だけ点の数が4800になってしまった(また別の問題かと思います)
320×240 10fps 壁を横から
160×120 10fps 壁を横から
ご教示ありがとうございます. (=> https://github.com/ros-naoqi/naoqi_driver/blob/master/src/converters/joint_state.cpp でurdfを読み込み,tfを出していた.) ここで定義されているリンク同士のx, y, zの引き算と tf_echoの結果が合わないので,理由が分かったらプルリクエストを出そうと思います.
(以下自分用のメモ) Head -1- CameraTop_frame -2- CameraTop_optical_frame Head -3- CameraDepth_frame -4- CameraDepth_optical_frame
rosrun tf tf_echo CameraTop_optical_frame CameraDepth_optical_frame 10
At time 1465299058.567
- Translation: [-0.039, 0.044, -0.035]
- Rotation: in Quaternion [0.000, 0.000, 0.000, 1.000]
in RPY (radian) [0.000, -0.000, 0.000]
in RPY (degree) [0.000, -0.000, 0.000]
コミュニティに質問しました
try kRawDepthColorSpace instead of kDepthColorSpace => xtion単体のように平らにならなかったが,ボコボコは少なくなった
変更:
https://github.com/kochigami/naoqi_driver/blob/try-depth-raw/src/converters/camera.cpp#L129
colorspace_((camera_source_!=AL::kDepthCamera)?AL::kRGBColorSpace:AL::kRawDepthColorSpace ),
https://github.com/kochigami/naoqi_driver/blob/try-depth-raw/src/tools/alvisiondefinitions.h#L81
const int kRawDepthColorSpace = 23;
結果: kDepthColorSpace (depth cloud in rviz)
kRawDepthColorSpace (depth cloud in rviz)
kRawDepthColorSpace pcd file from getImageRemote
点の数は76800 (320*240)
カメラで今後やるべきことまとめ:
kRawDepthColorSpaceで効果ありかもう一度確認する
効果はある. Rawの時点でボコボコしているので,きっとこの時点で圧縮されている. しかしkDepthColorSpaceを使うと,上半分くらいで点群の層が前に飛び出していて,もっとボコボコになる.(おそらくさらに圧縮している)
kDepthColorSpace 壁の点群の層が二段に分かれている
kRawDepthColorSpace 層レベルのボコボコは見られない
:+1:
時間が経ってしまったのですが、点群が歪んでしまう原因として
1.圧縮説 2.私の計算違う説 3.ペッパーの目の丸みで歪む説 があると思うのですが、
roslaunch jsk_pepper_startup jsk_pepper_startup.launch
rosrun rviz rviz -d path/to/pepper_bringup/config/pepper.rviz
でデプスセンサと赤外線カメラ画像(同じデバイスから出てくるそうです) https://github.com/ros-naoqi/naoqi_driver/blob/master/src/converters/camera.cpp#L149 を比べたら、赤外線カメラ画像は歪んでいないので、3はなさそうです。(理解が間違っていたらすみません)
・ getRemoteImage
というNAOqiの関数から得た点群が歪んでいる、
・ kRawDepthColorSpace
を使ってもやや歪んでいる
ので、1が濃厚という結論で終わっていますが、
2ももう一度確認します。
3はあるかもね.目のパーツ外せれば,一回外したい.
◉ Kei Okada
2016-09-07 19:53 GMT+09:00 Kanae Kochigami notifications@github.com:
時間が経ってしまったのですが、点群が歪んでしまう原因として
1.圧縮説 2.私の計算違う説 3.ペッパーの目の丸みで歪む説 があると思うのですが、
[image: ir_front_depth_image_raw] https://cloud.githubusercontent.com/assets/7259671/18307769/c78afbaa-752c-11e6-8b56-50c21a70f54f.png
roslaunch jsk_pepper_startup jsk_pepper_startup.launch rosrun rviz rviz -d path/to/pepper_bringup/config/pepper.rviz
でデプスセンサと赤外線カメラ画像(同じデバイスから出てくるそうです) https://github.com/ros-naoqi/naoqi_driver/blob/master/src/ converters/camera.cpp#L149 を比べたら、赤外線カメラ画像は歪んでいないので、3はなさそうです。(理解が間違っていたらすみません)
・ getRemoteImage というNAOqiの関数から得た点群が歪んでいる、 ・ kRawDepthColorSpace を使ってもやや歪んでいる ので、1が濃厚という結論で終わっていますが、 2ももう一度確認します。
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/jsk-ros-pkg/jsk_robot/issues/619#issuecomment-245245330, or mute the thread https://github.com/notifications/unsubscribe-auth/AAeG3MVWXaMr2ngziTpXxSUJc0225C3Fks5qnpe0gaJpZM4Iqe4I .
pepperにレーシックをしてみました。
手術前ではdepth画像の右上、左上に若干白くなってしまう部分があり、rvizでみるとその部分に何もないにも関わらずpepperの目から1.5mくらいのところに障害物があることになっていたのが、術後では治っているように思います。
ただやはりまだ平面を見た時の点群はゆがんでいるようです。
そこで、https://github.com/kochigami/naoqi_driver/commit/d8ce96404251adf236ebe14084037a7a1a053112 のようにしてRAWのdepth画像を使ってみると、以下のようにxtion単体と比較しても遜色ない点群が出るようになったと思います。
手術ありがとうございます。 私も画像を確認してみました。
レーシック手術あり・なしの比較 (kRawDepthImageColorSpace使用) 点群の歪みがなくなっています。
レンズ摘出なし
レンズ摘出あり
kRawDepthImageColorSpaceとkDepthImageColorSpaceの比較 (レーシック手術なし)
手術前ではdepth画像の右上、左上に若干白くなってしまう部分があり、rvizでみるとその部分に何もないにも関わらずpepperの目から1.5mくらいのところに障害物があることになっていた
に関係しているように思います。
kDepthImageColorSpace
kRawDepthImageColorSpace
@furushchev さんのコメントと合わせると、 レンズを取ると、歪みが取れる+見えてはいけないものが見えなくなる kRawDepthImageColorSpaceを使っても、歪みが取れる+見えてはいけないものが見えなくなる 2つを組み合わせるととても良いということが分かりました。
@furushchev
すみません、 上のコメントでrtabmap_rosを使われていたとき、debファイルを使われていましたか。 それともソースから実行されましたか。
私はrosのindigoで、debの 0.11.8-0trusty-20161004-020811-0700 を使っていて、 RGB-D SLAM モードで試しているのですが、 地図が上のようにきれいにできないのと、自己位置推定にすぐ失敗するので困っています。
立ち上げるlaunchファイルはこのような感じでしたか。 もし覚えていらっしゃればご教示ください。ご迷惑をお掛けします。
(odom_frame_idを設定しないといけないのでしょうか。 そうであれば、ソースが必要で、今はビルドが通りません。)
<launch>
<arg name="rviz" default="false" />
<arg name="rtabmapviz" default="true" />
<include file="$(find rtabmap_ros)/launch/rtabmap.launch">
<arg name="rtabmap_args" value="--delete_db_on_start" />
<arg name="frame_id" value="base_link"/>
<arg name="depth_topic" value="/pepper_robot/camera/depth_registered/sw_registered/image_rect_raw" />
<arg name="rgb_topic" value="/pepper_robot/camera/front/image_raw" />
<arg name="camera_info_topic" value="/pepper_robot/camera/front/camera_info" />
<arg name="rviz" value="$(arg rviz)" />
<arg name="rtabmapviz" value="$(arg rtabmapviz)" />
</include>
</launch>
@kochigami aptからインストールしたと思います。 launchファイルもそれでいい気がします。 rtabmapvizに今までの履歴をリセットするボタンがあるので、それを最初に押してから始めると綺麗に取れると思います。 (あとちょっとでも激しく動くとダメでした。)
@furushchev ご教示ありがとうございます。動かし方を変えてみます。
画像認識がうまくいかないのは,点群も原因なのかなと思いここに相談を書かせていただきます. パッケージとは関係がなく申し訳ございません.
rviz のdepth_imageを見ると以下の様になっていますが.
以下のプログラム(depth_image_procを使って点群を出す)だと,画像が曲がってしまいます.(柱が折れ曲がっている)
image_proc を使ってimage_raw ではなく,image_rect_colorを使うようにしましたが,あまり変わりませんでした.