ログ2 - masuko-shingo/jetson-nano GitHub Wiki

2022/1/18

https://github.com/AlexeyAB/darknet
項目:自作データセットでの訓練
yolov3.cfgの変更
yolo-obj.cfgの作成(yolov3.cfgと同内容)
cuda_yolov3/darknet/build/darknet/x64/dataにmkdir objする
cuda_yolov3/darknet/build/darknet/x64/dataにobj.namesファイルを作成 vi obj.names
obj.namesはラベルの名前を記述する
ラベルごとに改行する(1行に1ラベル)
同ディレクトリに,obj.dataファイルを作成 vi obj.data
同ディレクトリに,train.txtファイルを作成 vi train.txt
train.txtはjpgファイルの名前とそのパスを入力.一行ずつ
cuda_yolov3/darknet/build/darknet/x64/data/objにアノテーションした画像を入れる
frame0000.jpg .....

pascalvocからyolo形式に変換するツールを導入
https://www.codetd.com/ja/article/12791308

$ mkdir vocc2yolo
$ mkdir labels_voc images labels
$ vi classes.names

vi classes.names:ラベル名を記述(obj.namesと同じ)tb3 vocc2yoloの中で,~/testにある,voc形式のファイルをコピーしてくる

cp -r ~/test ./

labels_vocを消す

rm -r labels_voc

vocc2yoloディレクトリ内にコピーしてきたtestディレクトリの名前をlabels_vocに変更

mv test/ labels_voc
vi pascalVOC2yolov3.py

サイトにあるソースコードをコピペ python pascalVOC2yolov3.pyで実行
labelsディレクトリの中にyolo形式のファイルが変換されている
frane.xml -> frame.txt

アノテーションした際のframe*.txtファイルをdarknetのどこに格納するのかわからない googledriveのb4研究/写真/yolov3/objにjpgファイル /labels_yoloにtxtファイルがある

2022/1/11

jetson nanoでデータセット作成用の教師画像を取得しようと,bagfileを取得しようとしたが,ストレージ容量が足りなかった.
教師画像の撮影をPCで行おうとしたが,USBカメラが起動できない状態になった.

$ sudo apt install v4l-utils

usbカメラが認識されているか確認

$ lsusb
Bus 002 Device 002: ID 0411:02e6 BUFFALO INC. (formerly MelCo., Inc.) 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 8087:0a2b Intel Corp. 
Bus 001 Device 003: ID 045e:076d Microsoft Corp. LifeCam HD-5000
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

$ dmesg
78.696980] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7
[17833.658636] usb 1-6: new high-speed USB device number 3 using xhci_hcd
[17833.824363] usb 1-6: New USB device found, idVendor=045e, idProduct=076d, bcdDevice= 1.05
[17833.824368] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[17833.824372] usb 1-6: Product: Microsoft® LifeCam HD-5000
[17833.824375] usb 1-6: Manufacturer: Microsoft

$ ls /dev/video*
ls: '/dev/video*' にアクセスできません: そのようなファイルやディレクトリはありません

usbは認識されているが,/dev/video0がない状態だった

$ cheese
$ ls /dev/video0
/dev/video0

cheeseを起動させたあと, /dev/video0を確認したところ,確認できた. カメラの起動を試す

$ roscore

別端末で

$ cd yolov3
$ rosrun uvc_camera uvc_camera_node

別端末で

$ rosrun image_view image_view image:=/image_raw

起動できた

ログ12/9

CMakelist.txt編集

$ vim ~/workspa/src/CMakelist.txt

nanoで

$ roslaunch usb_cam cam-test/launch

nanoにディスプレイを繋いで

$ roslaunch darknet_ros darknet_ros.launch

変わらずyolov3のウィンドウが開いた瞬間nanoが落ちる。
使っている重みはyolov2-tinyだった

ログ12/8

$ vim ~/.bashrc

追加

source ~/workspace/devel/setup.bash

ros.yamlを編集

$ vim  ~/workspa/src/darknet_ros/darknet_ros/config/ros.yaml

以下に変更

subscribers:

  camera_reading:
    topic: /image_raw
    queue_size: 1

PCでroscore
その後
nanoで

$ roslaunch uvc_camera camera_node.launch

nanoにディスプレイを繋いで

$ roslaunch darknet_ros darknet_ros.launch

yolov3のウィンドウが開いた瞬間nanoが落ちる。
使っている重みはyolov2-tinyだった

ログ12/7

roscoreしてもuvc_camera_nodeが通らない

$ rosrun uvc_camera uvc_camera_node 
[ERROR] [1638900795.266183164]: [registerPublisher] Failed to contact master at [192.168.0.42:11311].  Retrying...
^Copening /dev/video0
pixfmt 0 = 'YUYV' desc = 'YUYV 4:2:2'
  discrete: 640x480:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 160x120:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 176x144:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 320x176:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 320x240:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 352x288:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 432x240:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 544x288:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 640x360:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 752x416:   1/25 1/20 1/15 1/10 1/5 
  discrete: 800x448:   1/20 1/15 1/10 1/5 
  discrete: 800x600:   1/20 1/15 1/10 1/5 
  discrete: 864x480:   1/20 1/15 1/10 1/5 
  discrete: 960x544:   1/15 1/10 1/5 
  discrete: 960x720:   1/10 1/5 
  discrete: 1024x576:   1/10 1/5 
  discrete: 1184x656:   1/10 1/5 
  discrete: 1280x720:   2/15 1/5 
  discrete: 1280x960:   2/15 1/5 
pixfmt 1 = 'MJPG' desc = 'Motion-JPEG'
  discrete: 640x480:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 160x120:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 176x144:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 320x176:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 320x240:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 352x288:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 432x240:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 544x288:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 640x360:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 752x416:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 800x448:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 800x600:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 864x480:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 960x544:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 960x720:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 1024x576:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 1184x656:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 1280x720:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 1280x960:   1/30 1/25 1/20 1/15 1/10 1/5 
  int (Brightness, 0, id = 980900): 0 to 255 (1)
  int (Contrast, 0, id = 980901): 0 to 255 (1)
  int (Saturation, 0, id = 980902): 0 to 255 (1)
  bool (White Balance Temperature, Auto, 0, id = 98090c): 0 to 1 (1)
  int (Gain, 0, id = 980913): 0 to 255 (1)
  menu (Power Line Frequency, 0, id = 980918): 0 to 2 (1)
    0: Disabled
    1: 50 Hz
    2: 60 Hz
  int (White Balance Temperature, 16, id = 98091a): 0 to 10000 (10)
  int (Sharpness, 0, id = 98091b): 0 to 255 (1)
  int (Backlight Compensation, 0, id = 98091c): 0 to 1 (1)
  menu (Exposure, Auto, 0, id = 9a0901): 0 to 3 (1)
  int (Exposure (Absolute), 16, id = 9a0902): 1 to 10000 (1)
  bool (Exposure, Auto Priority, 0, id = 9a0903): 0 to 1 (1)

uvc_cameraがないわけではなさそう

jetsonnano@jetsonnano-desktop:/opt/ros/melodic/share/uvc_camera$ ls
cmake  launch  nodelet_uvc_camera.xml  package.xml

pc側でroscore

jetsonnano@jetsonnano-desktop:~$ roslaunch uvc_camera camera_node.launch 
... logging to /home/jetsonnano/.ros/log/bc3f2e1c-578d-11ec-a61a-7c7635a4ab69/roslaunch-jetsonnano-desktop-14197.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://192.168.0.59:39225/

SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.11
 * /uvc_camera/auto_focus: False
 * /uvc_camera/camera_info_url: file:///opt/ros/m...
 * /uvc_camera/device: /dev/video0
 * /uvc_camera/focus_absolute: 0
 * /uvc_camera/fps: 30
 * /uvc_camera/frame: wide_stereo
 * /uvc_camera/height: 240
 * /uvc_camera/width: 320

NODES
  /
    uvc_camera (uvc_camera/uvc_camera_node)

ROS_MASTER_URI=http://192.168.0.42:11311

process[uvc_camera-1]: started with pid [14206]
[ INFO] [1638902687.536160081]: camera calibration URL: file:///opt/ros/melodic/share/uvc_camera/example.yaml
[ INFO] [1638902687.543610623]: Unable to open camera calibration file [/opt/ros/melodic/share/uvc_camera/example.yaml]
[ WARN] [1638902687.543682969]: Camera calibration file /opt/ros/melodic/share/uvc_camera/example.yaml not found.
opening /dev/video0
pixfmt 0 = 'YUYV' desc = 'YUYV 4:2:2'
  discrete: 640x480:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 160x120:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 176x144:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 320x176:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 320x240:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 352x288:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 432x240:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 544x288:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 640x360:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 752x416:   1/25 1/20 1/15 1/10 1/5 
  discrete: 800x448:   1/20 1/15 1/10 1/5 
  discrete: 800x600:   1/20 1/15 1/10 1/5 
  discrete: 864x480:   1/20 1/15 1/10 1/5 
  discrete: 960x544:   1/15 1/10 1/5 
  discrete: 960x720:   1/10 1/5 
  discrete: 1024x576:   1/10 1/5 
  discrete: 1184x656:   1/10 1/5 
  discrete: 1280x720:   2/15 1/5 
  discrete: 1280x960:   2/15 1/5 
pixfmt 1 = 'MJPG' desc = 'Motion-JPEG'
  discrete: 640x480:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 160x120:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 176x144:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 320x176:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 320x240:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 352x288:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 432x240:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 544x288:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 640x360:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 752x416:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 800x448:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 800x600:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 864x480:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 960x544:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 960x720:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 1024x576:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 1184x656:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 1280x720:   1/30 1/25 1/20 1/15 1/10 1/5 
  discrete: 1280x960:   1/30 1/25 1/20 1/15 1/10 1/5 
  int (Brightness, 0, id = 980900): 0 to 255 (1)
  int (Contrast, 0, id = 980901): 0 to 255 (1)
  int (Saturation, 0, id = 980902): 0 to 255 (1)
  bool (White Balance Temperature, Auto, 0, id = 98090c): 0 to 1 (1)
  int (Gain, 0, id = 980913): 0 to 255 (1)
  menu (Power Line Frequency, 0, id = 980918): 0 to 2 (1)
    0: Disabled
    1: 50 Hz
    2: 60 Hz
  int (White Balance Temperature, 16, id = 98091a): 0 to 10000 (10)
  int (Sharpness, 0, id = 98091b): 0 to 255 (1)
  int (Backlight Compensation, 0, id = 98091c): 0 to 1 (1)
  menu (Exposure, Auto, 0, id = 9a0901): 0 to 3 (1)
  int (Exposure (Absolute), 16, id = 9a0902): 1 to 10000 (1)
  bool (Exposure, Auto Priority, 0, id = 9a0903): 0 to 1 (1)
Setting auto_focus is not supported
Setting focus_absolute is not supported
select timeout in grab

jetsonnanoにモニターを繋げて

rosrun image_view image_view image:=image/image_raw

でいけたっぽい

ログ12/1

ログ11/17

https://wooolwoool.hatenablog.com/entry/2021/03/10/235851 環境構築中のエラー  pip3,pipはインストールした 

root@jetsonnano-desktop:~# apt install python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  python-pip-whl
Recommended packages:
  python3-setuptools python3-wheel
The following packages will be upgraded:
  python-pip-whl python3-pip
2 upgraded, 0 newly installed, 0 to remove and 87 not upgraded.
Need to get 1767 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe arm64 python3-pip all 9.0.1-2.3~ubuntu1.18.04.5 [114 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe arm64 python-pip-whl all 9.0.1-2.3~ubuntu1.18.04.5 [1653 kB]
Fetched 1767 kB in 3s (697 kB/s)          
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 43404 files and directories currently installed.)
Preparing to unpack .../python3-pip_9.0.1-2.3~ubuntu1.18.04.5_all.deb ...
Unpacking python3-pip (9.0.1-2.3~ubuntu1.18.04.5) over (9.0.1-2.3~ubuntu1.18.04.4) ...
Preparing to unpack .../python-pip-whl_9.0.1-2.3~ubuntu1.18.04.5_all.deb ...
Unpacking python-pip-whl (9.0.1-2.3~ubuntu1.18.04.5) over (9.0.1-2.3~ubuntu1.18.04.4) ...
Setting up python-pip-whl (9.0.1-2.3~ubuntu1.18.04.5) ...
Setting up python3-pip (9.0.1-2.3~ubuntu1.18.04.5) ...

root@jetsonnano-desktop:~# apt install python-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython-all-dev libpython-dev libpython2.7 
root@jetsonnano-desktop:~# apt update && apt install -y python3-opencv ssh && pip3 install -U pip && pip3 install requests tqdm pyyaml seaborn pycocotools thop
Hit:1 http://ports.ubuntu.com/ubuntu-ports bionic InRelease
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease [88.7 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic-backports InRelease [74.6 kB]
Get:4 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease [88.7 kB]
Fetched 252 kB in 2s (121 kB/s)    
Reading package lists... Done
Building dependency tree       
Reading state information... Done
82 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
ssh is already the newest version (1:7.6p1-4ubuntu0.5).
python3-opencv is already the newest version (3.2.0+dfsg-4ubuntu0.1).
0 upgraded, 0 newly installed, 0 to remove and 82 not upgraded.
Collecting pip
  Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl
  Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl
  Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl
  Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl
  Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),)': /packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl
Exception:
Traceback (most recent call last):
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/connectionpool.py", line 346, in _make_request
    self._validate_conn(conn)
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/connectionpool.py", line 852, in _validate_conn
    conn.connect()
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/connection.py", line 340, in connect
    ssl_context=context)
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/util/ssl_.py", line 332, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket
    _context=self, _session=session)
  File "/usr/lib/python3.6/ssl.py", line 817, in __init__
    self.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 1077, in do_handshake
    self._sslobj.do_handshake()
  File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl/requests/adapters.py", line 440, in send
    timeout=timeout
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/connectionpool.py", line 668, in urlopen
    **response_kw)
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/connectionpool.py", line 668, in urlopen
    **response_kw)
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/connectionpool.py", line 668, in urlopen
    **response_kw)
  [Previous line repeated 2 more times]
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/connectionpool.py", line 639, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/share/python-wheels/urllib3-1.22-py2.py3-none-any.whl/urllib3/util/retry.py", line 398, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python3/dist-packages/pip/commands/install.py", line 353, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python3/dist-packages/pip/wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python3/dist-packages/pip/req/req_set.py", line 620, in _prepare_file
    session=self.session, hashes=hashes)
  File "/usr/lib/python3/dist-packages/pip/download.py", line 821, in unpack_url
    hashes=hashes
  File "/usr/lib/python3/dist-packages/pip/download.py", line 659, in unpack_http_url
    hashes)
  File "/usr/lib/python3/dist-packages/pip/download.py", line 876, in _download_http_url
    stream=True,
  File "/usr/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl/requests/sessions.py", line 533, in get
    return self.request('GET', url, **kwargs)
  File "/usr/lib/python3/dist-packages/pip/download.py", line 386, in request
    return super(PipSession, self).request(method, url, *args, **kwargs)
  File "/usr/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl/requests/sessions.py", line 520, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl/requests/sessions.py", line 630, in send
    r = adapter.send(request, **kwargs)
  File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 47, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/usr/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl/requests/adapters.py", line 506, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Max retries exceeded with url: /packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:852)'),))

ログ11/28

参考:https://qiita.com/MMM-lab/items/04431add6210c80d3462

jetsonnano@jetsonnano-desktop:~$ mkdir workspa
jetsonnano@jetsonnano-desktop:~$ cd workspa/
jetsonnano@jetsonnano-desktop:~/workspa$ mkdir src
jetsonnano@jetsonnano-desktop:~/workspa/src$ git clone --recursive https://github.com/kunaltyagi/darknet_ros.git
Cloning into 'darknet_ros'...
remote: Enumerating objects: 3023, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 3023 (delta 2), reused 0 (delta 0), pack-reused 3010
Receiving objects: 100% (3023/3023), 131.42 MiB | 4.41 MiB/s, done.
Resolving deltas: 100% (1396/1396), done.

Submodule 'darknet' (https://github.com/pjreddie/darknet) registered for path 'darknet'
Cloning into '/home/jetsonnano/workspa/src/darknet_ros/darknet'...
remote: Enumerating objects: 5940, done.        
remote: Total 5940 (delta 0), reused 0 (delta 0), pack-reused 5940        
Receiving objects: 100% (5940/5940), 6.36 MiB | 3.99 MiB/s, done.
Resolving deltas: 100% (3926/3926), done.
Submodule path 'darknet': checked out '508381b37fe75e0e1a01bcb2941cb0b31eb0e4c9'

jetsonnano@jetsonnano-desktop:~/workspa/src$ cd darknet_ros/
jetsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/alexeyab
  remotes/origin/feature/ros_separation
  remotes/origin/fix/image_publisher
  remotes/origin/fix/ros_buildserver
  remotes/origin/master
  remotes/origin/opencv4
  remotes/origin/release
jetsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros$ git checkout -b opencv4 origin/opencv4
M	darknet

Branch 'opencv4' set up to track remote branch 'opencv4' from 'origin'.
Switched to a new bra
etsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros$ git branch -a
  master
* opencv4
  remotes/origin/HEAD -> origin/master
  remotes/origin/alexeyab
  remotes/origin/feature/ros_separation
  remotes/origin/fix/image_publisher
  remotes/origin/fix/ros_buildserver
  remotes/origin/master
  remotes/origin/opencv4
  remotes/origin/release
jetsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros$ git submodule update --recursive
remote: Enumerating objects: 31, done.
remote: Counting objects: 100% (16/16), done.
remote: Total 31 (delta 16), reused 16 (delta 16), pack-reused 15
Unpacking objects: 100% (31/31), done.
From https://github.com/pjreddie/darknet
 * branch            cb82c21fbbaf06177e49ea20660487b1fbe08d54 -> FETCH_HEAD
Submodule path 'darknet': checked out 'cb82c21fbbaf06177e49ea20660487b1fbe08d54'nch 'opencv4'

.bashrcの末尾に

export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

を追加

jetsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros$ cd
jetsonnano@jetsonnano-desktop:~$ vi .bashrc

変更前(末尾)

# export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0
source ~/workspace/devel/setup.bash
alias eb='nano ~/.bashrc'
alias sb='source ~/.bashrc'
alias gs='git status'
alias gp='git pull'
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'
source ~/catkin_ws/devel/setup.bash

変更後(末尾)

# export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0
source ~/workspace/devel/setup.bash
alias eb='nano ~/.bashrc'
alias sb='source ~/.bashrc'
alias gs='git status'
alias gp='git pull'
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'
source ~/catkin_ws/devel/setup.bash
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
jetsonnano@jetsonnano-desktop:~$ source ~/.bashrc

CMakeLists.txtを変更

jetsonnano@jetsonnano-desktop:~$ cd workspa/src/darknet_ros/
jetsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros$ ls
darknet  darknet_ros  darknet_ros_msgs  jenkins-pipeline  LICENSE  README.md
jetsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros$ cd darknet_ros
jetsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros/darknet_ros$ ls
CHANGELOG.rst  CMakeLists.txt  config  doc  include  launch  package.xml  src  test  yolo_network_config
jetsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros/darknet_ros$ vi CMakeLists.txt

-gencode arch=compute_72,code=sm_72を追加(30行目)

# Find CUDA
find_package(CUDA QUIET)
if (CUDA_FOUND)
  find_package(CUDA REQUIRED)
  message(STATUS "CUDA Version: ${CUDA_VERSION_STRINGS}")
  message(STATUS "CUDA Libararies: ${CUDA_LIBRARIES}")
  set(
    CUDA_NVCC_FLAGS
    ${CUDA_NVCC_FLAGS};
    -O3
    -gencode arch=compute_30,code=sm_30
    -gencode arch=compute_35,code=sm_35
    -gencode arch=compute_50,code=[sm_50,compute_50]
    -gencode arch=compute_52,code=[sm_52,compute_52]
    -gencode arch=compute_61,code=sm_61
    -gencode arch=compute_62,code=sm_62
    -gencode arch=compute_72,code=sm_72
  )
  add_definitions(-DGPU)
else()
  list(APPEND LIBRARIES "m")
endif()

${CUDA_TOOLKIT_ROOT_DIR}/libを変更(142行) 変更前

if (CUDA_FOUND)

  link_directories(
    ${CUDA_TOOLKIT_ROOT_DIR}/lib
  )

  cuda_add_library(${PROJECT_NAME}_lib
    ${PROJECT_LIB_FILES} ${DARKNET_CORE_FILES}
    ${DARKNET_CUDA_FILES}
  )

  target_link_libraries(${PROJECT_NAME}_lib
    cuda
    cudart
    cublas
    curand
  )

  cuda_add_executable(${PROJECT_NAME}
    src/yolo_object_detector_node.cpp
  )

else()

変更後

if (CUDA_FOUND)

  link_directories(
    ${CUDA_TOOLKIT_ROOT_DIR}/lib64
  )

  cuda_add_library(${PROJECT_NAME}_lib
    ${PROJECT_LIB_FILES} ${DARKNET_CORE_FILES}
    ${DARKNET_CUDA_FILES}
  )

  target_link_libraries(${PROJECT_NAME}_lib
    cuda
    cudart
    cublas
    curand
  )

  cuda_add_executable(${PROJECT_NAME}
    src/yolo_object_detector_node.cpp
  )

else()

ビルドする

jetsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros/darknet_ros$ cd ~/workspa
jetsonnano@jetsonnano-desktop:~/workspa$ catkin_make -DCMAKE_BUILD_TYPE=Release

ビルドwarning吐き始め

[ 47%] Building NVCC (Device) object darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/__/darknet/src/darknet_ros_lib_generated_convolutional_kernels.cu.o
Scanning dependencies of target darknet_ros_lib
[ 51%] Building CXX object darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/src/image_interface.cpp.o
[ 51%] Building CXX object darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/__/darknet/src/activation_layer.cpp.o
[ 51%] Building CXX object darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/__/darknet/src/activations.cpp.o
[ 48%] Building CXX object darknet_ros/darknet_ros/CMakeFiles/darknet_ros_lib.dir/src/YoloObjectDetector.cpp.o
/home/jetsonnano/workspa/src/darknet_ros/darknet/src/activations.cpp: In function ‘char* get_activation_string(ACTIVATION)’:
/home/jetsonnano/workspa/src/darknet_ros/darknet/src/activations.cpp:12:20: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
             return "logistic";
                    ^~~~~~~~~~
/home/jetsonnano/workspa/src/darknet_ros/darknet/src/activations.cpp:14:20: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
             return "loggy";
                    ^~~~~~~
/home/jetsonnano/workspa/src/darknet_ros/darknet/src/activations.cpp:16:20: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
             return "relu";
                 ^~~~~~

ビルド完了?

中略
[ 98%] Linking CXX shared library /home/jetsonnano/workspa/devel/lib/libdarknet_ros_lib.so
[ 98%] Built target darknet_ros_lib
Scanning dependencies of target darknet_ros
[ 98%] Building CXX object darknet_ros/darknet_ros/CMakeFiles/darknet_ros.dir/src/yolo_object_detector_node.cpp.o
[100%] Linking CXX executable /home/jetsonnano/workspa/devel/lib/darknet_ros/darknet_ros
[100%] Built target darknet_ros

実行方法がわからない 試行錯誤

rocalhostでroscore roslaunch darknet yolov3.launch

rocalhostでroscore

$ roscore
$ rosrun uvc_camera uvc_camera_node
$ roslaunch darknet_ros yolo_v3.launch

以下のコマンドのみ実行

$ roslaunch darknet_ros darknet_ros.launch

エラー出る

jetsonnano@jetsonnano-desktop:~/workspa/src/darknet_ros/darknet_ros/yolo_network_config/weights$ roslaunch darknet_ros yolov3.launch
RLException: [yolov3.launch] is neither a launch file in package [darknet_ros] nor is [darknet_ros] a launch file name
The traceback for the exception was written to the log file

usbカメラから画像をキャプチャすることはできた ※ひとつづつ別端末で実行、rosrun image...のみjetsonnanoモニター側端末

jetsonnano@jetsonnano-desktop:~$ roscore
jetsonnano@jetsonnano-desktop:~$ rosrun uvc_camera uvc_camera_node 
jetsonnano@jetsonnano-desktop:~$ rosrun image_view image_view image:=/image_raw

参考: http://kazuki-room.com/how_to_detect_objects_by_putting_darknet_ros_in_jetson_nano/#outline__3_6 http://www1.meijo-u.ac.jp/~kohara/cms/technicalreport/ros-melodic-camera http://suzukitakahiro.sakura.ne.jp/tech2/