ふるお〜と!- FullAuto

AI・ロボットが普及しBI(ベーシックインカム)が早急に実現されることを願う元ニートのブログ

ふるお〜と!-FullAuto

ネットワーク上でデータを送受信する規格について

ネットワーク上でデータを送受信する規格について Web業界界隈やIoTを紹介する書籍ではJSONが主流だけど、 それでは画像データやAIの推論データをBase64というテキスト形式に一旦 変換する必要が出てくる。 Open CV AI KitはMessagePackを採用してる。 その…

git clone した後に参照もclone する

git cloneをしても、参照のサブモジュールがある場合、それは空っぽのままである。 $ git submodule update --init --recursive を実行する必要がある。

【ふるお〜と!】PyTorch実装の流れ

PyTorch | Pytorch3Dで使われる関数 No PyTorch PyTorch3D 1 SettingDefine torch.cuda.is_available()torch.manual_seed(.)torch.device(...) torch.utils.data.DataLoader(..) torch.nn.Module torch.cuda.is_available() torch.device(.) torch.nn.Module…

【ふるお〜と!】ボリュームレンダリングを試してみる【PyTorch3D】

⏮ nullpo24.hatenablog.com pytorch3d/fit_textured_volume.ipynb at main · facebookresearch/pytorch3d · GitHub Pytorch3Dの サンプルを試してみたんですけど 以下のようなエラーが出ました。 RuntimeError: CUDA out of memory. Tried to allocate 480.0…

【ふるお〜と!】フィットレンダリングを試してみる【PyTorch3D】

nullpo24.hatenablog.com PyTorch3Dのdocを見ても高校生にはちょっとキツい英文だったから、日本語に訳してみんだけどさ...やっぱり意味不明だったわ じゃあ順を追って実際に試してみましょうか pytorch3d/fit_textured_mesh.ipynb at main · facebookresear…

PyTorch3Dのサンプルを動かすメモ

2D画像から3Dを生成、すなわち3D再構成に関するサンプルを動かすメモ。 pytorch3d/INSTALL.md at master · facebookresearch/pytorch3d · GitHub を参考にインストールしてみる。 環境 OS:Ubuntu20.04 GPU:GTX1070 Prerequisite Anaconda: Anaconda | Indivi…

【ふるお〜と!】デジタルツインめんどくさい【CAD】

みーちゃん デジタルツインを実現させるために、まずは仮想空間にロボットを作成するわよ オッケー Linkの座標は2,3,1で、Jointは...4,2,1...と 5時間後... はぁはぁ。。。 できたー? できない。すごくめんどさいっす。てか、新たなロボットができるたびに…

職種 10年以内に無くすことができる確率(%)

下記の職種が 職種 10年以内に無くなる確率(%)らしい。 10年前にもこんな予測があったけど、現在、当たっているのは半々ぐらい。 技術的には10年以内に無くすことができる職種一覧と実例集 順位 職種 確率(%) 実例 実装の課題 1位 電車運転士 99.8 www.yo…

Debian Packageを作ってみる[慣れるための基本編]

1.実行ファイル作成 helloworld.cpp #include <iostream> int main() { std::cout << "HeloWorld!" << std::endl; return 0; } コンパイル $ g++ helloworld.cpp -o helloworld 2.Debian Package作成 パッケージファイルが入る大元のディレクトリを作成。 $ mkdir Hell</iostream>…

【SDF? | URDF?】シミュレーション用のロボットモデルはどのファイル形式で記述すべきか【.dae? |.stl?】

以前私はロボットのモデルをDAE形式でファイルを作成し、 SDF形式の<collision>と<visual>の2つの項目を一つの.daeでまとめて取り扱っていました。 <link name="body"> <visual name="visual"> <geometry> <mesh><uri>file://Body.dae</uri></mesh> </geometry> </visual> <collision name="collision"> <geometry> <mesh><uri>file://Body.dae</uri></mesh> </geometry> </collision></link></visual></collision>

MediaPipeの結果をPublishしてみる[ROS]

objectron_publisher.py $(function() { $('.bx-top').fadeIn('slow'); }); $(document).ready(function(){ $('.bxslider').bxSlider({ mode: 'horizontal', moveSlides: 1, /*一度に動かすスライド数*/ slideMargin: 0, /*画像間の余白*/ infiniteLoop: tru…

MediaPipeをpythonで実行してみる

環境 Ubuntu18.04 Prerequisite venvをインストール $ sudo apt-get install python3-venv インストール venv上でmediapipeをインストール 仮想環境を作成する。 $ python3 -m venv mp_env 仮想環境に入る。 $ source mp_env/bin/activate (mp_env)$ pip ins…

MediaPipeのSample(Hand Tracking)を試してみる

bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/◯◯◯:[TARGET_NAME] TARGET_NAMEはBUILDファイルの中に書いてある。 ◯◯◯を試したいSampleに変更すればオッケー...というわけではない。 Hand Tracking ◯◯◯をhand_trackingに…

Hello World! MediaPipeを試してみる

環境 Ubuntu 18.04 ビルドツール bazelをインストール bazel Installing Bazel on Ubuntu - Bazel $ sudo apt install apt-transport-https curl gnupg $ curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg $ sudo mv baze…

拡張装備(プラグイン) 夢幻召喚(インストール)!!! あれ?C++のプライグイン実装ってめんどくさい

『拡張装備(プラグイン) 夢幻召喚(インストール)!!!』 ...あれ?なんかエラーになってるんですけど イリヤさん mainの実装(詠唱)を忘れていますよ。Pluginの型を用意して、どう使うかちゃんと唱えてください うん、わかった 「──告げる! 汝の身は我に! 汝…

日本人にありがちなメソッド名の宣言

みーちゃん ん? メソッド名なんだけどPokemonGet()って何よ? ポケモンゲットだぜ!って意味だよ? ちがーう!これじゃポケモンが何かをゲットすることになるじゃん!! "get.*pokemon"でgrepしても、検索に引っかからなかくて処理を見逃すとこだったよ! …

プライベートメンバ変数はPrivate Class として定義すべき? [C/C++]

プログラミング歴10年以上の先輩が上のような実装をしたんだけどさ... キャメルケースに大文字を使ってるのが違和感あるんだよね 後、私はメソッドに動詞を書くのは必須だと思うのよ Get、Set、Find、Clear、Cancel...etc。 つまりこんな感じ まぁこれは些細…

LinuxとArudinoでサーボモータ(ServoMotor)[MG996R]を動かしてみた

環境 OS: Ubuntu18.04 HW:Arduino Mega 2560 Servo Motor : MG996R Power Supply : 5V ※MG996RはUSBのみの電力だと動作が不安定になった。ということで外部電源5Vを供給。 IDE: Software | Arduino 事前準備 USBポートのデバイスファイルにアクセスするため…

大規模ソフトウェアを描くにはCoreをしっかり

なぜこんなことに(継ぎ接ぎ)なってしまったのか・・・。 それはあなたの技術力が足りないからでは? ・・・しょうがないでしょ!学校で習う範囲がここまでだもの!! 自習・共習・公習...まずは自習であります ムカ...まぁいいわ。今、私が作り上げることがで…

CMakeがGenerateするファイル CMakeと属性構文の合わせ技

ignition gazeboのソースを見るといくつかのファイル(ほぼ全て?)に #include "ignition/gazebo/Export.hh" というようにExport.hhがインクルードされている。 このExport.hhというファイルはビルド前には存在しない。 Export.hh.inという形で存在している(.…

イベントをキューにプッシュ ~EventQueue~

一つのイベントに対してCPUが即時実行できればいいけどさ 同時に複数のイベントが起こったらどうすんの? そういう時はイベントをキューにプッシュするといいよ。 ふーん。具体的にどんなクラスを使えばいいの? std::queueクラスを宣言して、std::condition…

ふるお〜と!第2話:介護職は伸びてるけど避けたほうが良い

でも、コロナ禍でも介護職とか正社員の求人数、増えてるよ? 介護職は基本的に誰でもできるから低賃金なのよ。 また、腰を痛めることが多いし、 夜間勤務もあって体調を崩す人も多いよ。 ...なるほど

C++ 結果を受け渡しするパラメータ

次の関数を見て欲しい。 以下のプログラムはC言語で書かれた 画像の中のオブジェクトをサーチし、得られた位置の結果を格納するプログラムだ。 typedef struct _SearchParameter { IMAGEHANDLE img; POINT pt1; int *result; } SearchParameter void Search(…

ふるお〜と!第1話:事務職はやめとけ AI・ロボットを開発せよ

せんせー!リ◯ルートのR-CAPっていう適職検査を受けたんですけれど、一般事務職が1番でした! ...それはちょっとまずいわね。 えー!なんでですか!? ITやAIの合理化によって無くなりつつある職業だからよ。 それにもかかわらず、依然として求職者数はかな…

ダイソーの研磨工具で3Dプリントする際にできる積層痕がどれくらい滑らかになるか実験してみた(その2)

nullpo24.hatenablog.com 前回の続き 実験用具 ・フェルトディスク(200円) ・鉄工用棒やすりで削った造形物 ナイロンディスクは色移りするので、鉄工用棒やすりのみで研磨した。 ・仕上げ研磨剤 フェルトディスクの袋に 仕上げ研磨剤(青棒)を必ず塗布してご…

ダイソーの研磨工具で3Dプリントする際にできる積層痕がどれくらい滑らかになるか実験してみた(その1)

目的 100円ショップ ダイソーの研磨用の工具で、 3Dプリントする際にできる積層痕を 滑らかにできるか試してみる。 実験用具 ・鉄工用棒やすり ・木工用棒やすり ・ディスクペーパー#40 ・ディスクペーパー#400 ・ナイロンディスク (200円) ・PLA樹脂の球面…

ダウンロードしたSTLをBlenderで加工する

Miku Hatsune by alexgian - Thingiverse でダウンロードした、ミクさんのstlファイル。 ネットで転がっているファイルはこのようにパーツごとに分かれていないため、 そのままではロボットの外装として活用することはできない。 そこで、ロボットの外装とし…

3Dプリント後、現実世界で破壊される

仮想空間は無重力ですが、現実世界では常に力が加わります。 上の写真では1個285gのモータを5個使っていたので、 約14Nの力が加わり続けていました。 そして2週間で破壊されました。 リブを意識して追加する 身の回りのプラスチック製品を見ると、裏面を凸凹…

C++コード読解

Ignition Gazeboに以下のようなコードがある。 void Model::SetWorldPoseCmd(EntityComponentManager &_ecm, const math::Pose3d &_pose) { auto poseCmdComp = _ecm.Component<components::WorldPoseCmd>( this->dataPtr->id); if (!poseCmdComp) { _ecm.CreateComponent(this->dataPt</components::worldposecmd>…

apt installしたヘッダとライブラリを使う

$ sudo apt install hoge このコマンドを使うとどこかにヘッダとライブラリがインストールされます。 Makefile作成する場合はヘッダとライブラリを探し出しパスを設定する必要があります。 INCDIR = /usr/local/inluce/ LIB = -L/usr/local/lib cmakeを作成…