ふるお〜と!- FullAuto

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

ふるお〜と!-FullAuto

20.Programming-C++

C++ モジュール化 パイプライン

リアルタイムに画像処理、AI処理をしてみたんだけど、CPUが100%に張り付いちゃってカメラのフレームレートに追いつかなくなってしまったわ ふ...お子ちゃまね ファッ!? GoogleのMediapipeはタスクごとに分割(モジュール化)してスレッドプールに格納している…

AI・ロボットにネットワーク上から「やれぇ!」という処理方法について

https://piapro.jp/t/_Pft AI・ロボットに対してネットワーク上から「やれぇ!」というコマンドを送信して、そのコマンドに応じて処理を選択していくという流れについて 「これやれぇ!」が値型であれば、 switch cmd: case これやれぇ!: //これやる break; c…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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>…

画像のフォーマット方式を別プロセスに伝えるには?

画像のピクセルフォーマット(エンコーディング) 画像データを別のプロセスに伝えるとき、ピクセルフォーマットを伝える必要があります。 この画像のピクセルフォーマットを表す値について、各ソフトウェアでバラバラです。 モータもバラバラです。というかそ…

コンピュータ世界のオブジェクト操作はめんどくさい : オブジェクト指向編

nullpo24.hatenablog.com オブジェクトのハンドル(ポインタ)を取得できれば、 オブジェクトの操作はなんだってできる というわけではありません。 リアル世界 言われたことを素直に理解します。 コンピュータ世界 : オブジェクト指向 オブジェクト指向はフィ…

C++イベント実装 Calllbacks, Promises, Signals and Events

イベント処理の実装に苦しめられている今日この頃。 ある意味、基本中の基本なのだが、 基本情報技術者試験を合格しても実装することはできないし、 応用情報技術者試験を合格しても実装することはできない。 実装するには提供されたAPIのサンプルを動かして…

QTで実装されたソースをSTL(標準ライブラリ)で実装できるか?

最近は便利ということで猫も杓子もQtライブラリを使った実装をしている。 本当にそれで良いのか!? 依存しちゃって良いのか!? ソースコード上にQ_OBJECTというおまじないが出てきてモヤモヤするのは私だけだろうか? というわけでQtの実装をSTLへ変換して…

Q.どうやってLinuxでXMLファイルなどのリソースを実行ファイルにまとめる?

Q.WindowsでXMLファイルなどのリソースをまとめるには A.Win32APIを使う Q.Linuxでリソースをまとめるには A.リソースをオブジェクトファイルにしてリンクをする Q.複数のファイルをまとめるにはどうすればよいか A各々のオブジェクトファイルを作って、各々…

C/C++におけるHANDLEの概念

プログラミングは簡単だ。 順次、分岐、繰り返しのみ! ... 入門では登場しないHANDLEという概念。 C/C++ではFOO_HANDLEという定義をhfooやhbarという名前で使われています。 実態はvoid*です。 映画でHANLEが使われる場面 Handle us? You'll handle us? You…

C++ templateことはじめ

C++のtemplateは開発者が使用者のために自由に型定義できるようにしたもの。 参考 適当なC++テンプレート入門 - Qiita

見にくいWindowsとLinuxのコードの共通化

同一のAPIを提供するにあたって、WindowsとLinuxを別々に作成するのはめんどくさいし、工数もかかる。 というわけで、WindowsとLinuxのコードを共通化して開発工数を削減しよう。 そうして出来上がっていたのはこんな感じのコードである。 hogeFunction() { …