Open k-okada opened 2 years ago
手元のPCで、source ~/semi_ws/devel/setup.bash
rossetmaster fetch1075
rossetip
を実行したあとにroseus
を起動したら
[http://fetch1075:11311][133.11.216.185] mech-user@ki00135:~/semi_ws/src/jsk_robot$ roseus
configuring by "/opt/ros/melodic/share/euslisp/jskeus/eus//lib/eusrt.l"
;; readmacro ;; object ;; packsym ;; common ;; constants ;; stream ;; string ;; loader ;; pprint ;; process ;; hashtab ;; array ;; mathtran ;; eusdebug ;; eusforeign ;; extnum ;; coordinates ;; tty ;; history ;; toplevel ;; trans ;; comp ;; builtins ;; par ;; intersection ;; geoclasses ;; geopack ;; geobody ;; primt ;; compose ;; polygon ;; viewing ;; viewport ;; viewsurface ;; hid ;; shadow ;; bodyrel ;; dda ;; helpsub ;; eushelp ;; xforeign ;; Xdecl ;; Xgraphics ;; Xcolor ;; Xeus ;; Xevent ;; Xpanel ;; Xitem ;; Xtext ;; Xmenu ;; Xscroll ;; Xcanvas ;; Xtop ;; Xapplwin
connected to Xserver DISPLAY=:0
X events are being asynchronously monitored.
;; pixword ;; RGBHLS ;; convolve ;; piximage ;; pbmfile ;; image_correlation ;; oglforeign ;; gldecl ;; glconst ;; glforeign ;; gluconst ;; gluforeign ;; glxconst ;; glxforeign ;; eglforeign ;; eglfunc ;; glutil ;; gltexture ;; glprim ;; gleus ;; glview ;; toiv-undefined ;; fstringdouble irtmath irtutil irtc irtgeoc irtgraph gnuplotlib ___time ___pgsql irtgeo euspqp pqp irtscene irtmodel irtdyna irtrobot irtsensor irtbvh irtcollada irtstl irtwrl irtpointcloud eusbullet bullet irtcollision irtx eusjpeg euspng png irtimage irtglrgb
;; extending gcstack 0x5614475d3690[16374] --> 0x561447a59550[32748] top=3d4b
irtgl irtglc irtviewer
EusLisp 9.29( 1.2.5) for Linux64 created on ip-10-0-1-68(Tue Mar 1 05:47:01 PST 2022)
roseus ;; loading roseus("1.7.4") on euslisp((9.29 ip-10-0-1-68 Tue Mar 1 05:47:01 PST 2022 1.2.5))
eustf roseus_c_util 1.irteusgl$ load "package://fetcheus/fetch-interface.l"
;; extending gcstack 0x561447a59550[32738] --> 0x561449cd1a30[65476] top=7ba0
t
2.irteusgl$ fetch-init
[ WARN] [1666843303.146869950]: ;; collision-object-publisher wait for "apply_planning_scene" service for 5 sec
Call Stack (max depth: 20):
0: at (send *co* :delete-attached-object-by-id "fetchheadbox")
1: at (send self :delete-headbox-collision-object)
2: at (progn (send self :delete-headbox-collision-object) (send self :delete-keepout-collision-object) (send self :delete-ground-collision-object) (send self :add-headbox-collision-object) (send self :add-keepout-collision-object) (send self :add-ground-collision-object))
3: at (if (and (boundp '*co*) default-collision-object) (progn (send self :delete-headbox-collision-object) (send self :delete-keepout-collision-object) (send self :delete-ground-collision-object) (send self :add-headbox-collision-object) (send self :add-keepout-collision-object) (send self :add-ground-collision-object)))
4: at (when (and (boundp '*co*) default-collision-object) (send self :delete-headbox-collision-object) (send self :delete-keepout-collision-object) (send self :delete-ground-collision-object) (send self :add-headbox-collision-object) (send self :add-keepout-collision-object) (send self :add-ground-collision-object))
5: at (progn (send self :add-controller :arm-controller) (send self :add-controller :torso-controller) (send self :add-controller :head-controller) (if (boundp 'fetch_driver_msgs::gripperstate) (ros::subscribe "gripper_state" fetch_driver_msgs::gripperstate #'send self :fetch-gripper-state-callback :groupname groupname) (ros::ros-warn "Could not find fetch_driver_msgs package, please install from source https://github.com/fetchrobotics/fetch_msgs")) (setq gripper-action (instance ros::simple-action-client :init "/gripper_controller/gripper_action" control_msgs::grippercommandaction :groupname groupname)) (setq moveit-robot (instance fetch-robot :init)) (send self :set-moveit-environment (instance fetch-moveit-environment :init :robot moveit-robot)) (when (and (boundp '*co*) default-collision-object) (send self :delete-headbox-collision-object) (send self :delete-keepout-collision-object) (send self :delete-ground-collision-object) (send self :add-headbox-collision-object) (send self :add-keepout-collision-object) (send self :add-ground-collision-object)) (setq fetch-controller-action (instance ros::simple-action-client :init "/query_controller_states" robot_controllers_msgs::querycontrollerstatesaction)))
6: at (let ((#:prog13519 (send-super* :init :robot fetch-robot :base-frame-id "base_link" :odom-topic "/odom_combined" :base-controller-action-name nil args))) (progn (send self :add-controller :arm-controller) (send self :add-controller :torso-controller) (send self :add-controller :head-controller) (if (boundp 'fetch_driver_msgs::gripperstate) (ros::subscribe "gripper_state" fetch_driver_msgs::gripperstate #'send self :fetch-gripper-state-callback :groupname groupname) (ros::ros-warn "Could not find fetch_driver_msgs package, please install from source https://github.com/fetchrobotics/fetch_msgs")) (setq gripper-action (instance ros::simple-action-client :init "/gripper_controller/gripper_action" control_msgs::grippercommandaction :groupname groupname)) (setq moveit-robot (instance fetch-robot :init)) (send self :set-moveit-environment (instance fetch-moveit-environment :init :robot moveit-robot)) (when (and (boundp '*co*) default-collision-object) (send self :delete-headbox-collision-object) (send self :delete-keepout-collision-object) (send self :delete-ground-collision-object) (send self :add-headbox-collision-object) (send self :add-keepout-collision-object) (send self :add-ground-collision-object)) (setq fetch-controller-action (instance ros::simple-action-client :init "/query_controller_states" robot_controllers_msgs::querycontrollerstatesaction))) #:prog13519)
7: at (prog1 (send-super* :init :robot fetch-robot :base-frame-id "base_link" :odom-topic "/odom_combined" :base-controller-action-name nil args) (send self :add-controller :arm-controller) (send self :add-controller :torso-controller) (send self :add-controller :head-controller) (if (boundp 'fetch_driver_msgs::gripperstate) (ros::subscribe "gripper_state" fetch_driver_msgs::gripperstate #'send self :fetch-gripper-state-callback :groupname groupname) (ros::ros-warn "Could not find fetch_driver_msgs package, please install from source https://github.com/fetchrobotics/fetch_msgs")) (setq gripper-action (instance ros::simple-action-client :init "/gripper_controller/gripper_action" control_msgs::grippercommandaction :groupname groupname)) (setq moveit-robot (instance fetch-robot :init)) (send self :set-moveit-environment (instance fetch-moveit-environment :init :robot moveit-robot)) (when (and (boundp '*co*) default-collision-object) (send self :delete-headbox-collision-object) (send self :delete-keepout-collision-object) (send self :delete-ground-collision-object) (send self :add-headbox-collision-object) (send self :add-keepout-collision-object) (send self :add-ground-collision-object)) (setq fetch-controller-action (instance ros::simple-action-client :init "/query_controller_states" robot_controllers_msgs::querycontrollerstatesaction)))
8: at (send #:inst3518 :init)
9: at (let ((#:inst3518 (instantiate fetch-interface))) (send #:inst3518 :init) #:inst3518)
10: at (instance fetch-interface :init)
11: at (setq *ri* (instance fetch-interface :init))
12: at (progn (setq *ri* (instance fetch-interface :init)))
13: at (if (not (boundp '*ri*)) (progn (setq *ri* (instance fetch-interface :init))))
14: at (when (not (boundp '*ri*)) (setq *ri* (instance fetch-interface :init)))
15: at (unless (boundp '*ri*) (setq *ri* (instance fetch-interface :init)))
16: at (fetch-init)
17: at #<compiled-code #X56144768ce18>
/opt/ros/melodic/share/euslisp/jskeus/eus/Linux64/bin/irteusgl 0 error: cannot find method :delete-attached-object-by-id in (send *co* :delete-attached-object-by-id "fetchheadbox")
というエラーが出ました。 CC: @mqcmd196
多分ですがjsk_pr2eusをワークスペースに入れてビルドが必要だと思います。ブランチはmasterで大丈夫なはずです。
それでもいいんだけど,毎回ソース入れると,ソース入れてコンパイルするだけの演習になるので, https://github.com/jsk-ros-pkg/jsk_robot/pull/1707 みたいな対応はどうでしょうか?これでいかがobjectが残るんだけど,クリティカルな問題なければ,とりあえずはこれですすめてみたいです.
[ WARN] [1666845461.477285640]: ;; did not delete attached object "fetchheadbox"
[ WARN] [1666845461.477330472]: ;; did not delete attached object "keepout"
[ WARN] [1666845461.477348807]: ;; did not delete object "keepout"
[ WARN] [1666845461.477371186]: ;; did not delete attached object "ground"
[ WARN] [1666845461.477388182]: ;; did not delete object "ground"
ありがとうございます。 毎回jsk_pr2eusをソースから入れてくださいと思い出して言うのも大変なので賛成です。 既知の副作用みたいなものがなければよさそうに思います。
対応ありがとうございました
@AyumuIwa @shryt @Kodai-Yamada @20niship
自己紹介と皆さんの名前聞くの忘れていました,M2の大日方(おびなた)です 昨日用事があって途中で帰ってしまいました.その後トラブルはありましたか? 昨日のおさらいです.
JSKに来たら自分のPCを有線につないで,WiFiをオフにする.
ターミナルで ip a
と打って133.11.216....というアドレスが見えていることを確認
以下は新しくターミナルを開くごとに行う必要があります ターミナルで
source /opt/ros/melodic/setup.bash # ROSを使うためのおまじない①
source ~/semi_ws/devel/setup.bash # ROSを使うためのおまじない②
rossetmaster fetch1075 # Fetchの中のROSネットワークに入るためのおまじない
rossetip # おまじない
のおまじないを打ったら
rostopic list
でFetchのtopic群が見えることを確認 そうしたら
rlwrap roseus
でeusのインタプリタを起動
開始方法をまとめていただき、ありがとうございます。 B3の岩田歩です。 昨日はありがとうございました。特にトラブルはありませんでした。 これからもよろしくお願いいたします。
(load "package://fetcheus/fetch-interface.l") ;; Fetchを動かすために必要なパッケージを読み込む
(fetch-init) ;; Fetchのインタフェース,モデルなどの初期化
(objects (list *fetch*)) ;; ビューワの表示
昨日使ったコードの一覧
;; Fetch実機で姿勢を作ってみた.そのときの関節角度を知りたい
(send *ri* :state :potentio-vector) ;; ロボットの現在の関節角度を取得
(send *fetch* :angle-vector (send *ri* :state :potentio-vector)) ;; ロボットの現在の関節角度をビューワのFetchモデルに適用
;; 自分で作った姿勢をロボットに送りたい.
;; ビューワ中のFetchモデル,*fetch* の姿勢を自分で作ったと仮定する
(send *ri* :angle-vector (send *fetch* :angle-vector) 8000) ;; 8000ms でロボット実機の姿勢を変更
;; Fetchの姿勢を標準姿勢に戻したい
(send *fetch* :reset-pose) ;; ビューワ中のFetchモデル,*fetch* の姿勢をリセットする
(send *ri* :angle-vector (send *fetch* :angle-vector) 8000)
なお *ri*
は robot interfaceの略(多分)
spotのipは 133.11.216.166
、macは 14:eb:b6:67:d6:94
、ホスト名は StrelKa
です
もう一台は 133.11.216.165
、ホスト名は belKa
です
(send *ri* speak-jp "こんにちは")
Subscribed Topics rgb/camera_info (sensor_msgs/CameraInfo)
Camera calibration and metadata.
rgb/image_rect_color (sensor_msgs/Image)
Rectified color image.
depth_registered/image_rect (sensor_msgs/Image)
Rectified depth image, registered to the RGB camera.
Published Topics depth_registered/points (sensor_msgs/PointCloud2)
XYZRGB point cloud. If using [PCL](http://wiki.ros.org/pcl_ros), subscribe as PointCloud<PointXYZRGB>.
reference : http://wiki.ros.org/depth_image_proc
岩田くんのきれいなsources.list
#deb cdrom:[Ubuntu 18.04.1 LTS _Bionic Beaver_ - Release amd64 (20180817)]/ bionic main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://jp.archive.ubuntu.com/ubuntu/ bionic main restricted
# deb-src http://jp.archive.ubuntu.com/ubuntu/ bionic main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://jp.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
# deb-src http://jp.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://jp.archive.ubuntu.com/ubuntu/ bionic universe
# deb-src http://jp.archive.ubuntu.com/ubuntu/ bionic universe
deb http://jp.archive.ubuntu.com/ubuntu/ bionic-updates universe
# deb-src http://jp.archive.ubuntu.com/ubuntu/ bionic-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://jp.archive.ubuntu.com/ubuntu/ bionic multiverse
# deb-src http://jp.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://jp.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
# deb-src http://jp.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://jp.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src http://jp.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
# deb-src http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
# deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse
参考: 私がkinova(前にspotでついていた腕)でフリスビーを取ろうとしたときのlaunchファイル https://github.com/HiroIshida/snippets/blob/master/ros/launch_files/coral_ichikura/main.launch
pointcloud使うときに問題が起きたのでそのログ: https://github.com/HiroIshida/snippets/issues/29
@k-okada 昨日は欠席してしまい本当にすみません。生活習慣が乱れていて昼に寝落ちしていました。忙しい中準備してくださっているのに大変申し訳ないです 恐縮ですが, 前回どのようなことを行ったかご教示いただけますと幸いです。
昨日はSpotの環境構築&プログラム,Coralで物体・人間認識,あたりをしていました。 Naoがつかいたいという事だったかと思うんだけど,使えるものがあるかな? > @a-ichikura @kochigami @ayfujii
来週でもよいし,それまででも来てくれれば(&用意できていれば)渡すことができると思います。
@20niship にしみやくん M2の市倉です 私もSpotを使っていて、昨日はその場にいてみんなと一緒に作業していたので簡単にまとめると、
大まかにいうとこんな流れで、 後はそれぞれのゼミ生が自分のやりたいデモにどんな動作が必要かを考えたりSpotのarmがどんな動きをするのか見てみたりする感じだったと思います。
私はにしみやくんがどのロボットでどんな動作を作ろうとしているのかわかっていないのですが、もしスポットが使いたいということなら、環境構築は色々問題が起きやすいのと一人では難しいと思うのでここまでは来週までに追いついた方がいいと思います。
NaOはラボにあってバッテリーが動くDiaが今 @tkmtnt7000 が使用しているので、 私の家に一台あるものを使うのであれば持ってきます(土日のうちに運びます…)
M1の塚本です
今僕と市倉さんの席の間でmongodbテスト用にDiaを起動したままにしていますが、完ぺきにデモを動かしている状態ではないので、もし急ぎであれば僕の机の上のLaptop(Dia制御PC)でCtrl-cを押して引っこ抜いて持っていってもらっても構いません(申し訳ないですが今日もラボにはいないので...)
ありがとうございます!! Spotを使うことは考えていませんが、時間があれば動かしてみたいと思っています、、、!! 先輩方が暇なときがあれば質問しに行くかもしれないので、よろしくお願いします
今僕と市倉さんの席の間でmongodbテスト用にDiaを起動したままにしていますが、完ぺきにデモを動かしている状態ではないので、もし急ぎであれば僕の机の上のLaptop(Dia制御PC)でCtrl-cを押して引っこ抜いて持っていってもらっても構いません
ありがとうございます、演習が終わったのでこの後ラボに寄ってみようと思っています
@k-okada
もし急ぎであれば...僕の机の上のLaptop(Dia制御PC)でCtrl-cを押して引っこ抜いて持っていってもらっても構いません
一応近くに対応できる人がいたら持って行って大丈夫です
@20niship cc. @knorth55 にしみやくんの進捗
Python SDKのdocuments: http://doc.aldebaran.com/2-5/naoqi/index.html
Tips:
roscore
roslaunch jsk_nao_startup jsk_nao_startup.launch network_interface:= $(xxxx) launch_joy:=false
network_interfaceはifconfigで出てきた133系の名前
naoeus
(load "package://naoeus/nao-interface.l")
nao-init
喋る時は
send *ri* :speak-jp "こんにちは"
来週〜 NaOの動きを作ってみる ボールのdetection(??)
@tkmtnt7000 ちなみにNaOは持って帰っていません
今日は長い間本当にありがとうございました…!! 来週のゼミでは動かす所までいきたいので、今後ともよろしくお願いいたします。
@20niship
今日の有線が繋がらない問題の原因ですが,根本的にはNetworkManager
でenp0s31f6
がunmanaged
になっていたからです.
とりあえず/usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf
を以下のように変更して対応しました.
2c2
< unmanaged-devices=*,except:type:wifi,except:type:wwan
---
> unmanaged-devices=*,except:type:wifi,except:type:wwan,except:type:ethernet
ただ,このファイルはapt
で更新される,かつユーザが変更すべきではあまりないファイルです.
よく考えれば,apt
で更新されるので,/usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf
ではなく,/etc/NetworkManager/NetworkManager.conf
に以下の行を書いたほうがいいなとあとで思いました.
unmanaged-devices=*,except:type:wifi,except:type:wwan,except:type:ethernet
上の行を記入した後sudo systemctl restart network-manager
とかで再起動してみてください.
おそらくnetplan
や何かのせいでenp0s31f6
がNetworkManager
の管理下からはずれてしまっているようです.
/etc/network/interfaces
や/etc/netplan
を見ましたが,何かしら変な設定があるようには見えませんでした.
時間があったらこれを試してみてください.
$ sudo NetworkManager --print-config
# NetworkManager configuration: /etc/NetworkManager/NetworkManager.conf (lib: 10-dns-resolved.conf, 20-connectivity-ubuntu.conf, no-mac-addr-change.conf) (run: 10-globally-managed-devices.conf) (etc: default-wifi-powersave-on.conf)
[main]
# rc-manager=symlink
# auth-polkit=true
# dhcp=dhclient
dns=systemd-resolved
plugins=ifupdown,keyfile
[connectivity]
uri=http://connectivity-check.ubuntu.com/
[ifupdown]
managed=false
[logging]
# backend=journal
# audit=true
[device]
wifi.scan-rand-mac-address=no
[device-mac-addr-change-wifi]
match-device=driver:rtl8723bs,driver:rtl8189es,driver:r8188eu,driver:8188eu,driver:eagle_sdio,driver:wl
wifi.scan-rand-mac-address=no
wifi.cloned-mac-address=preserve
ethernet.cloned-mac-address=preserve
[connection]
wifi.powersave=3
$ cat /run/NetworkManager/conf.d/10-globally-managed-devices.conf
手先の座標系を取得してコピー
(send (send *spot* :arm :end-coords) :copy-worldcoords)
手先の座標系を取得してコピー (send (send spot :arm :end-coords) :copy-worldcoords)
いいですね,ちなみに README.md
にみんなが学んだことや覚えておくとよいTipsをまとめておくと散逸しにくいです
spot実機に繋がずに*spot*
インスタンスを作成する方法
1つのターミナルでroscoreを立ち上げる
roscore
もう1つのターミナルで
(load "package://spoteus/spot-interface.l")
(setq *spot* (instance spot-robot :init))
(objects (list *spot*))
spot用のrosinstall
- git:
local-name: jsk-ros-pkg/jsk_robot
uri: https://github.com/k-okada/jsk_robot.git
version: spot_arm
- git:
local-name: jsk_model_tools
uri: https://github.com/k-okada/jsk_model_tools.git
version: custom_limb
- git:
local-name: jsk_pr2eus
uri: https://github.com/jsk-ros-pkg/jsk_pr2eus.git
version: master
- git:
local-name: spot-ros
uri: https://github.com/k-okada/spot_ros-arm.git
version: 0a8c4b29768ae946d7c84aec9a2ae2d185ed97a9
@k-okada 現状の進捗として、IKを用いてボールを探して拾うモーションを作成するということと、spotのhandのカメラ(/spot/camera/hand_color/image
)から画像を取得し、coralを用いて野球のボールを認識するということができるようになりました。
その一方で、浮上してきた問題があり、IKを解いて求めた姿勢をspotに送ったときに、最初はspotの胴体はほとんど動かなかったのですが、カメラの方のテストなどを色々した後に改めて同じコードを動かしたところ、spotの胴体がアームが動く途中に下がるようになってしまい、アームの先端位置もその分ずれるようになってしまいました。以下が、IKを解いて求めた姿勢をspotに送るときに実行したコードです。
(load "package://spoteus/spot-interface.l")
(if t ;実機につなぐなら
(spot-init)
(setq *spot* (instance spot-robot :init))
)
;(send *ri* :speak-jp "こんにちは")
(objects (list *spot*))
;(setq pose (send *ri* :potentio-vector))
;初期姿勢
(send *spot* :reset-pose)
(send *ri* :angle-vector (send *spot* :angle-vector) 2000)
(send *ri* :gripper-open)
;手を地面付近に下ろす
(setq endcoords (send (send *spot* :arm :end-coords) :copy-worldcoords)) ;手先の座標系を取得し、コピーする
(objects (list endcoords *spot*)) ;座標系を表示
(send endcoords :rotate (/ (- pi) 2) :z) ;座標系の回転移動
(send *spot* :inverse-kinematics endcoords :move-target (send *spot* :arm :end-coords) :rotation-axis t :revert-if-fail nil)
(send endcoords :translate #f(300 0 0) :world) ;座標系の平行移動
(send *spot* :inverse-kinematics endcoords :move-target (send *spot* :arm :end-coords) :rotation-axis t :revert-if-fail nil)
(send endcoords :translate #f(0 0 -500) :world)
(send *spot* :inverse-kinematics endcoords :move-target (send *spot* :arm :end-coords) :rotation-axis t :revert-if-fail nil)
(send *ri* :wait-interpolation)
(send *ri* :angle-vector (send *spot* :angle-vector) 2000)
note:
$ rqt_image_view
を使うと、画像の送られているトピックをGUIで閲覧することができる
カメラの方のテストなどを色々した後に改めて同じコードを動かしたところ、spotの胴体がアームが動く途中に下がるようになってしまい、アームの先端位置もその分ずれるようになってしまいました。以下が、IKを解いて求めた姿勢をspotに送るときに実行したコードです。
なるほど.これの対応は宿題にさせてください. 一方,ビジュアルフィードバック的に何回かIkを行うコードにもトライしてみましょう.
@sktometometo Coralのパノラマ画像から人のBoundingBox出すのってどうやってるんだっけ?
PanoramaHumanPoseEstitaterでなくてPanoramaObjectDetectorの方使わないとパノラマ画像の切れ目でバグります
@20niship nao
をeuslisp
のKinematics simulator
で移動するようにしました.
https://github.com/jsk-ros-pkg/jsk_robot/pull/1731
https://user-images.githubusercontent.com/9300063/202148997-2c35761b-dcfd-4117-894d-5a8afb210172.mp4
@sktometometo
PanoramaHumanPoseEstitaterでなくてPanoramaObjectDetectorの方使わないとパノラマ画像の切れ目でバグります
なるほど,ありがとう! PanoramaHumanPoseEstimatorでもrectだすように最近したんだけど,それでもダメかな. まぁObjectDetectorでもいいんだけど.
@AyumuIwa
これらしいです. object detectionで人を認識して,BoundingBoxがでるようです.
にしみやくんの進捗 ★launchするときは、NAO_IPの指定を忘れないこと ★rossetipをする
naoで :go-posしてみる 使い方
(load "package://naoeus/nao-interface.l")
nao-init
(send *ri* :go-pos 1 0 0)
:go-pos
はx(前後) y(左右) θ(回転) 単位はmとdegree
参考ページ:https://github.com/jsk-ros-pkg/jsk_robot/blob/master/jsk_naoqi_robot/naoqieus/naoqi-interface.l ↑にある関数はsend riできる
★fetchのREADME.mdが参考にしやすい (https://github.com/jsk-ros-pkg/jsk_robot/tree/master/jsk_fetch_robot#fetcheus-apis)
モデル(nao)に角度を送る
(send *nao* :angle-vector #f(110.0 10.0 -90.0 -40.0 0.0 110.0 -10.0 90.0 40.0 0.0 0.0 0.0 -30.0 60.0 -30.0 0.0 0.0 0.0 -30.0 60.0 -30.0 0.0 0.0 0.0))
モデル(nao)の角度を実機(ri)に送る
(send *ri* :angle-vector (send *nao* :angle-vector) 5000)
↑この場合だと5秒(5000ms)で実機が動く
実機の角度をとる(=今の実機の角度を知りたいとき)
(send *ri* :state :potentio-vector)
実機の角度をモデルに送る(=モデルをアップデート)
(send *nao* :angle-vector (send *ri* :state :potentio-vector))
カメラ画像を見たい時
rosrun image_view imgae_view image:=$(topic name)
rvizを使っても見ることができる
rosbagを取りたいとき
rosbag record $(topic name 1) $(topic name 2)
rosbagを再生したいとき
rosbag play $(bagfile name)
「岩田:傘を持ち付いてきてくれるロボット」
11月16日の進捗 ・spotで傘を持つ姿勢を作る ※ 人がしゃがんだ / 背伸びしたとき用の姿勢も作成(ikを解いた) ・全方位カメラからで取得した画像を自身のパソコンに表示(パノラマ画像) ・coral を利用し全方位カメラ画像で人物検出
git add <ファイル名>
git commit -m "<変更履歴>"
git push <自分のID> jsk_2022_10_semi
をやれば変更が残ります
@AyumuIwa @shryt @Kodai-Yamada コントローラを使う時
@sktometometo
PanoramaHumanPoseEstitaterでなくてPanoramaObjectDetectorの方使わないとパノラマ画像の切れ目でバグります
なるほど,ありがとう! PanoramaHumanPoseEstimatorでもrectだすように最近したんだけど,それでもダメかな. まぁObjectDetectorでもいいんだけど.
切れ目の部分でマージする処理入ってないので二重になります
@sktometometo
切れ目の部分でマージする処理入ってないので二重になります
もう少し詳しく報告してほしいんだけど,なぜこれはObjectDetectorではうまくいってて,HumanのRects版ではうまくいってないのかな? どこでObjectDetectorは二重問題を解消しているのかな? それに気づいた時に,どこかにIssueをだしたのかな?
EDIT: https://github.com/jsk-ros-pkg/jsk_recognition/issues/2746 こちらに移動.
@AyumuIwa
Panorama画像がcompressed
圧縮形式で出ていないという話だったので,圧縮形式で出るようにしました.
https://github.com/jsk-ros-pkg/jsk_recognition/pull/2745
@mqcmd196 上記のPRをSpot体内のブランチに入れてくれると,次回のゼミでPanorama画像もCompressedでネットワーク越しに見れると思います.
@knorth55 ありがとうございます!!!
@Kodai-Yamada くんの進捗
Spotユーザは次回,外実験をしようと思います.
@AyumuIwa @Kodai-Yamada 室内で傘と竿は意外と危ないということがわかったので,認識,リール抜きの動作の確認は次回外でやってみましょう.で,そのときの動画を撮ってこのIssueに貼って先輩たちをオッと言わせてみましょう(?) @shryt 外でボール認識がちゃんとできるか試してみましょう.画像認識は光量とか背景とかで結果が変わることがあります.外の環境でうまくできるか?そのあとは画像認識からGraspingの動作を作れるか?
@AyumuIwa パノラマでCompressedImageを出すPRを@knorth55 先生が作ってくださいました.今日も話したけど今ある人認識は,人全てに対してBoundingBoxを出してしまうので,自分しかいない環境か,自分が最も近くにいて,それ以外の人は十分離れた距離にいる仮定をおいて動作コードを書いていくといいと思います.BoundingBoxをeusの中でsubscribeすることになるんだけど,難しかったら次回か来てくれたときに一緒にやってみましょう @Kodai-Yamada 隣の部屋のメカできる人を召喚してみるので,設計に困ったら相談しましょう.僕も一緒に勉強します.
@Kodai-Yamada 時間あるときでいいので,今日渡したdynamixel,基板,リール,ケーブルの写真を貼ってくれると助かります
@ayumuiwa @shryt @Kodai-Yamada @20niship
ゴールを考える 必要な機能をリストアップする.
案:
初期化
setup.bashをsourceする
最新のファイルに更新する.
Emacs でよく使うキーバインド