aptpod Tech Blog

株式会社アプトポッドのテクノロジーブログです

Rust/eguiで作るデスクトップ業務アプリ

  • はじめに
  • 今回作成するアプリ
  • eguiとは
    • eguiの特徴
  • GUI画面作成
    • egui template の利用
      • アプリ構造体の修正
      • GUIパーツの追加
  • データ送信処理の組み込み
    • Cargo.tomlの編集
    • サービスに接続するためのコード追加
  • GUIアプリの動作確認
    • デスクトップアプリとしての利用
  • まとめ

はじめに

こんにちは、aptpod Advent Calendar 2023 12月19日担当のアプトポッドの組み込みソフトエンジニアの影山です。

弊社ではエッジデバイスで動くソフトウェアにRustを採用して、開発を進めております。 私もアプトポッドに入社してからRustを本格的に勉強していくつかの開発にも携わってきました。

一般的に何かのWebサービスを使おうとした場合、開発時ははCLIで利用できるだけで基本的には事足りますが、とっつきやすさだったり、情報の閲覧性を考えるとGUIがあった方がうれしいケースも多々あるかと思います。

これまでの経験でRustも多少使えるようになったので、今回は、Rust SDKを使って自社サービスに接続してみようと思います。

弊社では、コアのサービスであるintdashに接続するためのクライアントライブラリを、色々な言語で提供 *1しており、その中にRustも含まれています。

RustでGUIを作ることができるライブラリはいくつか提供されています。今回はその中でもeguiというライブラリを利用して、デスクトップアプリを作ってみたいと思います。

*1:Python、TypeScript、Swift、C#、Go、Rust

続きを読む

リモートROS開発におすすめ!AWS EC2 GPUインスタンスにVNC接続

aptpod Advent Calendar 2023 12月18日 を担当する 組み込みエンジニアの久保田です。

みなさん、ROS(Robot Operating System)開発でGazeboシミュレータを動かす際、どのような環境を使っていますか? GPUを搭載した高性能なPCは社内に限られており、長時間の占有が難しいということも多いのではないでしょうか。以前紹介したOpen-RMFシミュレーションのように、試行錯誤しながら環境をフルに活用したいようなことがあるかと思います。

AWS EC2にVNC Clientで接続してOpen-RMFのデモを動かしている様子

本記事では、そのような用途向けに、AWS EC2のGPUインスタンス上にx11vncを使用したリモートデスクトップ環境を構築する方法を紹介します。この環境は、ROS開発だけでなく、Unityや動画生成などのGPUを要求するアプリケーションを使用したい方々にとっても有益です。

続きを読む

サクッとIoTシステムを構築する

こんにちは!

aptpod Advent Calendar 2023 12月15日担当サーバーサイドエンジニアの宮内です。

普段はサーバーアプリケーションを実装しているのですが、今日はフロントエンドのUI含んだintdashシステム全体の構築方法について書こうと思います。 どれだけ簡単に構築のできるかという点をお伝えしていきます。

リリース前の情報なので、現状でお伝えできる範囲内での内容となります。

続きを読む

Starlinkを使ったデータ収集(通信速度・遅延測定)

はじめに aptpod Advent Calendar 2023 12月14日の記事です。

こんにちは。ハードウェアグループの織江です。

弊社では主に4G/LTEや5Gといったモバイル通信網を利用した移動体からのデータ収集や制御を行っていますが、今回はそれに加えて衛星通信を使って利用できる環境を広くすることに挑戦しました。

  • Starlinkとは
  • Starlinkの通信速度測定
  • intdashに使う場合のネットワーク遅延評価
  • まとめ
続きを読む

intdashでNVHを簡易的に測定してみる

aptpod Advent Calendar 2023 12月13日を担当するintdashグループの落合です。

みなさんはNVHってご存知ですか?僕は全く知らなかったのですが、

  • Noise(騒音)
  • Vibration(振動)
  • Harshness(ハーシュネス:路面の凹凸による突き上げや、立て付けの悪さから来るガタピシ感など)

の頭文字で、自動車の快適性を推し量る上での一つの基準だそうです(WiKiより)。
この意味を知った時、弊社のintdashを使うと簡単に測定できるかもと思ったので、この記事ではintdashでNVHを簡易的に測定してみます。

続きを読む