[0333]_WebCameraまでOK、モータ動かず

「GoPiGo」USBカメラ、Web、スマホで見る
https://codezine.jp/article/detail/10068
参考

【1】準備
必要なROSパッケージのインストール
(Indigoでなくてkineticだよ!)
$ sudo apt-get update
$ sudo apt-get install ros-kinetic-rosbridge-suite ros-kinetic-roswww ros-kinetic-libuvc-camera ros-kinetic-web-video-server

$ rospack profile

USBデバイス一覧表示
(Logitech, Inc. Webcam C270の表示確認)
$ lsusb
yoshi3@yoshi3-raspberry:~$ lsusb
Bus 001 Device 006: ID abcd:1234 Unknown
Bus 001 Device 005: ID 046d:0825 Logitech, Inc. Webcam C270
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

新規に/etc/udev/rules.d/99-uvc.rulesというファイルを作り、下記をコピペ
$ sudo vi /etc/udev/rules.d/99-uvc.rules
SUBSYSTEMS==”usb”, ENV{DEVTYPE}==”usb_device”, ATTRS{idVendor}==”046d”, ATTRS{idProduct}==”0825″, MODE=”0666″

ROSマスターの起動
$ roscore

USBカメラノードを起動
$ rosrun libuvc_camera camera_node

ノード名の一覧表示
(カメラノード名は/libuvc_camera、、、と確認)
$ rosnode list
/libuvc_camera
/rosout

/libuvc_cameraノードに関する情報を確認
/libuvc_cameraノードの情報を表示
$ rosnode info /libuvc_camera

【2】web_video_serverパッケージを利用
動画ストリーミングサーバ起動
$ rosrun web_video_server web_video_server
[ INFO] [1490083960.186788634]: Waiting For connections on 0.0.0.0:8080

最後に、カメラ映像を確認
http://GoPiGoのIPアドレス:8080/stream_viewer?topic=/image_raw
なので、、、
http://192.168.0.12:8080/stream_viewer?topic=/image_raw

ここまでOK!

【3】スマホからGoPiGoを操作
スマホなどのブラウザからGoPiGoを操作する機能を追加
パッケージを作成するには、catkin_create_pkgコマンドを使用
新規パッケージの作成
$ cd ~/gopigo_ws/src
$ catkin_create_pkg webjoy_example

https://codezine.jp/article/detail/10068?p=3
より頂いたサンプルをwebjoy_exampleフォルダ内にコピー

$ pwd
/home/yoshi3/gopigo_ws/src/webjoy_example

webjoy_example
├── CMakeLists.txt
├── launch
│ └── webjoy_example.launch
├── package.xml
└── www
├── index.html
└── webjoy.js

パッケージのビルドと読み込み
(ビルドする場所に注意)
$ cd /home/yoshi3/gopigo_ws
(ここでビルドする)

$ cd .. && catkin_make
$ source ~/gopigo_ws/devel/setup.bash

ここまでOK!

【4】Webサーバを立てる
スマホなどの外部デバイスにリソースを配信するためにWebサーバが必要。
今回は、習ってroswwwというROSのパッケージを使ってWebサーバを立てる。
デフォルトで8085番ポートをクライアント接続用に解放。
Webサーバの起動
$ roslaunch roswww roswww.launch

Webサーバの起動後、下記にアクセス。
http://GoPiGoのIPアドレス:8085/webjoy_example/index.html
より
Webサーバの起動後、下記にアクセスしてみましょう。
http://192.168.0.12:8085/webjoy_example/index.html

あれ?表示NGダメだな??
カメラの電源も入ってないので起動させてもう一回やろう。。。。
https://codezine.jp/article/detail/10068?p=3

【4】カメラ起動から・・
①ROSマスターの起動
$ roscore

②USBカメラノードを起動
$ rosrun libuvc_camera camera_node

③動画ストリーミングサーバ起動
$ rosrun web_video_server web_video_server
[ INFO] [1490083960.186788634]: Waiting For connections on 0.0.0.0:8080

④Webカメラ映像を確認
http://192.168.0.12:8080/stream_viewer?topic=/image_raw

OK!!
このままスマホ確認に。

④Webサーバの起動
$ roslaunch roswww roswww.launch
Webサーバの起動後、下記にアクセス。
(Edgeでは表示不可、chromeで表示!!)
http://192.168.0.12:8085/webjoy_example/index.html

⑤ROSブリッジサーバの起動
$ roslaunch rosbridge_server rosbridge_websocket.launch

①-⑤のNode起動が確認されてから、GoPiGoの台車ノードの起動!
$ roslaunch ropigo ropigo.launch

起動後、スマホで下記にアクセス操作
GoPiGoの台車ノードの起動
http://192.168.0.12:8085/webjoy_example/index.html

ここまで起動中のコマンド 1-5
$ roscore
$ rosrun libuvc_camera camera_node
$ rosrun web_video_server web_video_server
$ roslaunch rosbridge_server rosbridge_websocket.launch
$ roslaunch roswww roswww.launch

うーーーん、一瞬Webに出たんだけど、、、
マウス動かそうとするとエラーが。。。。
[ERROR] [1504945021.648760]: [Client 18] [id: publish:/cmd_vel:86] publish: Cannot infer topic type for topic /cmd_vel as it is not yet advertised
[ERROR] [1504945021.667117]: [Client 18] [id: publish:/cmd_vel:87] publish: Cannot infer topic type for topic /cmd_vel as it is not yet advertised
[ERROR] [1504945021.686146]: [Client 18] [id: publish:/cmd_vel:88] publish: Cannot infer topic type for topic /cmd_vel as it is not yet advertised
[ERROR] [1504945021.700378]: [Client 18] [id: publish:/cmd_vel:89] publish: Cannot infer topic type for topic /cmd_vel as it is not yet advertised

★★一発で起動するコマンド ★★
$ roslaunch webjoy_example webjoy_example.launch
http://192.168.0.12:8080/stream_viewer?topic=/image_raw
の画像はOKだけど
http://192.168.0.12:8085/webjoy_example/index.html
も画面表示はOKだけどモーター動作が不可・・・・

もう1回!

モーター動作の操作すると、エラー出る・・・
[ERROR] [1504945575.523269]: [Client 0] [id: publish:/cmd_vel:110] publish: Unable to load the manifest for package geometry_msgs. Caused by:
[ERROR] [1504946892.904525]: [Client 6] [id: publish:/cmd_vel:214] publish: Unable to load the manifest for package geometry_msgs. Caused by: