2025年1月 整理
やること
ゴール:
(実装方法は変えずに)一つのプログラムで、normal_kxr, kashiwagi, kuromitsu, denden, miyamichi?が動くようにする
別のやること
やるべきこと
整理するべきもの
永田さん卒論試問お疲れさまでした.
ちょうどいいタイミングなのでお願いしたいことがあって,例えば永田さんの作ったソフトウェアのリポジトリは,矢野倉先生のrcb4というドライバのリポジトリの上に作っていると思うのですが,永田さんの作った永田さんのデモ関連コードと,KXRドライバは分けてほしいです.
澤田さんと市倉さんも同様に,時間があるうちにくろみつとかしわぎさん固有のコードを分けていくフェーズかなと思います.
KXRは今みんなが基盤として使っているシステムだと思っていて,来年度新入生が入ったときに簡単に引き継げるようにしたいというのと,rosのビルドシステムのいい勉強の機会になると思います.
デモコードはjsk_demosにPRを出してください.なんのリポジトリが必要かはrosinstall(wstool向け), あるいはrepos(vcstool向け)を作る,どうビルドすればいいかは基本は catkin buildでbuildできるようにするが,特殊な工程が必要な場合はREADMEに書く,という風にするといいと思います.
目的
新入生が入った時に簡単に引き継げるようにしたい
目標状態
1つのcatkin_wsで、それぞれのロボット(プーさん、柏木さん、くろみつ)が動くようにする
参考
やること
eye-display やることの整理
https://github.com/sktometometo/eye-display/pull/27
※一個ずつ、やる => commit を繰り返す。上から一つずつみる。
環境構築(KXRの体内)
$ sudo apt install ros-$ROS_DISTRO-rosserial
$ sudo apt install ros-$ROS_DISTRO-rosserial-arduino
$ cd ~
$ mkdir -p toshima_ws/src
$ cd ~/toshima_ws/src
$ git clone git@github.com:sawada10/rosserial.git
$ cd ~/toshima_ws
$ catkin build
—----------------------------------------------------------------
$ cd ~
$ git clone git@gitlab.jsk.imi.i.u-tokyo.ac.jp:rcb4eus/rcb4eus.git
—----------------------------------------------------------------
$ cd ~/toshima_ws/src
$ git clone git@github.com:sawada10/eye_fsr_files.git
$ cd ~/toshima_ws
$ catkin build
—-----------------------------------------------------------
4.com-initが止まらないようにするために
sudo systemctl disable rcb4roscontroller.service
sudo systemctl stop rcb4roscontroller.service
—------------------------------------------------------------------
cd /rcb4eus/
git pull origin master
make
| emotion | iris | pupil | reflex | upperlid |
0 | normal | kashiwagi_iris.jpg | kashiwagi_pupil.png sprite_pupil.fillCircle(58, 58, 30, TFT_BLACK); | kashiwagi_reflex.png sprite_reflex.fillCircle(40, 40, 6, TFT_LIGHTGRAY); | kashiwagi_upperlid.jpg |
1 | blink | kashiwagi_iris.jpg | kashiwagi_pupil.png sprite_pupil.fillCircle(58, 58, 30, TFT_BLACK); | kashiwagi_reflex.png sprite_reflex.fillCircle(40, 40, 6, TFT_LIGHTGRAY); | kashiwagi_upperlid.jpg |
2 | surprised | kashiwagi_iris_surprised.jpg (iris_surprised_right.jpg) | kashiwagi_pupil_surprised.png sprite_pupil.fillCircle(image_height / 2, image_width / 2, 30, TFT_BLACK); | kashiwagi_reflex_surprised.png sprite_pupil.fillCircle(image_height / 2, image_width / 2, 30, TFT_BLACK); | kashiwagi_upperlid.jpg |
3 | sleepy | kashiwagi_iris.jpg | kashiwagi_pupil.png sprite_pupil.fillCircle(58, 58, 30, TFT_BLACK); | kashiwagi_reflex.png sprite_reflex.fillCircle(40, 40, 6, TFT_LIGHTGRAY); | kashiwagi_upperlid.jpg |
4 | angry | kashiwagi_iris.jpg | kashiwagi_pupil.png sprite_pupil.fillCircle(58, 58, 30, TFT_BLACK); | kashiwagi_reflex.png sprite_reflex.fillCircle(40, 40, 6, TFT_LIGHTGRAY); | kashiwagi_upperlid_ldown.png (upperlid_leftside_down.png) |
5 | sad | kashiwagi_iris.jpg | kashiwagi_pupil.png sprite_pupil.fillCircle(58, 58, 30, TFT_BLACK); | kashiwagi_reflex.png sprite_reflex.fillCircle(40, 40, 6, TFT_LIGHTGRAY); | kashiwagi_upperlid_rdown.png (upperlid_rightside_down.png) |
6 | happy | white.jpg | white.jpg | kashiwagi_happy.jpg (upperlid_happy_right.jpg) | white.jpg |
7 | troubled | white.jpg | white.jpg | kashiwagi_troubled.jpg | white.jpg |
8 | very_happy | white.jpg | white.jpg | kashiwagi_very_happy.jpg (kashiwagi_delighted.jpg) | white.jpg |
9 | expecting | kashiwagi_iris.jpg | white.jpg | kashiwagi_reflex_expecting.png sprite_reflex.fillCircle(image_height / 2, 45, 23, TFT_LIGHTGRAY) sprite_reflex.fillCircle(image_height / 2, 100, 15, TFT_LIGHTGRAY); | kashiwagi_upperlid.jpg |
| emotion | iris | pupil | reflex | upperlid |
0 | normal | kashiwagi_iris.jpg | kashiwagi_pupil.png sprite_pupil.fillCircle(58, 58, 30, TFT_BLACK); | kashiwagi_reflex.png sprite_reflex.fillCircle(40, 40, 6, TFT_LIGHTGRAY); | kashiwagi_upperlid.jpg |
1 | blink | kashiwagi_iris.jpg | kashiwagi_pupil.png sprite_pupil.fillCircle(58, 58, 30, TFT_BLACK); | kashiwagi_reflex.png sprite_reflex.fillCircle(40, 40, 6, TFT_LIGHTGRAY); | kashiwagi_upperlid.jpg |
2 | surprised | kashiwagi_iris_surprised.jpg (iris_surprised_right.jpg) | kashiwagi_pupil_surprised.png sprite_pupil.fillCircle(image_height / 2, image_width / 2, 30, TFT_BLACK); | kashiwagi_reflex_surprised.png sprite_pupil.fillCircle(image_height / 2, image_width / 2, 30, TFT_BLACK); | kashiwagi_upperlid.jpg |
3 | sleepy | kashiwagi_iris.jpg | kashiwagi_pupil.png sprite_pupil.fillCircle(58, 58, 30, TFT_BLACK); | kashiwagi_reflex.png sprite_reflex.fillCircle(40, 40, 6, TFT_LIGHTGRAY); | kashiwagi_upperlid.jpg |
4 | angry | kashiwagi_iris.jpg | kashiwagi_pupil.png sprite_pupil.fillCircle(58, 58, 30, TFT_BLACK); | kashiwagi_reflex.png sprite_reflex.fillCircle(40, 40, 6, TFT_LIGHTGRAY); | kashiwagi_upperlid_ldown.png (upperlid_leftside_down.png) |
5 | sad | kashiwagi_iris.jpg | kashiwagi_pupil.png sprite_pupil.fillCircle(58, 58, 30, TFT_BLACK); | kashiwagi_reflex.png sprite_reflex.fillCircle(40, 40, 6, TFT_LIGHTGRAY); | kashiwagi_upperlid_rdown.png (upperlid_rightside_down.png) |
6 | happy | white.jpg | white.jpg | kashiwagi_happy.jpg (upperlid_happy_right.jpg) | white.jpg |
7 | troubled | white.jpg | white.jpg | kashiwagi_troubled.jpg | white.jpg |
8 | very_happy | white.jpg | white.jpg | kashiwagi_very_happy.jpg (kashiwagi_delighted.jpg) | white.jpg |
9 | expecting | kashiwagi_iris.jpg | white.jpg | kashiwagi_reflex_expecting.png sprite_reflex.fillCircle(image_height / 2, 45, 23, TFT_LIGHTGRAY) sprite_reflex.fillCircle(image_height / 2, 100, 15, TFT_LIGHTGRAY); | kashiwagi_upperlid.jpg |
| emotion | iris | pupil | reflex | upperlid |
0 | normal | white.jpg | denden_pupil.png sprite_pupil.fillCircle(image_width / 2, image_height / 2, 30, TFT_BLACK); | white.jpg | normal_kxr_upperlid.jpg |
1 | blink | white.jpg | denden_pupil.png | white.jpg | normal_kxr_upperlid.jpg |
2 | surprised | white.jpg | denden_pupil_surprised.png sprite_pupil.fillCircle(image_height / 2, image_width / 2, 15, TFT_BLACK); | denden_reflex_surprised.png sprite_reflex.fillCircle(image_height / 2 +5, image_width / 2, 7, TFT_LIGHTGRAY); | normal_kxr_upperlid.jpg |
3 | sleepy (tired) | white.jpg | denden_pupil.png | white.jpg | normal_kxr_upperlid.jpg |
4 | angry | white.jpg | denden_pupil.png | white.jpg | normal_kxr_upperlid_ldown |
5 | sad / troubled | denden_tear.jpeg | denden_pupil.png | denden_reflex_sad.png sprite_reflex.fillCircle(50, 50, 6, TFT_LIGHTGRAY); | normal_kxr_upperlid_rdown |
6 | happy (star) | white.jpg | white.jpg | white.jpg | denden_upperlid_star.jpeg |
7 | heart | white.jpg | white.jpg | white.jpg | denden_upperlid_heart.jpeg |
8 | | | | | |
9 | image_width = 139 | | | | |
やったこと
4/6 debug
11/19 豊島岡イベント
関係者向け資料
| emotion | test結果 | 修正後 |
0 | normal | reflexなし => 画像ファイルのミス。白い画像だったため、透過処理走った。 main.cppを見て、実際に使っていたreflex.pngと置換した | たぶん◎ |
1 | blink | たぶん◎ | たぶん◎ |
3 | sleepy | reflex, irisなし => 0と同様のミス & path_irisにreflexのパスがあったので、空気読んでkrmt_iris_normal.pngに書き換え | たぶん◎(reflexが見えないと思ったけど、upperlidにかくれてるだけだった) |
5 | sad | 怒っていそうな目 => 空気を読んで左右反転 | たぶん◎ |
7 | troubled | ずっと下がったまぶた => upperlid_positionを修正 | たぶん◎ |
8 | delightedd | ずっと下がったまぶた => data/krmt_reflex_delighed.pngにタイポがあったので修正 | たぶん◎ |
10 | heart | ずっと下がったまぶた => 7と同様のミス | たぶん◎ |
11 | shine1 | 〃 | たぶん◎ |
12 | shine2 | 〃 | たぶん◎ |
14 | boring | たぶん◎ | たぶん◎ |
16 | regret1 | 空気を読んで目のぎゅっとしてるのを左右反転 | たぶん◎ |
17 | regret2 | 空気を読んで目のぎゅっとしてるのを左右反転 | たぶん◎ |
15 | serious | 空気を読んでupperlidの左右反転 reflexなしは0と同様のミス | たぶん◎ |
やること:FSRにタッチしたら目の表情を変え、KXRが動く
/serial_node3
/power
/power_to_touch
/touched_status
/touch_to_eye
/eye_status
/serial_node1
/serial_node2
/touch_to_action
/action
/action_sub
FSR
eye_module
KXRへ
動作指令
ROSの構成
やること:FSRにタッチしたら目の表情を変え、KXRが動く
/serial_node3
/power
/power_to_touch
/touched_status
/touch_to_eye
/eye_status
/serial_node1
/serial_node2
/touch_to_action
/action
/action_sub
FSR
eye_module
KXRへ
動作指令
ROSの構成(活動の中で生徒が編集する部分)
/
/speech
/speech
/touch_to_eye
/power_to_touch
構成(cf. 稲葉先生資料) 青塗りの箇所が今回の活動とよく関連する部分
D405 & ECHO ヘッドの場合
関節制御ボードkondoh7
STM32H7
400MHz
UART
I2C
ICS port x 6
M5StickV/M5UnitV
カメラ
M5StickV/M5UnitV
カメラ
pisugar 2 / 3
バッテリ制御ボード
3.7V, 1200mAh
M5ステレオヘッドの場合
Intel RealSense D405
rgb 距離画像
848x480
M5ATOM ECHO
マイク,スピーカ
BT, WiFi
M5ATOM ECHO
マイク,スピーカ
BT, WiFi
5V, GND 40pin経由
UART, 1Mbps
I2C
M5ATOM S3
液晶モニタ,ボタン
BT, WiFi
USB3
I2C
I2C-1
400Kbps
I2C-3
1Mbps
KRS 3301,3302,3304
サーボ x 20
3線
ICS
半二重UART
1.25Mbps
KXR用
バッテリ
7.4V, 800mAh
安定化
電源装置
7.4V
5V USB
HDMIモニタ
USBハブ
BT
I2C
5V
(I2Cコネクタから)
M5Stamp / M5StampS3
ラウンド液晶モジュール
M5Stamp / M5StampS3
ラウンド液晶モジュール
Arduino Nano Every
FSR X 406 / 402
USBキーボード
視聴覚処理計算機radxa zero
64bit ARM Cortex-A53 quad core
4GB RAM
128GB eMMC
WiFi, BT
UART,I2C,SPI
debian 10 buster
ROS noetic
eye module
rosserial
rosserial
rosserial
環境構築(laptop)
https://drive.google.com/file/d/1nkLUltQaopz5w9qNqL2yyOEosttcO-_0/view?usp=sharing
http://wiki.ros.org/ja/noetic/Installation/Ubuntu
★ jsk-commonもインストールしないと、rossetmaster, rossetip等が使えない!
sudo apt-get install ros-noetic-jsk-common
★ 内蔵カメラが見えない時は
sudo apt-get install libwebcam0
reboot
sshできるように Extenssion から Remote SSH (+ Remote Explorer ) を入れる
https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md
realsense-viewer
sudo apt install python3-osrf-pycommon python3-catkin-tools
sudo apt install build-essential
環境構築(KXRの体内)
$ sudo apt install ros-$ROS_DISTRO-rosserial
$ sudo apt install ros-$ROS_DISTRO-rosserial-arduino
$ cd ~
$ mkdir -p toshima_ws/src
$ cd ~/toshima_ws/src
$ git clone git@github.com:sawada10/rosserial.git
$ cd ~/toshima_ws
$ catkin build
—----------------------------------------------------------------
$ cd ~
$ git clone git@gitlab.jsk.imi.i.u-tokyo.ac.jp:rcb4eus/rcb4eus.git
—----------------------------------------------------------------
$ cd ~/toshima_ws/src
$ git clone git@github.com:sawada10/eye_fsr_files.git
$ cd ~/toshima_ws
$ catkin build
—-----------------------------------------------------------
4.com-initが止まらないようにするために
sudo systemctl disable rcb4roscontroller.service
sudo systemctl stop rcb4roscontroller.service
—------------------------------------------------------------------
cd /rcb4eus/
git pull origin master
make
環境構築(KXRの体内のwifiをUTokyoにする方法)
cd /etc/NetworkManager/system-connections
sudo cp sanshiro.nmconnection 0000UTokyo.nmconnection
sudo emacs -nw 0000UTokyo.nmconnection
<編集内容>
環境構築 (wifiのsanshiroファイルの作り方)
←自分のpcのMacアドレスにする
←ここも変更する
環境構築(新しいwifi設定ファイルの作り方)
sudo su
# nmcli r wifi on
# nmcli dev wifi で見えるnetworkを確認.
# nmcli dev wifi connect “JSK300M” password “89sk389sk3”などとして接続.
sudo rebootして、新しいwifiにつながることを確認
/etc/NetworkManager/system-connections以下に新しいwifiの設定ファイルが作成されるのでそれをコピーして
0000UTokyoの設定ファイルを作成する。
環境構築(gitについて)
豊島岡用 git account (github,gitlab共通)
メールアドレス demo-toshimagaoka@jsk.imi.i.u-tokyo.ac.jp user: jsktsm pass: はくしゅかっさい
もし、他のアカウントがすでに登録されていたら…
git config --global --unset user.name
git config --global --unset user.email
してから
git config --global user.name “jsktsm”
git config --global user.email demo-toshimagaoka@jsk.imi.i.u-tokyo.ac.jp
ssh keyを登録する
・新しい鍵を作る
cd ~/.ssh
ssh-keygen -f id_tsm_rsa
※ssh keyの名前
pc : id_rsa
kxr(radxa): id_tsm_rsa
・github側に登録する
※ssh keyの名前
pc : toshimagaoka_$num
kxr(radxa) : toshimagaoka_kxr_$num
M5Stamp(液晶モジュール)の配線と書き込み
・使用する液晶モジュール(液晶と基板一体型)
https://www.switch-science.com/products/8098 またはhttps://www.switch-science.com/products/8851
・M5Stampに書き込むソースコード(随時更新中)
https://github.com/sawada10/eye-display
・書き込み手順
ソースコードのgithubリンクのreadmeを参照
・配線
USB C – USB A のケーブルでradxaにつながるUSBハブとM5Stamp / M5 Stamp S3をつなげる
Arduino Nano Every, FSRの配線と書き込み
・使用するArduinoおよびFSR
Arduino Nano Every, FSR X 406 / 402
・Arduino Nano Everyに書き込むソースコード(随時更新中)
https://github.com/sawada10/fsr_rosserial
・Arduino Nano EveryとFSRの配線
以下のサイトを参照
・Arduino Nano Every と radxaの配線
USB A – USB micro のケーブルでradxaにつながるUSBハブとArduino Nano Everyをつなげる
USBデバイスを接続したときのデバイスファイル名を固定する(KXR体内)
通常、eye module, FSRについて、デバイスファイル名(e.g., /dev/ttyACM*)はデバイスを指した順になってしまう
➡ デバイス名を固定する(右目のモジュールは /dev/ttyACM-righteyeなどにする)
方法(cf. https://smdn.jp/electronics/udev_create_persistent_usb_device_symlink/)
$ dmesg
[1398698.113964] usb 1-6: new full-speed USB device number 6 using xhci_hcd
[1398698.267466] usb 1-6: New USB device found, idVendor=0403, idProduct=6001
[1398698.267469] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[1398698.267471] usb 1-6: Product: FT232R USB UART
[1398698.267472] usb 1-6: Manufacturer: FTDI
[1398698.267473] usb 1-6: SerialNumber: XXXXXXXX
[1398698.270667] usb 1-6: Detected FT232RL
[1398698.271080] usb 1-6: FTDI USB Serial Device converter now attached to ttyUSB0
$ cd /etc/udev/rules.d
$ sudo emacs -nw 99-usb-xxxxxx.rules
# right eye
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="XXXXXXXX", SYMLINK+="ttyACM-righteye", GROUP="dialout"
$ ls
したのちにUSBの抜き差しをする
同じもの
設定ファイルの置き場所
設定ファイルは ドライブに管理している
※岡田先生、稲葉先生、市倉、澤田、デモ豊島岡のみ閲覧可能
中に入っているもの
・radxaの0000UTokyo wifi設定ファイル(澤田のuser,pass入力済)
・eye modulesの左右デバイスusb認識固定化設定ファイル
・nano everyのusb認識固定化ファイル
実行手順(KXR体内で実行)
$ source ~/toshima_ws/devel/setup.bash
# 複数デバイスとrosserial通信を始めるためのlaunch
$ roslaunch rosserial_python multiple_serial_node.launch
—----------------------------------------------------------------------------------------------------------------------
$ roslaunch eye_fsr_files eye_fsr.launch
# 以下はeye_fsr.launchの中身
# subしたfsrの値(/power)に応じて/touch_statusにメッセージをpubする
$ rosrun eye_fsr_files power_sub_touch_status_pub.py
# subした/touch_statusに応じて、KXRの目の状態を/eye_statusにpubする
$ rosrun eye_fsr_files touched_status_sub_eye_status_pub.py
# subした/touch_statusに応じて、KXRの行う行動を/actionにpubする
$ rosrun eye_fsr_files touched_status_sub_action_pub.py
# subした/actionに応じてKXRに動作指令を送る
—----------------------------------------------------------------------------------------------------------------------
$ cd ~/rcb4eus
$ roseus action_sub_movement_pub.l
11/8 テスト用セットアップ
電源はお腹側に給電(usb micro)
USB hubは背中側上から2番目に給電(usb C)
11/8 ゼミは次のスライドから
11/8 テスト用セットアップ
必ず同じ番号のセットを使う
USB hubに eye-modulex2 + arduinoを繋ぐ
eye module ( USB C - A )
arduino nano every ( USB micro - A )
FSRを伸びているジャンプワイヤーのメスに繋ぐ
ブレッドボードは30番(後ろ)が
USBに繋がるように挿す
11/8 テスト用実行手順 (全てradxaの中で行う)
$ sudo su
# nmcli r wifi on
# nmcli dev wifi
# nmcli dev wifi connect “ist-hsr-5g” password “89sk389sk3”
# exit
$ sudo reboot
$cd ~/toshima_ws/src/eye_fsr_files
$ git fetch -a
$ git reset --hard origin/master ⬅︎ 強制的にmaster をupdate してください
$ cd ~/toshima_ws
$ catkin build
$ cd ~/rcb4eus
$ cp ~/toshima_ws/src/eye_fsr_files/scripts/toshima_files/euslisp/action_sub_movement_pub.l .
11/8 テスト用実行手順
4. rosserial通信を開始する
$ source ~/toshima_ws/devel/setup.bash
$ roslaunch rosserial_python multiple_serial_node.launch
5. 目のモニターに画像を表示してみる
(別のターミナルで)
$ rostopic list
$ rostopic pub -1 /eye_status std_msgs/UInt16 “data: 0”
↑ ( 0 - 6 )で指定する
★数字によって目のアニメーションが変化するはず
6. FSRのセンサの値をみる
(別のターミナルで)
$ rostopic echo /power
★センサを押していないと 0.0 センサを押していると > 50 の値が表示されるはず
7. 首を動かしてみる
(別のターミナルで)
$ cd ~/rcb4eus
$ roseus action_sub_movement_pub.l
(別のターミナルで)
$ rostopic pub -1 /action std_msgs/String “data: ‘nod’”
↑ nod, shakeのいずれかで指定する
★ topic をpubすると首や体が動くはず
11/8 テスト用実行手順
8. FSR → 目の表示変化 → 首の動き を試してみる
★ 一度全てのターミナルを Ctrl + C する
★ 以下のA. B. C. を全て別のターミナルで実行する
$ source ~/toshima_ws/devel/setup.bash
$ roslaunch rosserial_python multiple_serial_node.launch
$ source ~/toshima_ws/devel/setup.bash
$ roslaunch eye_fsr_files eye_fsr.launch
$ source ~/toshima_ws/devel/setup.bash
$ cd ~/rcb4eus
$ roseus action_sub_movement_pub.l
11/8 テスト用実行手順
9.1 python コードから 目のモニターを変化させる
★ 一度全てのターミナルを Ctrl + C する
★ 以下のA. B. を全て別のターミナルで実行する
$ source ~/toshima_ws/devel/setup.bash
$ roslaunch rosserial_python multiple_serial_node.launch
$ rosrun eye_fsr_files eye_status_pub.py # 前にchmod 755 *が必要?(実行権限を与える)
input で 嬉しい と打ち込むと 目のモニターが変化する(笑う)はず
9.2 pythonのコードの中身を編集してみる
$ source ~/toshima_ws/devel/setup.bash
$ cd toshima_ws/src/eye_fsr_files/scripts/toshima_files/python/
$ emacs -nw eye_status_pub.py
⬆︎このファイルの中の original_fuc の中身を編集してみる
★ 実行するときは、9.1と同じ手順を踏む
11/8 テスト用実行手順
10.1 python コードから FSRの値を見る
★ 一度全てのターミナルを Ctrl + C する
★ 以下のA. B. を全て別のターミナルで実行する
$ source ~/toshima_ws/devel/setup.bash
$ roslaunch rosserial_python multiple_serial_node.launch
$ rosrun eye_fsr_files power_sub_message_pub.py
★ FSRにかかる力を出力し続けるはず
10.2 pythonのコードの中身を編集してみる
$ source ~/toshima_ws/devel/setup.bash
$ cd toshima_ws/src/eye_fsr_files/scripts/toshima_files/python/
$ emacs -nw power_sub_message_pub.py
★このファイルの中の L12 をコメントアウトして、 L14 をコメントイン
★ original_callbackの中身を編集する
★実行するときは、10.1と同じ手順を踏む
11/8 テスト用実行手順
11.1 python コードから ロボットの動き を変化させる
★ 一度全てのターミナルを Ctrl + C する
★ 以下のA. B. C. を全て別のターミナルで実行する
$ source ~/toshima_ws/devel/setup.bash
$ roslaunch rosserial_python multiple_serial_node.launch
$ cd ~/rcb4eus
$ roseus action_sub_movement_pub.l
$ rosrun eye_fsr_files action_pub.py # chmod 755
input で 元気だね と打ち込むと首が頷くはず
終わるときは 終わり と打ち込む
11.2 pythonのコードの中身を編集してみる
$ source ~/toshima_ws/devel/setup.bash
$ cd toshima_ws/src/eye_fsr_files/scripts/toshima_files/python/
$ emacs -nw action_pub.py
⬆︎このファイルの中の original_fuc の中身を編集してみる
★ 実行するときは、11.1と同じ手順を踏む