Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2017 年ゼミ #1226

Open
k-okada opened this issue Oct 18, 2017 · 53 comments
Open

2017 年ゼミ #1226

k-okada opened this issue Oct 18, 2017 · 53 comments

Comments

@k-okada
Copy link
Member

k-okada commented Oct 18, 2017

大村 @dyson8910
室岡 @takayuki5168
古賀 @koga-yu
平岡 @Naoki-Hiraoka

@k-okada
Copy link
Member Author

k-okada commented Oct 18, 2017

10/25 までの宿題。 ロボットシステムの宿題(talker/listner, 画像処理結果を受け取り描画する/cmd_vel でロボットを動かす)をeuslisp で書く。

@Naoki-Hiraoka
Copy link

Naoki-Hiraoka commented Oct 18, 2017

mkidr -p ~/semi_ws/src
cd semi_ws/src
git clone http://github.com/jsk-ros-pkg/jsk_robot
rosdep install -r --from-paths . --ignore-src
sudo apt-get install ros-kinetic-pepper-meshes
sudo apt-get install ros-kinetic-nao-meshes
git clone https://github.com/fetchrobotics/fetch_ros
git clone https://github.com/ros-naoqi/naoqi_interaction
cd ..
catkin b peppereus
source devel/setup.bash
roscd peppereus
roseus pepper.l
$ (pepper)
$ (objects (list *pepper*))
$ (send *pepper* :angle-vector)
$ (send *pepper* :head :neck-p :joint-angle 30) ;; https://github.com/jsk-ros-pkg/jsk_robot/tree/master/jsk_fetch_robot

@koga-yu
Copy link

koga-yu commented Oct 24, 2017

上のコマンドを打ち込んだところ、catkin build peppereusでエラーが出ます
ターミナルの出力は以下のとおりです

---------------------------------------------------------------------------
Profile:                     default
Extending:          [cached] /home/kogatti/catkin_ws/devel:/opt/ros/kinetic
Workspace:                   /home/kogatti/semi_ws
---------------------------------------------------------------------------
Source Space:       [exists] /home/kogatti/semi_ws/src
Log Space:          [exists] /home/kogatti/semi_ws/logs
Build Space:        [exists] /home/kogatti/semi_ws/build
Devel Space:        [exists] /home/kogatti/semi_ws/devel
Install Space:      [unused] /home/kogatti/semi_ws/install
DESTDIR:            [unused] None
---------------------------------------------------------------------------
Devel Space Layout:          linked
Install Space Layout:        None
---------------------------------------------------------------------------
Additional CMake Args:       None
Additional Make Args:        None
Additional catkin Make Args: None
Internal Make Job Server:    True
Cache Job Environments:      False
---------------------------------------------------------------------------
Whitelisted Packages:        None
Blacklisted Packages:        None
---------------------------------------------------------------------------
Workspace configuration appears valid.
---------------------------------------------------------------------------
[build] Found '20' packages in 0.0 seconds.                                                                                                  
[build] Package table is up to date.                                                                                                         
Starting  >>> naoqieus                                                                                                                       
_____________________________________________________________________________________________________________________________________________
Errors     << naoqieus:cmake /home/kogatti/semi_ws/logs/naoqieus/build.cmake.007.log                                                         
CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:76 (find_package):
  Could not find a package configuration file provided by
  "nao_interaction_msgs" with any of the following names:

    nao_interaction_msgsConfig.cmake
    nao_interaction_msgs-config.cmake

  Add the installation prefix of "nao_interaction_msgs" to CMAKE_PREFIX_PATH
  or set "nao_interaction_msgs_DIR" to a directory containing one of the
  above files.  If "nao_interaction_msgs" provides a separate development
  package or SDK, be sure it has been installed.
Call Stack (most recent call first):
  CMakeLists.txt:4 (find_package)


CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
  Could not find a package configuration file provided by
  "nao_interaction_msgs" with any of the following names:

    nao_interaction_msgsConfig.cmake
    nao_interaction_msgs-config.cmake

  Add the installation prefix of "nao_interaction_msgs" to CMAKE_PREFIX_PATH
  or set "nao_interaction_msgs_DIR" to a directory containing one of the
  above files.  If "nao_interaction_msgs" provides a separate development
  package or SDK, be sure it has been installed.
Call Stack (most recent call first):
  CMakeLists.txt:4 (find_package)


cd /home/kogatti/semi_ws/build/naoqieus; catkin build --get-env naoqieus | catkin env -si  /usr/bin/cmake /home/kogatti/semi_ws/src/jsk_robot/jsk_naoqi_robot/naoqieus --no-warn-unused-cli -DCATKIN_DEVEL_PREFIX=/home/kogatti/semi_ws/devel/.private/naoqieus -DCMAKE_INSTALL_PREFIX=/home/kogatti/semi_ws/install; cd -
.............................................................................................................................................
Failed     << naoqieus:cmake           [ Exited with code 1 ]                                                                                
Failed    <<< naoqieus                 [ 0.5 seconds ]                                                                                       
Abandoned <<< peppereus                [ Unrelated job failed ]                                                                              
[build] Summary: 0 of 2 packages succeeded.                                                                                                  
[build]   Ignored:   18 packages were skipped or are blacklisted.                                                                            
[build]   Warnings:  None.                                                                                                                   
[build]   Abandoned: 1 packages were abandoned.                                                                                              
[build]   Failed:    1 packages failed.                                                                                                      
[build] Runtime: 0.5 seconds total.                         
                               

@k-okada
Copy link
Member Author

k-okada commented Oct 24, 2017

workspaceに

git clone https://github.com/ros-naoqi/naoqi_interaction

がはいっているかな?

cd ~/semi_ws/src
wstool init .
wstool scrape -y

としてワークスペースをwstool対応にしてから

wstool info

とすると,いまのworkspaceの情報を得ることができます.
#1226 (comment)
をもう一回確認してみましょう.

@koga-yu
Copy link

koga-yu commented Oct 25, 2017

もう一度コマンドを実行したところうまく行きました
お騒がせしました

@koga-yu
Copy link

koga-yu commented Oct 25, 2017

fetch15

in shell
$rossetip 133.11.216.82
$rossetmaster fetch15
$source devel/setup.bash
$roseus

in roseus
$load "fetch-interface.l"
$fetch-init
$(send *ri* :move-to (make-coords :pos #f(0 7000 0) :rpy (float-vector pi 0 0)) :frame-id "/map")

$load "package://jsk_maps/src/eng2-scene.l"
$setq *scene* (make-eng2-scene)
$objects (list *scene*)
$send *scene* :spots
$(send-all (send *scene* :spots) :name) ;print all spots name
$send *scene* :spot "/eng2/7f/room73B2-trashbox-front"
$send *ri* :move-to (send *scene* :spot "/eng2/7f/room73B2-trashbox-front") :frame-id "/map"
$send *ri* :move-to (send *scene* :spot "/eng2/7f/room73B2-door-front")

rviz

$ git clone http://github.com/ros-visualization/rviz
$ cd rviz
$ catkin bt
$ source [path-to-setup.bash]
$ rostopicip [ip-number]
$ rossetmaster fetch15
$ rviz

rviz displays [add topic]
map /map
PoseArray /particlecloud
Polygon /move_base/global_costmap/footprint
LaserScan /base_scan
Path /move_base/NavfnRO/plan
Image /head_camera/rgb/image_raw
MarkerArray /spots_marker_array
PictogramArray /spots_pictogram

launch simulator

in shell
$ source [path-to-setup.bash]
$ roscd fetcheus/
$ roseus

in roseus
$ load "fetch-interface.l"
$ fetch-init
$ send *ri* :go-pos 1 0 0

@k-okada
Copy link
Member Author

k-okada commented Oct 26, 2017

rvizはcommon_msgs を持ってきてブランチをindigo-develにして,全部コンパイルすると大変だから,visualization_msgsだけをsrcからシンボリックリンクをはって,buildするひつようがありますね.

で伝わるかな...

@k-okada
Copy link
Member Author

k-okada commented Oct 26, 2017

scene の spot を手元で確認する方法.

(load "package://jsk_maps/src/eng2-scene.l")
(setq *scene* (make-eng2-scene))
(objects (list *fetch* *scene*))
(send *fetch* :move-to (send (send *scene* :spot "/eng2/7f/room73B2-door-front") :worldcoords) :world)
(send *irtviewer* :look-all *fetch*)

screenshot from 2017-10-26 12-30-56

map相対の位置を知る方法

(send *fetch* :move-to (send (make-coords :pos #f(-1000 7000 0)  :rpy (float-vector pi/2 0 0)) :transform (car (send *scene* :find-object "/eng2/7f"))) :world)

spotの位置を知る方法

(send *fetch* :move-to (send (send (send (send *scene* :spot "/eng2/7f/room73B2-front-of-kitchenboard") :copy-worldcoords) :transform (send (send (car (send *scene* :find-object "/eng2/7f")) :copy-worldcoords) :inverse-transformation)) :transform (car (send *scene* :find-object "/eng2/7f"))) :world)
または
(send *fetch* :move-to (send (send *scene* :spot "/eng2/7f/room73B2-front-of-kitchenboard") :worldcoords) :world)

実機を動かすときは

(send *ri* :move-to  (send (send *scene* :spot "/eng2/7f/room73B2-front-of-kitchenboard") :worldcoords))

でよい.(たぶん)

実機の場合:move-to:frame-id "world" となっている.world は建物原点 mapはフロア原点.

$ (send (send *scene* :spot "/eng2/7f/room73B2-front-of-kitchenboard")  :worldcoords)
#<coordinates #X14e726e0  1350.0 8750.0 30002.0 / 3.142 0.0 0.0>

となって,z座標に注目してこれは建物原点.

Cc: @furushchev
c.f. jsk-ros-pkg/jsk_robot#853

@dyson8910
Copy link

@koga-yu 傘を掴んでかさ立てに立てる

  1. 傘と傘立てのeusモデルを作る
  2. 傘の柄に手を伸ばす
  3. 傘立てに傘を立てる
  4. 実機で実行する
  5. 傘を発見するプログラムを作る
    6.実機で実行する
  6. 傘立てを発見するプログラムを作る
    8.実機で実行する

@Naoki-Hiraoka
1.エレベータの前に移動する
2.写真を撮ってツイッターに流す
3.画像をセーブしておく
4.ポスターを一個追加する
5.画像をセーブしておく
6.2つの画像の差分を計算する
7.差分をツイッターに流す

@takayuki5168
1.電子レンジのモデルを作る
2.レンジの取っ手に手を伸ばす
3.ドアの開閉に沿ってドアを開ける
4.弁当を中に入れる
5.ドアを閉める
6.ボタンを押す
7.実機で実行する
8.ボタンを押して中が光るのを認識する
9.中が光るまでボタンを何回も押す
10.光が消えたらドアを開ける
11.弁当を取り出す
12.弁当を持ってくる

@dyson8910 お湯を沸かして注ぐ
1.コンロのボタンを押す
2.3分待つ
3.やかんをもつ動作を作る
4.やかんを持ったまま移動する
5.カップラーメンに注ぐ
6.お湯が湧いた音を聞く
7.カップラーメンの蓋を開ける

@Naoki-Hiraoka
Copy link

pr2の場合

roseus
load "package://pr2eus/pr2-interface.l"
pr2-init

kineticに対応していないというエラーが出てきたら、

cd semi_ws/src
git clone https://github.com/pr2/pr2_controllers
cd ..
catkin b pr2_controllers_msgs
source ./devel/setup.bash

@Naoki-Hiraoka
Copy link

今日は Naoki-Hiraoka@2ccb426 までできました。

  • 写真をとって保存するところまでできました。

@dyson8910
Copy link

今日は
dyson8910@9591e39
まで進みました。
1番のコンロのボタンを押すところを座標で指定して行うところまでできました。

@takayuki5168
Copy link
Contributor

今日は
takayuki5168@5e3c8d7
までやりました。
電子レンジのモデル(扉の開閉のみ)を作ったのとロボットが移動する位置をシミュレータ上で確認しました。

@koga-yu
Copy link

koga-yu commented Nov 1, 2017

koga-yu/jsk_demos@a4ae5d3
までやりました
傘のモデルを作り、ロボットの前におかれた傘の柄にハンドを伸ばすところまでシミュレータで動かしました

@takayuki5168
Copy link
Contributor

takayuki5168@7879152
までやりました

テンプレートマッチングの実装、realsenseを用いた動作確認(jskのライブラリを使うことになったのでこれは使わなさそうですが)、pr2の環境構築をしました。

@Naoki-Hiraoka
Copy link

roskineticで、pr2(実機)をrvizで見たい場合。
rviz.launchを使ったり、jsk_pr2_startupをビルドしようとしてはいけないそうです。
rvizを普通に起動し、見たい情報を一つ一つ選択していくのが良いとのことです。

@koga-yu
Copy link

koga-yu commented Nov 8, 2017

koga-yu@2b6337e
までやりました
傘を掴んで下ろす一連の動作を実装しシミュレータで確認、
またpr2用のコードも準備しました

@Naoki-Hiraoka
Copy link

入口付近に移動
(load "package://jsk_maps/src/eng2-scene.l")
(setq scene (make-eng2-scene))
(send ri :move-to (send (send scene :spot "init-spot") :worldcoords) :frame-id "eng2")
(send ri :state :potentio-vector)
(send ri :angle-vector #f(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0) 5000)
(send ri :start-grasp)
(send ri :stop-grasp)
(send ri :start-grasp :larm)
(send pr2 :reset-pose) (send pr2 :init-pose)
(send ri :angle-vector (send pr2 :angle-vector))

@dyson8910
Copy link

dyson8910@7a6bf9b
までやりました。
前回のもののpr2版が作成途中で、やかんを掴んで持ち上げ、運んでくるプログラムを作成しました。

@Naoki-Hiraoka
Copy link

今日は、Naoki-Hiraoka@c9021dc
までやりました。
作成した写真から掲示を認識するプログラムの精度が非常に悪いので、これを改良することが課題です。

@dyson8910
Copy link

今日は
dyson8910@8d707a8
までやりました。
テンプレートマッチング自体の実装はできたと思うので、今後はそこから座標を計算してコンロのボタンを押せるようにしていく予定です。

@takayuki5168
Copy link
Contributor

今日は
takayuki5168@2008602
までやりました。

PR2の実機を用いて電子レンジの目の前まで移動、電子レンジを認識、電子レンジの適当な位置にアームを動かす、またeusモデル上で認識した位置に電子レンジを配置しました。
次回はドアの開閉やボタンを押す動作を作るのと、まだ精度的にボタンを押したりドアを開けたりできそうにないので何か策を考える予定です。

@Naoki-Hiraoka
Copy link

11月15日は、
Naoki-Hiraoka@6b3cfd9
までやりました。
2枚の写真が全く同じ位置から撮影され、差分が掲示1枚だけであれば、うまく動くのではないかと思います。

@Naoki-Hiraoka
Copy link

(質問)
ros::advertiseしてすぐにros::publishした時に、メッセージが送信されない場合があります。プロセス間通信の関係上すぐに送信できないのは仕方ない気はするのですが、ros::advertiseしてからどのくらい待てば確実に送信できるのか知るよい方法はありますでしょうか。

(ros::load-ros-manifest "roseus")
(ros::roseus "hoge")
(ros::advertise "/image_time_diff/start" std_msgs::Header 10)
(setq msg (instance std_msgs::Header :init))

(ros::rate 10)
(while (not (ros::get-topic-publisher "/image_time_diff/start"));;ここで少し工夫してみたが効果なし
  (ros::sleep))

(setq i 0)
(while (< i 10)
  (send msg :seq i)
  (send msg :stamp (ros::time-now))
  (ros::publish "/image_time_diff/start" msg)
  (incf i)
  (ros::sleep)
  )

(exit)

結果seq0とseq1が送信されていない。

$ rostopic echo /image_time_diff/start
seq: 2
stamp: 
  secs: 1510983851
  nsecs: 699853984
frame_id: ''
---
seq: 3
stamp: 
  secs: 1510983851
  nsecs: 799852981
frame_id: ''
---
seq: 4
stamp: 
  secs: 1510983851
  nsecs: 899822602
frame_id: ''
---
seq: 5
stamp: 
  secs: 1510983851
  nsecs: 999822598
frame_id: ''
---
seq: 6
stamp: 
  secs: 1510983852
  nsecs:  99817629
frame_id: ''
---
seq: 7
stamp: 
  secs: 1510983852
  nsecs: 199854365
frame_id: ''
---
seq: 8
stamp: 
  secs: 1510983852
  nsecs: 299850264
frame_id: ''
---
seq: 9
stamp: 
  secs: 1510983852
  nsecs: 399848354
frame_id: ''
---

@furushchev
Copy link
Member

@Naoki-Hiraoka 経験的には(unix:sleep 1)をすると大体大丈夫だと思います. (参考: https://github.com/jsk-ros-pkg/jsk_pr2eus/blob/master/pr2eus/robot-interface.l#L1226-L1228 )
が,正しい記述をするなら,

(ros::advertise "/image_time_diff/start" std_msgs::Header 10)

(ros::rate 10)
(while (zerop (ros::get-num-subscribers "/image_time_diff/start"))                                               
  (ros::sleep))

のようになるのかなと思います.

@Naoki-Hiraoka
Copy link

ありがとうございます。

(while (not (ros::get-topic-publisher "/image_time_diff/start"))
   (ros::sleep))

の代わりに

(while (zerop (ros::get-num-subscribers "/image_time_diff/start"))                                               
  (ros::sleep))

を使うとうまく行きました。

@takayuki5168
Copy link
Contributor

今日は
takayuki5168@889b81b
までやりました

PR2のハンドが電子レンジの扉の先に追従するようにinverse-kinematicsが解けるようになったので次回実機で電子レンジの開閉を試します。

@koga-yu
Copy link

koga-yu commented Nov 22, 2017

今日は
koga-yu@032c247
までやりました

傘を掴む・持ち上げる・下ろす・放すの一連の動作を実機で動かしました
rgb画像を読み込めるところまで来たので、傘を発見するプログラムの準備に移ります

@Naoki-Hiraoka
Copy link

11/22は、
Naoki-Hiraoka@a12e4e6
までやりました。
同じ位置で写真を撮ったとしても、ノイズの影響でうまく差分が取れないということがわかったので、次はopencvのBackground Subtractionあたりを使ってみようと思います。

@dyson8910
Copy link

今日は
dyson8910@a022899
までやりました。
実機を動かしたところ、シミュレーターと位置が異なっていたので、次回はpr2のpositionとの違いなどを確認してこれからの動かし方を考えていきたいと思います。

@koga-yu
Copy link

koga-yu commented Nov 29, 2017

koga-yu@9214dd1
までやりました
opencvのmatchTemplateを使って傘の柄を見つけることができました
大きさが変わることに対応していないので、画像の大きさをかえつつマッチングし最も近いものから
傘への距離を計算するようにします

@dyson8910
Copy link

dyson8910@aa31183
までやりました。
座標のみでの移動は再現性があまりなかったので、画像認識を使うことにしました。
画像から座標を求めるやり方を @takayuki5168 に教えてもらったので、それを利用したいと思います。

@takayuki5168
Copy link
Contributor

https://github.com/takayuki5168/jsk_demos/tree/54f4e64551ebebaee825331493c37a48257166f0
までやりました。

inverse-kinematicsを解くときにハンドの向きも動作に合うように直しました。
電子レンジからの相対位置に移動してロバスト性を高める方法を教えてもらったので来週それを試します。
電子レンジに入れるもの以外の動作は作り終わりまた見やすくしました。

以下は電子レンジのボタンの押して扉を開けている様子です。
zemi

@Naoki-Hiraoka
Copy link

遅くなりました。11/29は、
Naoki-Hiraoka@82b8c67#diff-22a427a8819b6daaf6aa11895be7b08f
までやりました。
cv_bridge::toCvCopyの引数encodingについて、pr2-interface.lとnamespaceの関係についてを学びました。

@Naoki-Hiraoka
Copy link

Naoki-Hiraoka commented Dec 6, 2017

12/6は、
Naoki-Hiraoka@2fcdd15
までやりました。実機を用いて、同じ場所から撮影したのであれば、画像の中で増えた物体を検出してその部分だけをtweetできるようになりました。

twitter関連では、どのような経路でtopic等が流れてtweetがなされているのかをある程度理解し、
jsk_robot_common/tweet_client.l内のtweet-string関数を参考に、
speak-jp関数がうまく動かないのでコメントアウトし、
muxにservice-callするタイミングとimage_saverにservice_callするタイミングが通信状況によって入れ替わってしまうことがあるようなので間にunix::sleepして十分に時間をあけるようにしました。

差分を計算するプログラムでは、新たに追加された物体がカメラに近いと物体に反射した光が原因で画像全体が大きく変化してしまうようなので、追加する物体はカメラから十分離すか小さくする必要があるとわかりました。

デバッグで使ったusb_camと実機のカメラではbgrとrgbが反対になっていることもあり、cv_bridge::toCvCopyの引数encodingは、opencvの保存・読み込み機能(imread,imwrite,videoCaptureなど)と合わせて使用する場合はmsg->encodingではなく"bgr8"と指定してやらないと、topicの画像がbgrかrgbかでうまく行かないことが多いと学びました。

@koga-yu
Copy link

koga-yu commented Dec 6, 2017

koga-yu@22f9041
までやりました
match templateで傘の柄を見つけ、そこにハンドを伸ばす動作ができました
3次元空間内の位置計算精度が悪いのでそこを見直し、一連の動作ができるようにします

@dyson8910
Copy link

dyson8910@80e0715
までやりました
画像を用いて座標を取り出すところはできたので、それを用いて動作を作っていきます。

@takayuki5168
Copy link
Contributor

takayuki5168@e5b5745
までやりました。
電子レンジを認識して電子レンジからある一定距離離れて電子レンジの扉に手を移動させるinverse-kinematicsを試しました。
point_pose_extractorの精度が良くないので次回テンプレート画像を変更します。

@furushchev
Copy link
Member

@takayuki5168 おそらく使っているカメラをもっと狭角に変えると精度がよくなるかなと思います.
来週までにはPR2のnarrow_stereoという狭角カメラが治っているはうなので,これを使ってテンプレート画像を取り直すと精度が良くなると思います.

@takayuki5168
Copy link
Contributor

@furushchev
アドバイスありがとうございます。次回試してみます。

@takayuki5168
Copy link
Contributor

@furushchev
iPhoneで撮影した電子レンジのパネルの写真をもとに今まで同様自己位置補正(電子レンジの位置からある相対位置にPR2を移動させる)をしたのですが、そこそこ精度がよくなったものの電子レンジを開閉できるほどの精度はありませんでした。特に複数回試した時に奥行き方向のズレの幅が6cmほどあります。error_thresholdの値を2くらいにしてもあまり効果は見られませんでした。
考えている策としてはz方向のみ何らかの方法でさらに補正をかける、シフト特徴量がよく出る(?)ARマーカーを電子レンジに貼り付ける、ですが何かアドバイスをいただけると幸いです。

参考までに、使用している画像認識用launch ファイルは以下です。
https://github.com/takayuki5168/jsk_demos/blob/master/jsk_2017_10_semi/launch/microwave-detection.launch

@furushchev
Copy link
Member

@takayuki5168 (前に聞いたことあるかも)この6cmのズレというのは認識結果そのもののズレかな?それともその認識結果をもとにeusモデルの原点を修正して、そのモデルのどこかの部位とロボットとのズレを指しているかな?
もし認識結果そのもののズレだったとして、

  1. 認識結果を見てみたいです。(debug_imageという名前で出ているはず)
  2. リンクのlaunchファイルを見るとnarrow_stereoでも試した形跡があるけど、これ試してみたとしたらどれくらい変わったかな?
    (0. ここにあまりこだわる理由がなさそうなら、ここは後で取り組んで、例えばレンジをもう少し高く(してカメラとの相対姿勢変化を小さく)して先に進むというのも個人的にはありだと思います。)

@takayuki5168
Copy link
Contributor

@furushchev 認識結果そのもののずれであっています。
では次回研究室を伺った時に認識結果を見ていただきたいです。
narrow_stereoで行った時は狭角であるため近くに来ると電子レンジを捉えられないのと誤差が大きかったのでやめました。
はい、画像認識を高度なものにするつもりはないので比較的楽な方法を積極的に考えたいです。

@koga-yu
Copy link

koga-yu commented Dec 13, 2017

koga-yu@7419467
までやりました
指の長さ分の奥行き誤差が許容できるなら大方つかめるようになりました
掴んだあとドアの前まで行き、傘立てに差し込むイメージで傘を放す動作を実装しました
次回は傘立ての位置など最終調整をします

@Naoki-Hiraoka
Copy link

今日は、
Naoki-Hiraoka@5bb17ef
までやりました。
これまでは2つの画像の間で単に数十秒間待機するだけだったのですが、待機時間を自分で判断するようにしようと試みました。具体的には、beforeの画像からある程度以上変化していたら新規掲示ありとみなして待機終了するようにしようと考えました。
このとき、ヒトが新しい掲示を貼るために手や体が画面に写った瞬間に待機終了してしまってはいけないので、ヒトの体は立体物であるのに対し掲示は平面であることを利用し、rgbの画像がもとの画像からある程度以上変化しているが、depthの画像はほとんど変化していないという状態になったときに待機終了するようにしようとしました。
そのために、beforeのdepthの動画を保存しようといろいろと調べてみたのですが、videowriterのiscolor引数がwindowsでしか対応していない?からか、うまく保存できませんでした。
動画の保存はもともとbefore画像とafter画像の間で日をまたぐことを想定していたため行っていたのですが、今回の発表の場合では日をまたがないので、そもそも動画を保存せずに進めることを検討しようと思います。

@708yamaguchi
Copy link
Member

@Naoki-Hiraoka @koga-yu @dyson8910 @takayuki5168

B4 山口です。

ゼミ机に管理番号040のThinkPadの充電器が忘れられていました。
心当たりのある方は時間のあるときにでも取りに来てください。ゼミ机に置いています。

img_5871

@dyson8910
Copy link

dyson8910@c8d666d
までやりました。
画像認識でズレがあったのですが、オフセットで合わせることでコンロのボタンを押すことができました。
次回までにやかんを取る動作やお湯を注ぐ動作も確認したいと思います。

@takayuki5168
Copy link
Contributor

https://github.com/takayuki5168/jsk_demos/tree/592cb9d6d31fb7d8aa5ddca8c54c37076c9cd34b
までやりました。

認識カメラをkinect_headからnarrow_stereoに変更した結果認識精度がよくなりました。
電子レンジ関連のタスク(電子レンジを見つける、近づく、開ける、コップを入れる、閉める、ボタンを押す、開ける、コップを取り出す、閉める)はだいたいできるようになりました。
主にコップを取り出すところと扉を開けるときにまだミスることがあります。

次回までにこれらのバグを取り除き再現性を上げたいです。
コップに何を入れるか(飲み物またはこぼれても大丈夫なダミーのもの)悩み中です。

@Naoki-Hiraoka
Copy link

Naoki-Hiraoka commented Dec 20, 2017

Naoki-Hiraoka@b020ee9
フローチャートとシステム構成図を添付しました。(レポート.odp)

1.廊下の掲示板の前に移動する。
2.掲示板の画像を100枚記憶する。
3.「新しい掲示を待っています」という。
4.ヒトが掲示を一個追加する。
5.自動で掲示が追加されたこととヒトが去ったことを検知する。
6.新規掲示をツイッターに流す。
7.2〜6を繰り返す。
8.PCから指示を送ると帰ってくる。

@Naoki-Hiraoka
Copy link

ロボットシステム課題提出のメールアドレス宛てに、ゼミのレポートを送りました。
件名は「12/20 少人数ゼミレポート (学生証番号) (名前)」です。
遅くなってしまい申し訳ありません。
よろしくお願いいたします。

@koga-yu
Copy link

koga-yu commented Jan 30, 2018

ゼミのスライドをアップします
大変遅れてしまい申し訳ありません
semi_slide.odp.zip

@takayuki5168
Copy link
Contributor

ゼミのスライドを ここ にpushしました。
遅れてしまい申し訳ありません。よろしくお願いします。

@dyson8910
Copy link

@Naoki-Hiraoka 同様メールでゼミのレポートを提出しました。
遅くなってしまい、申し訳ありません。
よろしくお願いします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants