[0344]_tips_ubuntu1604

———————-
すいません通知とかこないんで気づいてなかったです.
セットアップの部分の詳細を教えてほしいとのことですが,python等で動くようになるまでのセットアップについてはDexterのページに載ってるものを使いました.https://www.dexterindustries.com/GoPiGo/get-started-with-the-gopigo3-raspberry-pi-robot/3-program-your-raspberry-pi-robot/python-programming-language/

まぁ上のやつに従うとユーザーがpi前提のスクリプトが実行されてしまうのでスクリプトファイルをcurlではなくwgetを使ってダウンロードしてユーザー名をひたすらに自分の名前に変更して実行すればなんとかなります.シェルが実行できればpythonのセットアップは完了.

rosで動くようにするにはc++のテストコードがうまく動かなかったので,元々のropigoのコードを参考にrospyで書き直しました.

全体的にまとまってないのでまだ書いてないですがqiitaとかでまとめようと思ってるのでqiitaとかでまとめたら管理者の人さえよければ再度コメントさせていただきたいです.

———————–

(10/7)ということでuser名をpiにしてRaspPi#3にUbuntu1604を再構築

———————–
日本語環境
———————–
http://www.dreamedge.net/archives/111
# apt-get install language-pack-ja
$ export LANG=ja_JP.UTF-8

# update-locale LANG=ja_JP.UTF-8
$ LANG=C xdg-user-dirs-gtk-update

———————–
SSH設定
———————–
ssh Serverをインストールします。
$ sudo apt-get install ssh
インストール後 デーモンを起動
$ sudo /etc/init.d/ssh start
これでリモートから接続可能になりました。

自動起動のセットも。
$ sudo vi /etc/rc.local
rc.local
#!/bin/sh -e
・・・・・
# By default this script does nothing.
sudo /etc/init.d/ssh start <----を追加!! exit 0 ----------------------- ubuntuで無線LAN設定 ----------------------- https://askubuntu.com/questions/775597/how-to-use-onboard-wifi-on-raspberry-pi-3-with-ubuntu-server-16-04 が参考になりそう $ lsusb $ sudo apt-get install wireless-tools $ sudo apt-get install wpasupplicant add to /etc/network/interfaces: --------------- auto wlan0 iface wlan0 inet dhcp wpa-essid smile wpa-psk 9D5BE022868CF #source /etc/network/interfaces.d/*.cfg ----------------------- ROS kineticをUbuntu16.04にインストールする ----------------------- http://blog.livedoor.jp/gigakosuto-research/archives/803548.html 参考 1. sources.listを設定する $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list’

2. 鍵の設定
$ sudo apt-key adv –keyserver hkp://ha.pool.sks-keyservers.net:80 –recv-key 0xB01FA116

3. パッケージを最新のものにアップデート
$ sudo apt-get update

4. ROS のインストール
$ sudo apt-get install ros-kinetic-desktop-full

★★★★★
※ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize
と出た時は/etc/ros/rosdep/sources.list.d/ディレクトリにある20-default.listを削除(端末でディレクトリまで移動し、sudo rmで消せる)したあと
★★★★★

5.ROSdepの初期化
$ sudo rosdep init
$ sudo rosdep update

6.環境変数の設定
$ echo “source /opt/ros/kinetic/setup.bash” >> ~/.bashrc
$ source ~/.bashrc

7.rosinstallの準備
$ sudo apt-get install python-rosinstall

8.ワークスペースの設置
①ホームディレクトリにワークスペースを設置する。
$ rosws init ~/workspace /opt/ros/kinetic
②サンドボックスディレクトリの作成
$ mkdir ~/workspace/sandbox
sandboxディレクトリを作成したことでワークスペースの構成要素が変更されたので、setup.bashを読み込む。
$ source ~/workspace/setup.bash
③そしてroswsを使ってパッケージディレクトリとして登録する。
$ rosws set ~/workspace/sandbox
再度setup.bashを読み込みパス登録
$ source ~/workspace/setup.bash

※設定後のパスは次のコマンドで確認
echo $ROS_PACKAGE_PATH
結果は次のようになることを確認。
 /home/your_user_name/workspace/sandbox:/opt/ros/kinetic/share
(はい、なってます。。。ありがとうございます!)

———————–
Raspberry Pi の I2C を有効化
———————–

Raspberry Pi の I2C を有効化する方法 (2015年版)


で済み

———————–
GoPiGoのROS用ドライバーを入れる
———————–
$ sudo apt-get install build-essential tmux vim -y
$ mkdir ~/gopigo_ws
$ cd ~/gopigo_ws
$ wget https://raw.githubusercontent.com/ros-gopigo/rosinstall-repo/master/ros-gopigo.rosinstall

$ wstool init src ros-gopigo.rosinstall
▲エラー▲
(ERROR: Rosdep experienced an error: [Errno 13] Permission denied: ‘/home/pi/.ros/rosdep/sources.cache/index’)

$ rosdep install –from-paths src –ignore-src –rosdistro $ROS_DISTRO
$ catkin_make
(catkin_makeが通ればビルド完了)
ビルド済みバイナリをROSで使えるように、そのパスを.bashrcに書き込んでいます
$ echo “source ~/gopigo_ws/devel/setup.bash” >> ~/.bashrc
$ source ~/.bashrc

<#roscoreがうまくいってない、>
pi@pi-Raspberry3:~/gopigo_ws$ roscore
Traceback (most recent call last):
File “/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/__init__.py”, line 257, in main
write_pid_file(options.pid_fn, options.core, options.port)
File “/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/__init__.py”, line 110, in write_pid_file
with open(pid_fn, “w”) as f:
IOError: [Errno 13] Permission denied: ‘/home/pi/.ros/roscore-11311.pid’
<・・・・・・・・・・・・・・>

GoPiGoのROS用ドライバーを入れる(ここをgopigo3用に変えてみる
$ cd ~/gopigo_ws
$ sudo curl https://raw.githubusercontent.com/DexterInd/Raspbian_For_Robots/master/upd_script/fetch_gopigo3.sh | bash
$ sudo reboot

Quick Install
In order to quick install the GoPiGo3 repository, open up a terminal and type the following command:
$ cd ~/gopigo_ws
$ sudo curl -L dexterindustries.com/update_gopigo3 | bash

Installation
You can install the GoPiGo3 on your own operating system with the following commands in the command line:
Clone this repository onto the Raspberry Pi:
$ sudo git clone http://www.github.com/DexterInd/GoPiGo3.git /home/pi/Dexter/GoPiGo3

ダメ・・・で

を参考
$ git clone https://github.com/karaage0703/raspberry-pi-setup
$ cd raspberry-pi-setup
$ ./setup-ros-indigo-raspbian.sh

$ roscore
$ pip install –upgrade pip

ダメ・・・で
(9/25、IndigoでなくKineticを再度インストールする)
http://wiki.ros.org/kinetic/Installation/Ubuntu

$ sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’
Set up your keys
$ sudo apt-key adv –keyserver hkp://ha.pool.sks-keyservers.net:80 –recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

Installation
First, make sure your Debian package index is up-to-date:
$ sudo apt-get update
$ sudo apt-get install ros-kinetic-desktop-full

スライド1


$ sudo apt-get install python-rosdep

$ sudo apt-get install python-rosinstall

★★★★★
(★下記で、permission denyedは解消された!!★すげー!!)
★★★★★
https://answers.ros.org/question/60366/problem-with-roscore/

sudo su
rm -R ~/.ros/

After that, roscore worked well and a new .ros folder was created automatically.

roscore

はエラーなし!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.6: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.10: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.10:8080/stream_viewer?topic=/image_raw

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

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

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

やはり・・・だめかーーーーー!!!