真夏にご試乗いただきました〜

皆様こんにちは。いやー、暑いですね〜。汗がダラダラしちゃいます。そんな中、昨日今日と2日間WAWを借りてくれた方がいます。HG(Hard gayではない)さん、ありがとうございます。

昨日今日とWAWをレンタルしていただいたHGさんと

そのHGさんが、レンタルされたあと、感想として第一に言われていたことですが、見ず知らずの多くの人に声をかけていただき、さらにそれは皆、positiveなもので、単純に興味を持ったから声をかけた、というもので、楽しい経験だったそうです。確かに、ベロモービルはまだまだ日本では珍しいので、そういうことが往々にしてありますね。それをいいと思うかどうかは人それぞれかもしれませんが、見ず知らずの、子供から大人までの非常に様々な年代の人とフラットに話せる、というのは人生でも結構まれな経験なので、私は楽しいと感じますし、HGさんもそれを楽しいと感じていただき、ベロモービルの宣伝までしていただいたようです。HGさん、ありがとうございました!

Please follow and like us:

QuattroVelo with childseatが日本にきた〜!!

きた〜!という織田裕二のものまね、なつかしいですね。…ついやってしまいました、うれしくて。そうです、注文していたQuattroVelo with childseatがついに届いたのです。2020年3月に。すみません、コロナの関係やらなんやらで、もう3ヶ月経ってしまいました。しかし、来たからにはyoutube videoもアップしておきましょう。こちらです!

こちらのベロモービル、現在子供と2人で乗れる世界で唯一の量産型ベロモービルです。お子様と一緒にベロモービルライドしたい方、近いうちにレンタルも開始しますので、ぜひ体験してみてくださいね!それではまた、チャオ〜!

Please follow and like us:

WAWオプション、価格変更

皆様、ベロってますか? はい、そんなわけあんまりないですね。

今年に入るまで、しばらくKatanga社とあまりやり取りがなかったのですが、先日WAWをご購入頂いた北海道のKさんのオプションの関係で幾度かやり取りをしていて、その中でオプションシートをもらっていたのですが、よくよく見ると、価格がしれっと変更されていました。基本的に10数%程度の値上げになっています。それに応じてveloart intelligenceのページでも価格改定を行いました。昨今の円高により、少しはクッションしたのですが、それでも10%程度の値上がりになってしまいました。コロナでKatanga社の状況も厳しいようですが、なんとか従業員の方皆さん毎日出社して製造しているそうです。こちらからも無理はいえません。皆様には申し訳ありませんが、ご了承下さい。

さて、それに伴い、少しオプションも見直しました。と言っても、WAW sportiveに関しては、スマホホルダー(コンパクト)を標準にしたくらいです。WAW comfortableに関しては、スマホホルダー(ワイド)(30cmの私のビデオとかに出てたやつ)に加え、 内装ギアのRohloffを標準にしました。これは私が乗ってみて、重さ(0.9kg)と価格(11万ちょっと)を気にしないのであれば、あったほうがいいと考えたからです。Rohloffは、静止状態でもギアをガチャガチャ変えられ、そのままスムーズに発進できるものです。実際Rohloffにしてから、チェーン外れは一回も起こっていないので、チェーン外れで前のカウル開けてガチャガチャやる必要がないのは大きいです。まあ、上手にシフトチェンジすればそんなことは余り起こらないのかもしれませんが、はじめはどうしても、失敗してしまうものですから。

というわけで、ご報告でした。近いうちにQuattrovelo movie upしますね。乞うご期待、チェケラ。

Please follow and like us:

RTAB-Mapのデモを動かす

はじめに

本日もcomputer visionのvisual SLAMネタです。前回やったORB SLAM2で3次元空間の地図(とカメラの動きの記録)をつくることはできたのですが、出来上がった地図は点群データでしかなく(sparse reconstructionと呼ばれます)、点群に色もついていないので、3次元復元で想像するものとは少し見かけが違うかもしれません。そこで今回は、semi denseな手法と呼ばれるRTAB-Mapを動かしてみました。

できること

デモ用の録画ファイルを用いて、カラーでの3次元復元、ロボットの移動の様子が見れます。

環境

OS: Linux
Distribution: Ubuntu 18.04
ROS version: Melodic

インストール

ROSのインストール

ROS official pageに従えばできますが、ぱぱっとやりたい人のためにメモ。以下コマンドだけを実行すれば出来ます。

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
$ sudo apt update
$ sudo apt install ros-melodic-desktop-full
$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
$ sudo rosdep init
$ rosdep update

RTAB-Mapのインストール

RTAB-Map ROS github official page通りですが、ここにメモしておきます。

$ sudo apt-get install ros-melodic-rtabmap-ros

実行方法

RTAB-Map ROS official page通りでできますが、メモしておきます。

まずdemo_mapping.bag をダウンロードし、好きなdirectoryに置きます。そしてそこで以下のコマンドを打てば、立ち上がったwindowで結果が見れます。

$ roslaunch rtabmap_ros demo_robot_mapping.launch
$ rosbag play --clock demo_mapping.bag
結果画像

あとは上記official pageに従って好きなようにデモを動かせます。

自分の環境のMapを作るには?

Intel RealSenseというstereo camera moduleがあれば、こちらのサイトを参考にすれば、簡単に自分の部屋等のマップが作れます。私もやってみたのですが、保存し忘れていて、会社にRealSenseを返したので、もうできません…。お見せできなくて残念。

まとめ

という訳で、今回はsemi denseと言われるvisual SLAMを試してみました。自分の周りの3次元地図がただで作れるなんて、ワクワクしちゃいますね。

今回ご紹介したRTAB-Mapはかなりメンテがされていて、簡単に使い始められるな、という印象でした。実は他にも様々な(DeepTAM等)試したのですが、中々実行出来るとこまで行っていません。

次回、RealSenseが手に入ればベロモービルの3次元復元を…やっちゃいますかね。好きな部分をグリグリして見れちゃいますから。では、チャオ!

Please follow and like us:

Telexistenceを離れました

皆さんはクビになったことがありますでしょうか?私はそれに近いことになりました。一応自主退職ですが。本日最終出社日で、会社の私物の回収と掃除をしてきました。4/20にその旨言い渡されまして、そこから11日間だけ給与は出たのですが、最近は給与なしで雇用だけされているという状態でした。といっても業務はなかったのですが。

最初言われたとき、というか言われそうなときも含めて、ゲロ吐きそうなくらい気分が悪かったです。でも今はもう次に向かって進もう、という前も来な気持ちで吹っ切れています。まあ、このブログも脱サラ日誌、と言いながら結局ベンチャーとは言え、サラリーマンやってるじゃん、って感じだったので、タイトルと合ってなかったので、今合ってる感じですね。

とは言え、まだまだveloart intelligenceだけでは到底生活出来ないので、また就職活動しています。最近ブログをまた書くようになったのはそういった訳があったんです。

でも早いとこ次見つけないと、生活がほにょほにょしちゃいますから、ね!

Please follow and like us:

Tシャツ製作しました〜

完成したTシャツを乾かしているところ

先日Good株式会社のH様という方からTシャツをご発注頂きました。その後、社員の方にも、と言われ、合計4枚もデザインTシャツをご発注頂きました!H様ありがとうございます。ちなみにGoodの文字はH様からのご要望で社名のGoodということです。

こんな感じで製作していったのですが、途中で気付いたのですが、ハンガーをかけたまま塗ると、一色塗るごとにそのまますぐ干せ、いい感じでした。また、裏写りしないように、いつもは紙を敷くのですが、今回はクリアファイルを敷くと、Tシャツに全く張り付かない上、ファイルについたインクもすぐにティッシュで拭き取れ、いい感じでした。4枚も合ったので、1色塗るごとに乾かせたので、効率が良かったです。とは言え、合計製作時間は1時間半かかりました。利益率を考えるとかなり効率が悪いですが、まあ楽しいですからね!

そして折角布用絵の具を出したのだから、と新しいTシャツデザインにも挑戦しました。こちらです。

本日のデザイン

うーん、うまくできれば次のデザインTシャツとして、製品にしようかと思っていたのですが、上の形が格好良く出来なかったのでボツとします。こんな感じで自分でフォントも作ったのですが。

何かうまくいかなかったので、後で上記のように色を入れてみましたが、ま、よくはなりませんでした。ではまた明日!チャオ!

Please follow and like us:

YOLOv3をUSBカメラで動かしてみました

イントロ

あらま、今日もComputer visionネタで失礼します。今日はDeep Learning によるDetection手法でメジャーなYOLOをビルドしてUSBカメラで動かしてみたので、メモしておきます。

環境

OS: Linux
Distribution: Ubuntu18.04
GPU: Nvidia Geforce GTX 1060
USB camera: Logicool HD720p

YOLOとは

You Only Look Onceの略で、DeepLearning による物体検出手法のメジャーなアルゴリズムの一つ。性能は結構良い上、動作が早いことが特徴。アルゴリズムの詳細は原論文をご参考に。ざっくり理解したい人にはこちらのサイトの説明が分かりやすかったです。

CPUでの実行

オリジナルのサイト(https://pjreddie.com/darknet/yolo/)でCPUでの実行までは簡単に行きました。何かのアルゴリズムを実行しようとするときは、大抵ビルドで引っかかるのに、YOLOは依存関係がほぼ何もないのでなんのトラブルもありませんでした。ビルドもCMakeを使わずMakeのみで書かれています。すごい!

一応手順を書きますが、オリジナルサイトのままです。

git clone https://github.com/pjreddie/darknet
cd darknet
make
wget https://pjreddie.com/media/files/yolov3.weights
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
eog predictions.jpg

上記コマンドだけで結果の表示までできました。

GPUでの実行

ここでちょっとだけ詰まったので一応今回メモを書くことにしました。

Nvidiaドライバのインストール

今までUbuntuのaptからインストールしたもの(nvidia-driver 390)で事足りていたのですが、一応Nvidiaのサイトで検索すると、私の設定に最適なものはversion 440と出て、aptでインストールしようとするとエラーがでました。aptのリポジトリを追加しないといけないみたいです。具体的には下記を実行すれば大丈夫。

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-driver-440
reboot

リブート後、nvidia-smiでGPU情報が出ればOK.

CudaToolKitのインストール

driverも最新にしたので、Cuda Toolkitも最新にしておきましょう。Nvidiaのサイトから自分に合ったCudaToolKitを選び、 dev(local)をダウンロードします。私の場合はバージョン10.2だったので、こちらのコマンドでした。.debパッケージ名は適宜読み替えて下さい。

sudo dpkg -i cuda-repo-ubuntu1804-10-2-local-10.2.89-440.33.01_1.0-1_amd64.deb
sudo apt update
sudo apt install cuda cuda-drivers
reboot

その後、~/.bashrc に以下を追記します。

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

CUDNNのインストール

Nvidiaのサイトで登録して、以下2つをダウンロードします。

cuDNN Runtime Library for Ubuntu18.04 (Deb)

cuDNN Developer Library for Ubuntu18.04 (Deb)

その後下記コマンドでインストールします。パッケージ名は適宜読み替えて下さい。

sudo dpkg -i libcudnn7_7.6.5.32-1+cuda10.2_amd64.deb
sudo dpkg -i libcudnn7-dev_7.6.5.32-1+cuda10.2_amd64.deb

YOLOv3をCUDA付きでビルド

こちらも上記CUDA周りが終わっていれば、YOLOの本家サイト通りで可能です。具体的には、darknet/Makefileを開き、以下のように編集します。OpenCVはインストール済みと仮定します。

GPU=1
CUDNN=1
OPENCV=1
OPENMP=1

その後、make すると、ちゃんとビルド出来るはずです。

YOLOv3をCUDAで実行

これでこのまま、

./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg

を再度実行すると、今度はCUDA版で実行してくれるはずです。しかし、今回個々で下記エラーが出ました。

   57 CUDA Error: out of memory
darknet: ./src/cuda.c:36: check_error: Assertion `0' failed.

原因は表示どおりで、私のGPUではメモリーが不足するようです。対策はバッチサイズを減らすことで、 cfg/yolov3.cfg を開いて、6行目を下記のように変更します。

batch=32

これで再度上記コマンドを叩くとちゃんとdetectできます。

CUDA版をUSBカメラで実行

USB版カメラをPCに繋いで、下記コマンドを打てば実行できます。

./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights

実行結果がこちら。何か変な音がなりますがなぜでしょうね。

終わりに

なんでまたこんなもの上げ始めたの?って疑問には近日中にお答えいたします〜。ではまた近いうちに!更新頻度上げてくつもりですから、から!

Please follow and like us:

Velomobile WAW試乗頂きました!

本日は久しぶりにベロモービルの試乗が入り、荒川サイクリングロードに行ってまいりました。Hさん、ご試乗ありがとうございます。Hさんはこのブログもよく見ていただいているようで、コロナでremote workになり、ご試乗を決断されたとのこと。ありがとうございます。また、私同様現在の車の負の部分を問題視されている方で、試乗後に色々お話させて頂き、話が合って嬉しかったです。日本にはたくさん同じような問題意識を持った方がいらっしゃるようで、勇気をもらいます。よし、またこれからも頑張るぞ!

Please follow and like us:

wordpressプラグインEasy Appointmentsがサインイン要求する問題の解決法

はじめに

やっとできましたよ!veloart intelligenceのベロモービルレンタルサイトで発生していた不具合である、ユーザーにサインイン要求される問題の解決が!これでベロモービルの予約がサイトでできるようになりました!

原因

私は、Wordpressの管理画面wp-adminに、セキュリティー対策の推奨であるBasic認証というものを設定しており、私しか管理画面であるwp-adminにはアクセスできなくしていました。ところが、Easy Appointmentsプラグインは内部で、非同期通信方法であるAjaxという手法を使っており、それがwp-adminディレクトリ直下にあるadmin-ajax.phpというファイルにアクセスするためです。

解決法

Basic認証で、admin-ajax.phpファイルだけはユーザがアクセスできるようにします。

具体的には、エックスサーバーのtop画面→ファイル管理→サイトURL→public_html→wp-adminの.htaccessの下に下記を追加します。

<FilesMatch "(admin-ajax.php)$">
    Satisfy Any
    Order allow,deny
    Allow from all
    Deny from none
</FilesMatch>

参考に、最終的な私の.htaccessファイルの中身を以下にあげておきます。

AuthUserFile "/home/veloart/veloart-intelligence.com/htpasswd/store/wp-admin/.htpasswd"
AuthName "Member Site"
AuthType BASIC
require valid-user

<FilesMatch "(admin-ajax.php)$">
    Satisfy Any
    Order allow,deny
    Allow from all
    Deny from none
</FilesMatch>

終わりに

いやー、web初心者なので、こんなこともしりませんでした。私はBasic認証を、xserverの権限ボタンをわんくりっくしただけだったので。今回、page sourceをみてadimin-ajax.phpが怪しいと当たりをつけた後、こちらのページでヒントを頂き、こちらを見て修正しました。とにかく解決してよかったです。

Please follow and like us:

ORB SLAM2を使った3次元復元方法

はじめに

皆様、ご無沙汰しています。いかがお過ごしでしょうか?今日は完全なcomputer visionネタです。velomobileと無関係で失礼します。

computer visionの究極の目的のうちの一つに時空の再現があります。どういうことかというと、写真をとる、ビデオをとる、のさらに先に、各時刻での3次元世界の復元である4d reconstruction(時間と3次元空間の4次元の再構成)です。今日はその為のパーツとして考えられる静的な3次元空間の復元の1手法のやり方についてメモしておきます。

できること

点群表現で3次元環境を作成できます。結果のビデオが上記です。

環境

OS: Ubuntu 18.04
Python: version 2.7 (anaconda environment)
ROS: melodic

インストールと実行

github page: https://github.com/raulmur/ORB_SLAM2

しかし、このページ通りにやってもうまく行かないので、その場合の対処方法を下記にまとめておきます。 えーっと、ここから英語で行きます。えー!!

  1. Install prerequisites : follow the project page
  2. Build orb_slam2: follow the project page
    • * If you encounter the error “error: ‘usleep’ was not declared in this scope”, #include <unistd.h> to include/System.h.
  3. Run example: follow the project page
    • run mono example
      e.g. $ ./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/masahiro/data/tum/rgbd_dataset_freiburg1_desk
    • run rgbd example
      e.g. $ ./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml /home/masahiro/data/tum/rgbd_dataset_freiburg1_desk Examples/RGB-D/associations/fr1_desk.txt
  4. Build ROS node
    • $ source /opt/ros/melodic/setup.bash
    • e.g. $ export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/masahiro/proj/study/computervision/slam/ORB_SLAM2/Examples/ROS
    • $ ./build_ros.sh
      • * If you encounter the below error,
        “/usr/bin/ld: CMakeFiles/Stereo.dir/src/ros_stereo.cc.o: undefined reference to symbol ‘_ZN5boost6system15system_categoryEv'”
        add these into ORB_SLAM2/Examples/ROS/ORB_SLAM2/CMakeLists.txt (l.43,87,96)
        find_package(Boost COMPONENTS system filesystem REQUIRED)
        target_link_libraries(Stereo
        ${LIBS} ${Boost_SYSTEM_LIBRARY}
        )
        target_link_libraries(RGBD
        ${LIBS} ${Boost_SYSTEM_LIBRARY}
        )
      • *If you encounter “ImportError: No module named rosdep”, create conda environment for python 2.7, and install rosdep.
        $ conda create -n py27 python=2.7
        $ conda activate py27
        $ conda install -c conda-forge rosdep
      • * if you encounter the error; “ImportError: No module named roslib.manifest”, run below command.
        $ export PYTHONPATH=${PYTHONPATH}:/usr/lib/python2.7/dist-packages
      • *If you encounter “[rospack] Error: the rosdep view is empty: call ‘sudo rosdep init’ and ‘rosdep update'”, run
        $ sudo rosdep init
        $ rosdep update
  5. Running ROS Monocular Node
    • $ roscore
    • $ rosrun uvc_camera uvc_camera_node
      • * If you encounter problem, $sudo apt install ros-melodic-uvc-camera
    • $ rosrun image_transport republish raw in:=/image_raw raw out:=/camera/image_raw
    • $ rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml
      • If you encounter realsense old version issue, rebuild pangolin.
    • Congratulations! Now you must be able to see the “Map Viewer” and “Current Frame” window. Move your usb camera and create map. Enjoy!

Please follow and like us: