Skip to content

Conversation

@k-okada
Copy link
Member

@k-okada k-okada commented Oct 16, 2024

@k-okada
Copy link
Member Author

k-okada commented Oct 16, 2024

宿題

PR2ロボットの関節の参考 #1272 (comment)

@k-okada
Copy link
Member Author

k-okada commented Oct 16, 2024

>> roseus
$ (load "package://pr2eus/pr2.l")
$ (objects (list (pr2)))
$ (send *pr2* :larm :shoulder-p :joint-angle 10)

またはファイルに

(require "package://pr2eus/pr2.l")  ;; 一回ロードしてあれば次はロードしない
(if (not (boundp '*pr2*)) (setq *pr2* (pr2))) ;; *pr2* という変数を作ってあれば、次は(pr2)を呼ばない
(objects (list *pr2*))
(send *pr2* :larm :shoulder-p :joint-angle 10)
(send *irtviewer* :draw-objects)

として

>> roseus
$ (load "demo.l")

@Michi-Tsubaki
Copy link

Michi-Tsubaki commented Oct 22, 2024

[メモ]
UML このViewer↓だと,日本語表示できます.
https://www.plantuml.com/plantuml/uml

@@ -0,0 +1,11 @@
cmake_minimum_required(VERSION 2.8.3)
project(jsk_2019_10_semi)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

jsk_2024_10_semi

@k-okada
Copy link
Member Author

k-okada commented Oct 23, 2024

10/23

@Michi-Tsubaki 椿 はんぺんを縫ってみた。お医者さんが手術を始めるPR2ポーズ、針を縫うUML。
@ishry 石川 くつしたまいれ
@ushidakyotaro 牛田 ハンガーにかかっている服をとってきてくれる。会うものを選んでくれる絵コンテ
@Rinno1478 末次 五目並べをして、悪態をついて、最後は喧嘩するロボットの絵コンテ

@ushidakyotaro
Copy link

ushidakyotaro commented Oct 23, 2024

source /opt/ros/noetic/setup.bash 
 rossetmaster pr1040
 rossetip
 rlwrap roseus

PR2のコード
https://github.com/ushidakyotaro/jsk_demos/tree/jsk_2024_10_semi/jsk_2024_10_semi

gitに追加する手順例)

git add demo.l demo1023.l 
git commit -m "add demo 1023"
git push ushidakyotaro jsk_2024_10_semi 

@mqcmd196
Copy link
Member

mermaidをREADME.mdに張り付けてみる

https://gist.github.com/mqcmd196/712ca3569c2ea46ae4ee3a206ab92fd7

@mqcmd196
Copy link
Member

sequenceDiagram
Alice->>John: Hello John, how are you?
loop HealthCheck
    John->>John: Fight against hypochondria
end
Note right of John: Rational thoughts!
John-->>Alice: Great!
John->>Bob: How about you?
Bob-->>John: Jolly good!
Loading

@Rinno1478
Copy link

@mqcmd196
Copy link
Member

mqcmd196 commented Oct 23, 2024

rostopic echo で表示される文字が,生のunicodeの場合に変換する方法

rostopic echo /speech_to_text | ascii2uni -a U -q

@mqcmd196
Copy link
Member

mqcmd196 commented Oct 28, 2024

水曜日のゼミの予習項目(家で事前にやりたい人向け.もちろん必須ではないです)になりますが,roseus (irteusgl)で逆運動学を解いてみる例です.

以下のコードを solve-ik.l などで保存して,roseus solve-ik.l とすると,対象物体の位置に対して,逆運動学を解いている様子がわかると思います.

#!/usr/bin/env roseus

;; PR2のモデルを読み込む
(require "package://pr2eus/pr2.l")
;; PR2のインスタンスを作成
(if (not (boundp '*pr2*)) (setq *pr2* (pr2)))

;; 1辺200mmの立方体を出現させる
(setq *cube* (make-cube 200 200 200)) ;; NOTE 実際はハンガーなど,デモに使用するモデルを作って出現させるとよいかもしれない
;; 立方体を(400, 0, 800)移動
(send *cube* :translate (float-vector 400 0 800)) ;; NOTE 画像認識結果から,ハンガーの位置を取得して移動するとよいかもしれない

;; 立方体の左側面に座標系を設定
(send *cube* :put :left-coords
      (make-cascoords
       :coords (send (send *cube* :copy-worldcoords) :translate (float-vector 0 100 0))
       :parent *cube*))

;; ビューワを表示
(objects (list *pr2* *cube*))

;; 左腕について,立方体の両側面に向かって逆運動学を解く
(send *pr2* :larm :inverse-kinematics
      (send (send *cube* :get :left-coords) :copy-worldcoords)
      :rotation-axis :z)

;; PR2の左腕で立方体を持ち上げて前に突き出す
;; PR2の左腕と立方体の左側を連結する.
(send *pr2* :larm :end-coords :assoc *cube*)
;; 立方体が現在の位置から相対で(100, 0, 200)に移動するように逆運動学を解く
(send *pr2*
      :inverse-kinematics (send (send (send *cube* :get :left-coords) :copy-worldcoords)
                                      :translate (float-vector 100.0 0.0 100.0))
      :move-target (send *cube* :get :left-coords)
      :link-list (send *pr2* :link-list (send (send *pr2* :larm :end-coords) :parent))
      :rotation-axis t
      :debug-view t)

;; NOTE ここで (send *ri* :angle-vector (send *pr2* :angle-vector) 2000) などを入れれば,手渡し動作が実行される

;; NOTE 両腕で持って渡すみたいな動作は,結構難しい? ref: https://github.com/euslisp/jskeus/issues/582
;; :assocは閉リンクを形成できないので,1つの箱に両腕を連結することはできない?

何が行われているかを詳しく知りたければ,一行一行インタプリタで実行してみてもいいかもしれません.

ちなみにインタプリタの起動の仕方は

  1. roseus ※履歴やカーソル移動が効かなくてしんどい
  2. emacsのshellを使う.(emacsを起動 -> M(Altキー)-x shell -> source ~/<ワークスペースのパス>/devel/setup.bash -> roseus)
  3. rlwrap roseus (履歴やカーソル移動が使えるようになる.rlwarp がないと言われたら sudo apt install rlwrap)

などがあります

@Michi-Tsubaki
Copy link

Michi-Tsubaki commented Oct 30, 2024

20241030

コード

動画

できたこと・やること

  • 針の受け渡しまで,2針目を今週中に書く
  • スポンジ・ラバー・こんにゃく(食べれない)

@mqcmd196
Copy link
Member

mqcmd196 commented Oct 30, 2024

@Michi-Tsubaki
素晴らしいので,PR作りました.See #1403 .今のブランチでそのままpushしてもらって大丈夫です

何個か質問入れてくれいてる?みたいなので,Code Reviewという形で答えていきたいと思います.

@mqcmd196
Copy link
Member

@Kanazawanaoaki ? @k-okada

別件でそろそろ行かないといけないので,@Michi-Tsubaki の質問(https://github.com/jsk-ros-pkg/jsk_demos/pull/1403/files#diff-c1567d64decb032da52de496256f4d60fad7960511b45804bd82f0d7de63a8b0) に答えていただけると助かります (今手元に環境がないので,自分のコメントが正しいか怪しいです...)

@mqcmd196
Copy link
Member

mqcmd196 commented Oct 30, 2024

あとFetch1075を使いたいときは

repositories:
  jsk-ros-pkg/jsk_robot:
    type: git
    url: [email protected]:jsk-ros-pkg/jsk_robot.git
    version: master
  moveit/moveit_msgs:
    type: git
    url: [email protected]:moveit/moveit_msgs.git
    version: f3e95603874670094fb8ca4225a6f4a0d56572c8
  ros/collada_urdf:
    type: git
    url: [email protected]:werner291/collada_urdf.git
    version: patch-1

<ワークスペース>/src/repos.yaml に置いて,

cd src
source ../devel/setup.bash
vcs import < repos.yaml
rosdep install -iry --from-paths .
cd ..
catkin build

してもらえれば,fetcheusで動きます

@sawada10
Copy link

sawada10 commented Oct 30, 2024

https://github.com/jsk-ros-pkg/jsk_robot/tree/master/jsk_fetch_robot#common

ここにeusで実機を動かすための基本的なコードが載っています

@k-okada
Copy link
Member Author

k-okada commented Oct 30, 2024

音声認識が動かないときの確認 rosnode info respeaker_node , rosnode info speech_to_text  を確認。
respeaker_node はrespawn が掛かっているので、デバイスのUSBケーブルの抜き差しもしてみる。speech_to_textが動かないときは、pr1040sで

 /home/applications/ros/noetic/devel/.private/respeaker_ros/share/respeaker_ros/venv/bin/python /home/applications/ros/noetic/src/jsk-ros-pkg/jsk_3rdparty/respeaker_ros/scripts/speech_to_text.py speech_to_text:=speech_to_text_google audio:=speech_audio sound_play:=robotsound_jp __name:=speech_to_text

を実行。10/30 18:06現在 leo からターミナルを立ち上げて実行中。

@Kanazawanaoaki
Copy link
Contributor

Kanazawanaoaki commented Nov 6, 2024

PR2の音量の変更方法 (pulseaudio)
PR2の体内にsshして

pactl set-sink-volume @DEFAULT_SINK@ 50%

で変更,

pactl list sinks | grep Volume

で確認できます.ゼミのときは80%くらいが良さそうです.
出力例

	Volume: front-left: 32768 /  50% / -18.06 dB,   front-right: 32768 /  50% / -18.06 dB
	Base Volume: 58409 /  89% / -3.00 dB

@Kanazawanaoaki
Copy link
Contributor

Kanazawanaoaki commented Nov 6, 2024

今leo-pr1040のtmux a -t 0で接続できるターミナルで走らせている物体検出モデルのDetic_rosのboxの出力結果のラベルを対応させるサンプルプログラムです.
https://gist.github.com/Kanazawanaoaki/b75892fc4167dc97ba290bfdc966fe3a#file-detic_box_and_label_sync_sample-py

(EuclideanClusteringのcluster_filterのrosparamを1にする必要あり c.f. https://github.com/HiroIshida/detic_ros/blob/4afc32aa2fab3ed19ec05c56ab778e07d591ac4e/launch/sample_detection.launch#L66

@Rinno1478
Copy link

@Michi-Tsubaki
Copy link

@mqcmd196
Copy link
Member

mqcmd196 commented Nov 6, 2024

ゼミ遅くまでお疲れさまでした.

今日皆さんに使ってもらった認識器のモデルはDeticです (https://github.com/facebookresearch/Detic )

ROSのtopicとして出しているコード https://github.com/HiroIshida/detic_ros です.処理が重いので,研究室のGPUマシンで動かしています.

@mqcmd196
Copy link
Member

mqcmd196 commented Nov 6, 2024

(自分用メモ https://github.com/HiroIshida/detic_ros/blob/master/node_script/wrapper.py#L139-L143 を直せばよさそう?)

@ishry
Copy link

ishry commented Nov 13, 2024

detecの認識結果を取得するコードです

;; (setq *tfl* (instance ros::transform-listener :init)))))                                                                                                                     
;;検知したboxとラベルを対応させるクラス                                                                                                                                         
(defclass box-label-synchronizer
  :super exact-time-message-filter)

(defmethod box-label-synchronizer
  (:callback (box-msg label-msg)
    (print (list box-msg label-msg))
    (print (send-all (list box-msg label-msg) :header :stamp))
    (box-cb box-msg label-msg)
    ))

  ;;サブスクライブ                                                                                                                                                              
  (setq box-sync (instance box-label-synchronizer :init
                           (list (list "/docker/detic_segmentor/output/boxes" jsk_recognition_msgs::BoundingBoxArray)
                                 (list "/docker/detic_segmentor/detected_classes" jsk_recognition_msgs::LabelArray))))


;;コールバック関数                                                                                                                                                              
;;/docker/detic_segmentor/detected_classesというトピックにidの対応あり                                                                                                          
(defun box-cb (box-msg label-msg)
  (ros::ros-info "received ~A boxes, ~A labels" (length (send box-msg :boxes)) (length (send label-msg :labels)))
  (dolist (msg-conbined (map cons #'(lambda (x y) (list  x y)) (send box-msg :boxes) (send label-msg :labels)))
    (let (box label)
      ;;(print (list msg-conbined))                                                                                                                                             
      (setq box (car msg-conbined) label (cadr msg-conbined))
      ;;(print (list box label))                                                                                                                                                
      (print (send label :name))
      (when (or (string= (send label :name) "ball") (string= (send label :name) "toy"));; 41 -> ball, 1110 ->toy                                                                
        (setq *target-coords* (send (ros::tf-pose->coords (send box :pose)) :copy-worldcoords))
        ;; (setq tfc (send *tfl* :lookup-transform "base_link" "head_mount_kinect_rgb_optical_frame" (ros::time 0)))                                                            
        ;; (print *target-coords*)                                                                                                                                              
        ;; (when *tfl*                                                                                                                                                          
        ;;  (setq *target-coords* (send tfc :transform  *target-coords*))                                                                                                       
        ;; )                                                                                                                                                                    
        ;; (print *target-coords*)                                                                                                                                              
        (setq *target-dimensions* (send box :dimensions))
        (format t "coords ~A, dimension ~A~%" (send *target-coords* :worldcoords) (* (send *target-dimensions* :x) (send *target-dimensions* :y) (send *target-dimensions* :z))\
)
        (when (and (< (elt (send *target-coords* :worldpos) 2) 400)
                   (> (elt (send *target-coords* :worldpos) 2) -400))
          (send *target-box* :move-to *target-coords* :world)
          (print "update target position")
          )))))


@Michi-Tsubaki
Copy link

@ishry https://item.rakuten.co.jp/high-broad/10000105/?iasid=07rpp_10095___en-m3fmdgnr-4k-71ea414b-a28b-4695-b3f1-f8d858eafb79 くっつくやつ。

@ishry
Copy link

ishry commented Nov 13, 2024

開発ブランチ

@ushidakyotaro
Copy link

11/13
https://github.com/ushidakyotaro/jsk_demos/tree/jsk_2024_10_semi/jsk_2024_10_semi

@k-okada
Copy link
Member Author

k-okada commented Dec 11, 2024

@Rinno1478 はい、無理せずによく休んでください。

@ushidakyotaro
Copy link

服を取ってくるロボット
最新のコード
https://github.com/ushidakyotaro/jsk_demos/blob/jsk_2024_10_semi/jsk_2024_10_semi/clothes-box-ik.l
服の掴む精度や、ヒトに渡す部分を来週実装する予定です。

@mqcmd196
Copy link
Member

服の掴む精度や、ヒトに渡す部分を来週実装する予定です。

いい感じです.個人的には

ヒトに渡す部分

を作ってみるのがいいと思います.精度はやり始めるときりがなくなってしまうし,人に親切な服の渡し方というのは面白いテーマなので

@mqcmd196
Copy link
Member

@Rinno1478 体調は大丈夫そうかな?時間のある時でいいのでこれまでのコードのPRをDraftで投げてみてください!

@Rinno1478
Copy link

@mqcmd196
#1407
PRです。このような感じで大丈夫でしょうか?

@mqcmd196
Copy link
Member

mqcmd196 commented Dec 16, 2024 via email

@Michi-Tsubaki
Copy link

発表スライド:
https://docs.google.com/presentation/d/1k3P7t8WFiFfWd8XWg11Lx1IaNS1ZWhML7oywBxo_yrY/edit#slide=id.g31a215b887e_0_12

システム構成図:
03240281_Michi-Tsubaki_pr2_surgery (1)

まんだらバージョン:
03240281_Michi-Tsubaki_pr2_surgery

@Michi-Tsubaki
Copy link

岡田先生 @k-okada
昨日から風邪を引いていて,咳と39度ほどの熱が治らないので本日のゼミを欠席させていただきます.
椿

P.S.
発表自体は2号館と8号館をzoomかmeetつなぐと思うので,体調が許せば,自宅から発表に参加させていただきたいです.

@k-okada
Copy link
Member Author

k-okada commented Dec 24, 2024

@Michi-Tsubaki はい、無理せずよく休んでください。

@Michi-Tsubaki
Copy link

自主プロ記念写真

image

@Michi-Tsubaki
Copy link

Michi-Tsubaki commented Feb 8, 2025

大日方さん
昨日はubuntu20.04の設定ありがとうございました.
昨日のポイントとしては,ThinkPad P14s +RTX A500環境のubuntu20.04の環境構築する場合は,通常の手順(自分でやって失敗した)に加えて,kernelのバージョンを5.19とかに上げるというところおさえておきます.

sudo dpkg -i linux-*.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19/amd64/linux-headers-5.19.0-051900-generic_5.19.0-051900.202207312230_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/kernelmainline/v5.19/amd64/linux-headers-5.19.0-051900_5.19.0-051900.202207312230_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19/amd64/linux-image-unsigned-5.19.0-051900-generic_5.19.0-051900.202207312230_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.19/amd64/linux-modules-5.19.0-051900-generic_5.19.0-051900.202207312230_amd64.deb

昨日のnvidiaドライバ問題ですが,ubuntu20.04でubuntu-driversで候補に上がるドライバーをすべて試してもnvidia-smi で出なかったので,ひとまず諦めて...,ubuntu24.04とデュアルブートさせました.ubuntu24.04側ではRTX A500がちゃんと見えたので,GPUを使う作業は24.04で,実際のロボットを動かすときは20.04でという感じにします🙇‍♂

24.04では550のdriverで見れているみたい↓ですが,kernelとそれ以外のOSまわりとdriverとGPUの相性問題がかなりあるとのことで... これはのちのち勉強します.

$ nvidia-smi 
Sat Feb  8 22:34:30 2025       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.120                Driver Version: 550.120        CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA RTX A500 Laptop GPU     Off |   00000000:03:00.0 Off |                  N/A |
| N/A   39C    P0              7W /   30W |       8MiB /   4096MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      2323      G   /usr/lib/xorg/Xorg                              4MiB |
+-----------------------------------------------------------------------------------------+

@mqcmd196
Copy link
Member

自主プロ記念写真

すごい,みんな賞取ったんですね

@mqcmd196
Copy link
Member

昨日のnvidiaドライバ問題ですが,ubuntu20.04でubuntu-driversで候補に上がるドライバーをすべて試してもnvidia-smi で出なかったので,ひとまず諦めて...,ubuntu24.04とデュアルブートさせました.ubuntu24.04側ではRTX A500がちゃんと見えたので,GPUを使う作業は24.04で,実際のロボットを動かすときは20.04でという感じにします🙇‍♂

dmesgでnvidia周りでカーネルパニックを起こしている様子はなかったので,よくわからなかったのですが,Ubuntu 24.04のkernel versionでUbuntu 20.04を動かすという作戦はありそうです.Ubuntu 24.04の環境で uname -r をして,それと同じバージョンのカーネルをインストールするとかですかね.PCI周りのドライバが古くてGPUが見えていないはありそうかなと

@Michi-Tsubaki
Copy link

血管模倣セットを縫いたいので,明日か明後日ロボット使っても良いでしょうか?

@mqcmd196
Copy link
Member

mqcmd196 commented Feb 17, 2025 via email

@Kanazawanaoaki
Copy link
Contributor

Kanazawanaoaki commented Feb 17, 2025

血管模倣セットを縫いたいので,明日か明後日ロボット使っても良いでしょうか?

使うのはPR2ですよね.大丈夫です.
PR2のデフォルトのキャリブレーションの値がゼミのときと変わっていて,ゼミの時のものに戻すこともできるので,最初にどうするか一度相談しましょう.自分はおそらくどちらも研究室にいると思います.

@Michi-Tsubaki
Copy link

血管模倣セットを縫いたいので,明日か明後日ロボット使っても良いでしょうか?

使うのはPR2ですよね.大丈夫です. PR2のデフォルトのキャリブレーションの値がゼミのときと変わっていて,ゼミの時のものに戻すこともできるので,最初にどうするか一度相談しましょう.自分はおそらくどちらも研究室にいると思います.

@Kanazawanaoaki はいPR2を使いたいです.明日明後日どちらもOKということでしたら,明後日(水)の15:00頃 は大丈夫でしょうか?

@Kanazawanaoaki
Copy link
Contributor

@Michi-Tsubaki
了解です.明後日(水)の15:00頃でも(だいたい)いつでも大丈夫です.

@Kanazawanaoaki
Copy link
Contributor

@Michi-Tsubaki
ちなみにPR2のグリッパ部分のCADは
https://github.com/jsk-ros-pkg/jsk_robot/tree/master/jsk_pr2_robot/jsk_pr2_accessories/pr2_fingertips
にあって,今着いているのはPR2_Gripper_CL-M3-5.0-BR_20191030.STLにM3のインサートをはんだごてで挿入したものです.

@Michi-Tsubaki
Copy link

Michi-Tsubaki commented Feb 25, 2025

明日(2/26) 昼〜と金曜日(2/27) 夕方〜PR2動かしに行っても大丈夫でしょうか?

@Kanazawanaoaki
Copy link
Contributor

@Michi-Tsubaki はい大丈夫です.

@Michi-Tsubaki
Copy link

来週の月曜日PR2動かしても良いでしょうか?

お借りしている,D405での針の検出,カラーフィルターだと針の色が光でころころ変わってしまってやはり難しかったので,エッジ検出のノードを起動したらエッジはしっかりと見えた↓ので,
Screenshot from 2025-03-07 10-43-23
あとは、このエッジで囲まれた領域をを塗りつぶすノードを書けば,mask-filterでdepth画像をマスクできて針の座標を取得できる気がしています.

@Kanazawanaoaki
Copy link
Contributor

@Michi-Tsubaki 来週の月曜日(3/10)ですね.大丈夫です.

@Michi-Tsubaki
Copy link

今週の金曜日か来週の火曜日の午後はPR2空いていますでしょうか?

@Kanazawanaoaki
Copy link
Contributor

@Michi-Tsubaki 今週の金曜日は予定があって自分は研究室にいないのですがPR2は空いていて,来週の火曜日もPR2は空いていると思いますが学部の卒業式の日なので少しバタバタしているかも知れません.多分問題無いと思いますが.

@Michi-Tsubaki
Copy link

Michi-Tsubaki commented Mar 19, 2025

ありがとうございます.では,金曜日に研究室に行ってみて,特に問題なさそうなら,使います!

@Michi-Tsubaki
Copy link

@Kanazawanaoaki
PR2背面の赤のメカニカルなボタンは押すべきではないのだろうなと思いつつ,sshアクセスもできずrun-stopのリモコンも使えなかったので,やむを得ず操作しました.一応,報告しておきます.

  • kinematic simulatorが立ち上がってしまって,ping pr1040も反応がなかった.
  • sudo pr2-shutdownでシャットダウンして,起動するのを待った.
  • 15分経っても起動しなかった(ping pr1040も反応なく,起動中の赤色のランプもC1,C2ともに光らなかった).
  • 背面の赤のメカニカルなボタンを操作した.
  • calibrationが失敗したので,pr2_bringupのrecalibrationのlaunchを実行したら,failed to load calibration と出てすぐにノードが落ちた.
  • よく分からず,リモコンでもトルクがonにならないので諦めてsudo pr2-sutdown --rebootをした.
  • 起動後,recalibrationのlaunchを実行
  • calibrationは上手くいって,kinematic simulatorも立ち上がらなくなった🙌

@Kanazawanaoaki
Copy link
Contributor

Kanazawanaoaki commented Mar 24, 2025

@Michi-Tsubaki
遅くなりすみません.報告&対応ありがとうございます.

  • 最初のping pr1040も反応が無かったのは変ですね,sudo pr2-shutdownは外部のPCからはpr1040(c1)にsshできなかったけど背面のディスプレイを見ながらpr1040nからc1にsshして行ったという感じですかね.それならばネットワーク周りに何か異常があったのかも知れません.自分はあまり遭遇したことが無い気がします.
  • 3つ目の"15分経っても起動しなかった"は正しい挙動で,sudo pr2-shutdownは電源を落とすだけなので,起動するためには台車裏のブレーカの赤いスイッチをoffにしてからonにする必要があります.(もしくは今回椿君がやってくれたようにsudo pr2-sutdown --rebootだと再起動してくれます.※問題がある時のリブートとしては経験則上--rebootよりも一度電源を落として少しまってからブレーカから手動で起動すると直ることが多い)
  • PR2には背中にある赤いボタンと,台車裏にあるブレーカの赤いスイッチと2つあるのですが,"背面の赤のメカニカルなボタン"はどちらですかね.背中にある赤いボタンはリモコン(Run-Stop)と同じ機能なので気軽に押しても良くて,確かリモコンも背中のボタンも両方Runになっていないとサーボが入らない仕様になっていると重います.台車裏のブレーカの赤いスイッチはPR2のPCやメインボード等々全体への電源供給のスイッチで基本的にはPCが切れていることを確認してからon/offします.
  • /var/log/ros/robot.logにあるログを($ tail -n 8000 /var/log/ros/robot.log > /tmp/20250324_robot.logなどして取り出して)少し見てみた感じだと
Mar 21 15:48:11 pr1040 robot[38859]: [ERROR] [1742539587.592468] [/calibrate_pr2:rosout]: Calibration is on hold because motors are halted. Enable the run-stop
Mar 21 15:48:11 pr1040 robot[38859]: [ERROR] [1742539588.697697] [/calibrate_pr2:rosout]: Calibration is on hold because motors are halted. Enable the run-stop
Mar 21 15:48:11 pr1040 robot[38859]: [ERROR] [1742539690.993851] [/calibrate_pr2:rosout]: Calibration failed: service [/calibration_controllers/calibrate/cal_caster_fl/is_calibrated] returned no response

のようになっていて,もしかしたらサーボが入っていなかったのが今回のキャリブが失敗した原因だったのかも知れません.定かではありませんが.

今回の例に近い事例は無かった気がしますが,PR2やFetchなどのロボットのシステムについては
jsk-ros-pkg/jsk_robot#1641 のように https://github.com/jsk-ros-pkg/jsk_robot/issues に報告されていたりするので,余裕があるときはそちらを検索してみたり,整理してissueをたてたりするのが良いかも知れません.(理想的には)

  • PR2でrossetmaster等をしていてrostopic listが見えるのにKinematics Simulatorが立ち上がってしまうのはゼミの時など最近時々起こっている気がして,その時に出るroseusのログをみると色々書いてあるのですが,ros::get-num-subscribers "/l_arm_controller/follow_joint_trajectory/cancel"等の結果が0になってしまって正常にロボットのコントローラーが立ち上がっていないとeusのロボットインターフェースが判断しているからです.この時にもコマンドラインでrostopic infoをするとrealtime_loopがSubscribersにいるのでちゃんと接続できるはずなのですが,まだ原因不明で急いでいるときは再起動するのが早いかもです.(ブレーカからの再起動までしなくても,roscoreの立ち上げ直しで,c1で$sudo systemctl stop robot.serviceで切って$systemctl start jsk-pr2-startup.serviceで立ち上げ直すので解決する可能性も高いと思います.)

@Michi-Tsubaki
Copy link

最初のping pr1040も反応が無かったのは変ですね,

はい.よく分からなくて,tork(テレビのやつ)からping pr1040しても返って来なくて,焦りました.背面のC3のディスプレイは,動いていました.shutdownしたら,c3も同時に(正常に)落ちました.

sudo pr2-shutdownは電源を落とすだけなので,起動するためには台車裏のブレーカの赤いスイッチをoffにしてからonにする必要があります.

なるほど.では,正しい挙動かつ正しい対応をしていたみたいなので,安心しました.shutdownしても,電源に繋がっていれば,起動されるものだと誤解していました.ありがとうございます.

背面の赤のメカニカルなボタン

は,「ブレーカ」を意図していました.が,↑のshutdownを行って起動していなかったのを起動させただけということになるので,特に問題はなさそうですね.

roscoreの立ち上げ直しで,c1でsudo systemctl stop robot.serviceで切ってsystemctl start jsk-pr2-startup.serviceで立ち上げ直すので解決する可能性も高い

同様の事象が起こったら,ブレーカー落とす前に試してみようと思います.

/var/log/ros/robot.logにあるログを... /
余裕があるときはそちらを検索してみたり,整理してissueをたてたりするのが良いかも知れません.

次回以降,過去のissueで対処できなかった問題や,過去のissueに類似した問題が起こってissueを立てるときに,logを貼り付けて問題を共有できるようにしてみます.

@k-okada k-okada mentioned this pull request Oct 15, 2025
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.

9 participants