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

add jsk_2022_10_semi #1375

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

add jsk_2022_10_semi #1375

wants to merge 2 commits into from

Conversation

k-okada
Copy link
Member

@k-okada k-okada commented Oct 26, 2022

@AyumuIwa
@shryt
@Kodai-Yamada
@20niship

ゴールを考える
必要な機能をリストアップする.

案:

  • 最近は物騒な事件が増えており,帰り道に付き添ってくれるロボット
  • 旅行先で荷物を持ってくれるロボット.道案内.釣り.餌を針につける
  • 山道を歩く.自然な歩行.

初期化

mkdir -p semi_ws/src
cd semi_ws/src/
git clone https://github.com/jsk-ros-pkg/jsk_demos
git clone https://github.com/jsk-ros-pkg/jsk_robot
cd jsk_demos/
git checkout jsk_2022_10_semi
cd ~/semi_ws/
source /opt/ros/melodic/setup.bash
sudo apt update
rosdep install --from-path src --ignore-src -y -r
catkin b jsk_2022_10_semi

setup.bashをsourceする

source ~/semi_ws/devel/setup.bash

最新のファイルに更新する.

cd ~/semi_ws/src/jsk_demos
git pull origin jsk_2022_10_semi

Emacs でよく使うキーバインド

M-x shell ;; shell を立ち上げる
  M-p ;; ひとつ前のコマンドを表示
  M-n ;; ひとつ後のコマンドを表示
C-x o ;; ウインドウを切り替える
C-x f  ;; ファイルをロードする
C-x s ;; ファイルをセーブする.

@Kodai-Yamada
Copy link

手元の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

@tkmtnt7000
Copy link
Member

tkmtnt7000 commented Oct 27, 2022

多分ですがjsk_pr2eusをワークスペースに入れてビルドが必要だと思います。ブランチはmasterで大丈夫なはずです。

@k-okada
Copy link
Member Author

k-okada commented Oct 27, 2022

それでもいいんだけど,毎回ソース入れると,ソース入れてコンパイルするだけの演習になるので,
jsk-ros-pkg/jsk_robot#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"

@tkmtnt7000
Copy link
Member

tkmtnt7000 commented Oct 27, 2022

ありがとうございます。
毎回jsk_pr2eusをソースから入れてくださいと思い出して言うのも大変なので賛成です。
既知の副作用みたいなものがなければよさそうに思います。

@mqcmd196
Copy link
Member

対応ありがとうございました

@mqcmd196
Copy link
Member

@AyumuIwa
@shryt
@Kodai-Yamada
@20niship

自己紹介と皆さんの名前聞くの忘れていました,M2の大日方(おびなた)です
昨日用事があって途中で帰ってしまいました.その後トラブルはありましたか?
昨日のおさらいです.

Fetchを動かしたいとき

JSKに来たら

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のインタプリタを起動

@AyumuIwa
Copy link

開始方法をまとめていただき、ありがとうございます。
B3の岩田歩です。
昨日はありがとうございました。特にトラブルはありませんでした。
これからもよろしくお願いいたします。

@mqcmd196
Copy link
Member

roseusでロボットを動かす準備をする

(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の略(多分)

@mqcmd196
Copy link
Member

Fetchを動かすときのコツ

  • 特定の姿勢を作って,そこまで腕を動かすとき,腕の軌道が複雑になりそうだなとおもったら経由点を何個か作ってangle-vectorを送るとよい

Fetchを動かすときの注意

  • 腕を動かすときはFetchの腕の動く範囲に人がいないか確認.Fetchの腕は強い
  • torsoが上がったまま移動をさせない
  • 何かあったら赤い緊急停止ボタンを押す.ひねると復帰

@mqcmd196
Copy link
Member

mqcmd196 commented Nov 9, 2022

@shryt
Copy link

shryt commented Nov 9, 2022

spotのipは 133.11.216.166 、macは 14:eb:b6:67:d6:94 、ホスト名は StrelKa です
もう一台は 133.11.216.165 、ホスト名は belKa です

@mqcmd196
Copy link
Member

mqcmd196 commented Nov 9, 2022

(send *ri* speak-jp "こんにちは")

@mqcmd196
Copy link
Member

mqcmd196 commented Nov 9, 2022

Coralの使い方
https://github.com/jsk-ros-pkg/coral_usb_ros

@a-ichikura
Copy link

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

@AyumuIwa
Copy link

AyumuIwa commented Nov 9, 2022

岩田くんのきれいな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

@a-ichikura
Copy link

参考:
私がkinova(前にspotでついていた腕)でフリスビーを取ろうとしたときのlaunchファイル
https://github.com/HiroIshida/snippets/blob/master/ros/launch_files/coral_ichikura/main.launch

pointcloud使うときに問題が起きたのでそのログ:
HiroIshida/snippets#29

@20niship
Copy link

@k-okada
昨日は欠席してしまい本当にすみません。生活習慣が乱れていて昼に寝落ちしていました。忙しい中準備してくださっているのに大変申し訳ないです
恐縮ですが, 前回どのようなことを行ったかご教示いただけますと幸いです。

@k-okada
Copy link
Member Author

k-okada commented Nov 10, 2022

昨日はSpotの環境構築&プログラム,Coralで物体・人間認識,あたりをしていました。
Naoがつかいたいという事だったかと思うんだけど,使えるものがあるかな? > @a-ichikura @kochigami @ayfujii

来週でもよいし,それまででも来てくれれば(&用意できていれば)渡すことができると思います。

@a-ichikura
Copy link

a-ichikura commented Nov 10, 2022

@20niship
にしみやくん M2の市倉です
私もSpotを使っていて、昨日はその場にいてみんなと一緒に作業していたので簡単にまとめると、

大まかにいうとこんな流れで、
後はそれぞれのゼミ生が自分のやりたいデモにどんな動作が必要かを考えたりSpotのarmがどんな動きをするのか見てみたりする感じだったと思います。

私はにしみやくんがどのロボットでどんな動作を作ろうとしているのかわかっていないのですが、もしスポットが使いたいということなら、環境構築は色々問題が起きやすいのと一人では難しいと思うのでここまでは来週までに追いついた方がいいと思います。

NaOはラボにあってバッテリーが動くDiaが今 @tkmtnt7000 が使用しているので、
私の家に一台あるものを使うのであれば持ってきます(土日のうちに運びます…)

@tkmtnt7000
Copy link
Member

tkmtnt7000 commented Nov 10, 2022

M1の塚本です

今僕と市倉さんの席の間でmongodbテスト用にDiaを起動したままにしていますが、完ぺきにデモを動かしている状態ではないので、もし急ぎであれば僕の机の上のLaptop(Dia制御PC)でCtrl-cを押して引っこ抜いて持っていってもらっても構いません(申し訳ないですが今日もラボにはいないので...)

@20niship
Copy link

ありがとうございます!!
Spotを使うことは考えていませんが、時間があれば動かしてみたいと思っています、、、!!
先輩方が暇なときがあれば質問しに行くかもしれないので、よろしくお願いします

今僕と市倉さんの席の間でmongodbテスト用にDiaを起動したままにしていますが、完ぺきにデモを動かしている状態ではないので、もし急ぎであれば僕の机の上のLaptop(Dia制御PC)でCtrl-cを押して引っこ抜いて持っていってもらっても構いません

ありがとうございます、演習が終わったのでこの後ラボに寄ってみようと思っています

@k-okada

  • 機械系演習も同じ内容でいいなら、演習の時間等で二足歩行ロボットの脚部分を自作してみようかとも考えているのですが、演習と内容が一部かぶっても大丈夫ですか?
  • また、少人数ゼミでの最終日程(どれくらいまでに動画が撮れるようにしていればよいか)を教えていただきたいです。

@tkmtnt7000
Copy link
Member

tkmtnt7000 commented Nov 10, 2022

もし急ぎであれば...僕の机の上のLaptop(Dia制御PC)でCtrl-cを押して引っこ抜いて持っていってもらっても構いません

一応近くに対応できる人がいたら持って行って大丈夫です

@a-ichikura
Copy link

a-ichikura commented Nov 10, 2022

@20niship cc. @knorth55
にしみやくんの進捗

Python SDKのdocuments:
http://doc.aldebaran.com/2-5/naoqi/index.html

Tips:

  • NAO_IP = "133.11.216.xxx" (お腹のボタンを押すと喋る)
  • rosstip (自分のPCのIP)
    roscore
    roslaunch jsk_nao_startup jsk_nao_startup.launch network_interface:= $(xxxx) launch_joy:=false

network_interfaceはifconfigで出てきた133系の名前

naoeus

参考:https://github.com/jsk-ros-pkg/jsk_robot/blob/acb5000cd23249b38ad69bb5df3ae593fabbb1d5/jsk_naoqi_robot/naoeus/README.md
基本的に

(load "package://naoeus/nao-interface.l")
nao-init

喋る時は
send *ri* :speak-jp "こんにちは"

来週〜
NaOの動きを作ってみる
ボールのdetection(??)

@a-ichikura
Copy link

@tkmtnt7000 ちなみにNaOは持って帰っていません

@20niship
Copy link

今日は長い間本当にありがとうございました…!!
来週のゼミでは動かす所までいきたいので、今後ともよろしくお願いいたします。

@knorth55
Copy link
Member

knorth55 commented Nov 10, 2022

@20niship

今日の有線が繋がらない問題の原因ですが,根本的にはNetworkManagerenp0s31f6unmanagedになっていたからです.
とりあえず/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や何かのせいでenp0s31f6NetworkManagerの管理下からはずれてしまっているようです.
/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

参考リンク:
https://unix.stackexchange.com/questions/660311/why-does-a-network-connection-not-change-from-unmanaged

@shryt
Copy link

shryt commented Nov 16, 2022

手先の座標系を取得してコピー

(send (send *spot* :arm :end-coords) :copy-worldcoords)

@MiyabiTane
Copy link
Contributor

@shryt
学習させてみました。遠くでなければそこそこ識別できてそうですが、white_balllined_ballが似ているので誤認識が多い印象でした
Screenshot from 2022-11-30 21-11-32
Screenshot from 2022-11-30 21-11-12

参考までに学習の手順

git clone https://github.com/jsk-ros-pkg/coral_usb_ros.git
cd coral_usb_ros/training/labelme_voc
bash ./run.sh ball_dataset --num_training_steps 800 --checkpoint_num 800

@MiyabiTane
Copy link
Contributor

MiyabiTane commented Nov 30, 2022

@shryt
★使い方★
CoralTPUの環境構築が済んでいると聞いているのでその前提で書きます

  1. 学習済みモデル▷semi_2022.tflite
    launchファイル▷semi_2022.launch
    ラベルファイル▷semi_labels.txt
    をダウンロードします

  2. semi_2022.tflite, semi_labels.txtcoral_ws/src/coral_usb_ros/models下に、semi_2022.launchcoral_ws/src/coral_usb_ros/launch下に置きます

  3. 実行
    カメラの立ち上げ(以下はPCカメラの場合)

$ roslaunch roseus_tutorials usb-camera.launch

coral_usbの立ち上げ

$ source ~/coral_ws/devel/setup.bash
$ roslaunch coral_usb semi_2022.launch INPUT_IMAGE:=/image_raw  ## spotのカメラを使う場合は違うトピック名かもしれません
  1. 結果の表示
$ rosrun image_view image_view image:=/edgetpu_object_detector/output/image
  1. もし認識されなかったら以下のコマンドでGUIを立ち上げてscore_threshをさげてみてください
$ rosrun rqt_reconfigure rqt_reconfigure

Screenshot from 2022-11-30 21-48-44

@MiyabiTane
Copy link
Contributor

お借りしたボールは袋にいれて81C1(今日使っていた部屋)の机に置いておきます
申し訳ないのですが、来週以降私は来れないので、わからないことがあれば北川さんや大日方くんに聞いてみて下さい
すぐの対応でなくてよければGitでメンションしてもらえれば対応します

@pazeshun
Copy link

pazeshun commented Dec 1, 2022

@Kodai-Yamada 昨日動かなかったモバイルバッテリーを2個充電して、ゼミの机の上に置いておきました。使い方は同梱の説明書を読んでみてください。使ってみて、バッテリーの減りが異常に速いなどの問題があれば教えてください。

@shryt
Copy link

shryt commented Dec 1, 2022

@MiyabiTane ありがとうございます。今度行ったときに試してみます。

@knorth55
Copy link
Member

knorth55 commented Dec 7, 2022

ボール認識のDeepLearning結果のGoogle Driveリンク(全て)

https://drive.google.com/drive/folders/124gJjXWXRjsrkRHEZ1NJOeIK3wD7re6j

@Kodai-Yamada
Copy link

@pazeshun 用意していただきありがとうございます。どちらのモバイルバッテリーでも問題なく動きました。

@Kanazawanaoaki
Copy link
Contributor

@shryt @softyanija @tkmtnt7000

カメラの方のテストなどを色々した後に改めて同じコードを動かしたところ、spotの胴体がアームが動く途中に下がるようになってしまい、アームの先端位置もその分ずれるようになってしまいました。以下が、IKを解いて求めた姿勢をspotに送るときに実行したコードです。

jsk-ros-pkg/jsk_robot@37b4900k-okada/spot_ros-arm@2c6445b で対応しました.

spotでものをつかむのに関連する情報

https://github.com/jsk-ros-pkg/jsk_robot/pull/1701/files/43d80b979172e90ba394e69b954973620900342b..d805954cd6bea9e238cc5eabe2c1e12e0799ccd4

@tkmtnt7000
Copy link
Member

tkmtnt7000 commented Dec 7, 2022

動くかどうか全く確認していない&テキトーに書いたコードですが:pick-object-in-imageの使い方はこんな感じになると思います.
@shryt

#!/usr/bin/env roseus

(load "package://spoteus/spot-interface.l")
(ros::roseus-add-msgs "jsk_recognition_msgs")

(spot-init nil)
(setq *image-source* "hand_color")

(ros::subscribe "/edgetpu_object_detector/output/rects" jsk_recognition_msgs::RectArray #'cb)

(defun pick-object-in-image (image-source center-x center-y)
  (send *ri* :pick-object-in-image image-source center-x center-y))

(defun cb (msg)
  (let ((x (send (elt (send msg :rects) 0) :x))
        (y (send (elt (send msg :rects) 0) :y))
        (width (send (elt (send msg :rects) 0) :width))
        (height (send (elt (send msg :rects) 0) :height))
        (center-x (+ x (/ width 2)))
        (center-y (+ y (/ height 2))))
    (pick-object-in-image *image-source* center-x center-y)
    (unix::sleep 5)
    (send *ri* :stow-arm)
    ;;(send *ri* :wait-interpolation)                                                                
    ))

@shryt
Copy link

shryt commented Dec 7, 2022

12/07の進捗です。
・学習したボールをモデルするモデルの確認
:pick-object-in-imageを使ってボールを拾うモーションの作成
(その動画です。)

@knorth55
Copy link
Member

knorth55 commented Dec 7, 2022

ゼミの動画用のGoogleDriveです
JSKのSharedDrive/Movies/Semi/2022に動画をおいてもらえると,あとで確認もしやすいのでありがたいです.
よろしくお願いします.

@mqcmd196 @MiyabiTane @Kanazawanaoaki @k-okada @tkmtnt7000 @softyanija

https://drive.google.com/drive/folders/129ShuBhvtMYB1On9JFPjCcAdLxXTUawb

@AyumuIwa
Copy link

AyumuIwa commented Dec 7, 2022

12/07の進捗です。
以下のドライブにデモ動画を追加しました。
https://drive.google.com/drive/folders/129ShuBhvtMYB1On9JFPjCcAdLxXTUawb

今回実現した流れは、
1 spotに初期姿勢を取らせる
2 全方位カメラで人を探す
3 spotの近くに人がいたら、傘をセットしやすいようにアームを上げる
4 傘をセットできるようにspotの手を開閉する

@shryt
Copy link

shryt commented Dec 14, 2022

12/14の進捗です。

  • ボールを発見したとき、種類ごとに別々のトピックをpublish
  • ボールが黄色ければ一度拾った後すぐに捨てる
  • ボールが白ければ拾って、(右斜め前30°にいると仮定した)人の方を向いて、ボールを渡す

動画ドライブに追加しておきました。

@AyumuIwa
Copy link

AyumuIwa commented Dec 14, 2022

12/14の進捗です。
以下のドライブにデモ動画を追加しました。
https://drive.google.com/drive/folders/129ShuBhvtMYB1On9JFPjCcAdLxXTUawb

今回実現した流れは、
1 spotに初期姿勢を取らせる
2 全方位カメラで人を探す
3 近くに人が来たら、その位置に合わせてspotが移動する
4 人のいる方向に向けてアームを伸ばす
4 傘をセットできるようにspotの手を開閉する

@Kodai-Yamada
Copy link

12/14の進捗

3dプリンターでのサポーターの造形
竿を降る動作の調整
dynamixelの制御プログラムの作成

@knorth55
Copy link
Member

knorth55 commented Dec 14, 2022

Spot体内で動かしていたlaunchをメモしておきます.
obinataユーザで以下を起動していました.

@AyumuIwa のデモのために,jsk-ros-pkg/jsk_recognition#2754 で追加したlaunchを起動してました.

source ~/ros/spot_ws/devel/setup.bash
roslaunch jsk_perception panorama_human_3d_detection.launch gui:=false

@shryt のデモのために,coralの認識launchを起動していました.
モデルとラベルは #1375 (comment) で学習したものを,
~/ros/spot_ws/src/coral_usb_ros/modelsにダウンロードしてあります.

source ~/ros/spot_ws/devel/setup.bash
roslaunch coral_usb edgetpu_object_detector.launch label_file:=$(rospack find coral_usb)/models/semi_labels.txt model_file:=$(rospack find coral_usb)/models/semi_2022.tflite device_id:=1 INPUT_IMAGE:=/spot/camera/hand_color/image

@AyumuIwa
Copy link

Spot体内で動かしていたlaunchをメモしておきます. obinataユーザで以下を起動していました.

@AyumuIwa のデモのために,jsk-ros-pkg/jsk_recognition#2754 で追加したlaunchを起動してました.

source ~/ros/spot_ws/devel/setup.bash
roslaunch jsk_perception panorama_human_3d_detection.launch gui:=false

@knorth55 ありがとうございます。

@knorth55
Copy link
Member

knorth55 commented Dec 15, 2022

作業したければいつでも来てください
8階の部屋は開いてない時もありますが言ってくれれば開けます
Spotも使えるようになってます

@knorth55
Copy link
Member

knorth55 commented Dec 15, 2022

Strelka (Spot)ですが,ネットワークは改善してみました.
次回はもう少し早く通信できるはずです.
jsk-ros-pkg/jsk_robot#1765 (comment)

Screencast.2022-12-15.17.32.37.mp4

@AyumuIwa
Copy link

@knorth55
ありがとうございます。もしかしたら来週の月曜日の午後にspotの利用をお願いするかもしれません。
予定が決まり次第また連絡させていただきます。

@knorth55
Copy link
Member

@AyumuIwa 了解です,また月曜日にでもここで連絡してください.

@AyumuIwa
Copy link

@knorth55
体調を崩してしまったので、今日の午後行きたかったのですがやめさせていただきます。
申し訳ございません。

@knorth55
Copy link
Member

@AyumuIwa 了解です、体調気をつけて!ゆっくりやすんでください

@AyumuIwa
Copy link

@knorth55
今日この後16時半からspotを利用してもよろしいでしょうか。

@pazeshun
Copy link

@AyumuIwa
多分大丈夫だと思います。
16時まで僕が部屋で会議してるので、早めに来るのは難しいかもしれません。

@AyumuIwa
Copy link

@AyumuIwa
多分大丈夫だと思います。
16時まで僕が部屋で会議してるので、早めに来るのは難しいかもしれません。

ありがとうございます。

@knorth55
Copy link
Member

@AyumuIwa 大丈夫です!

@AyumuIwa
Copy link

@AyumuIwa 大丈夫です!

ありがとうございます。

@knorth55
Copy link
Member

@AyumuIwa
今日の実験の動画です!
https://drive.google.com/drive/folders/12KWUk5vaFMPC_XRBswiYbClD8yGwylNX?usp=share_link

@tkmtnt7000
Copy link
Member

@Kodai-Yamada
部屋の中で撮った実験動画を置いておきます
https://drive.google.com/drive/folders/1061nl8v_lixIPG0wsqRhpZ-6gdEwhr-K?usp=share_link

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

Successfully merging this pull request may close these issues.