aptpod Tech Blog

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

組み込み開発

最小エッジでストリームしてみた

手軽にデータストリーミングを開発したいみなさん、 こんにちは。ソリューションアーキテクトの伊勢です。 これまでintdashにデータをストリームするには、クライアントライブラリを使用してコーディングが必要でした。 2023年12月バージョンからREST APIで…

Raspberry Piでオンデマンドデータ収集してみた

限られたネットワークを効率的に使ってデータ収集したいみなさん、 こんにちは。ソリューションアーキテクトの伊勢です。 昨今、モビリティの遠隔監視ニーズはさらに高まっていますが、取得データは多岐に渡り、データ量は増える一方です。 データサイズや優…

intdashでNMEA2000のデータを取得してみる

船舶等の海洋電子機器の通信として普及しているNMEA 2000へ対応してほしいというご要望にお応えして、弊社製品のintdashでNMEA 2000のデータを可視化してみました。

MenderとDockerでアプリケーションのOTAを実現した、新しい組込Linuxシステムのご紹介

MenderとDockerを使用して柔軟なアプリケーションOTAを可能にした、エッジデバイス向けの新製品を開発しました。本記事では、MenderやDockerをどの様に使用したのか、そのTipsをご紹介します。

Parallels Desktopでintdash Edge Agentを動かしてみました

aptpod Advent Calendar 2023 12月7日の記事です。 intdash Edge Agentを使ってみたいけどMacしか持ってないみなさん、 こんにちは。ソリューションアーキテクトの伊勢です。 intdash Edge AgentはLinuxで動きますが、試しに手元のPCで動かしてみたいときが…

Multipath TCPで通信性能を向上してみる

aptpod Hardwareグループ所属、組込みソフトウェアエンジニアの矢部です。 aptpodで取り扱っているサービスでは、通信機能は重要な要素の一つです。LTE通信網を利用して計測を行うことが多いですが、時間帯や地域によって通信性能が低下することがあります。…

intdash を使って遠隔操作でスプラトゥーンをする話

本日は aptpod Advent Calendar 2022の12日目、担当は開発本部のやべです。普段は EDGEPLANT 関係の開発業務をやっています。 さて、皆さん、スプラトゥーン3やってますか?12月から新シーズンが始まってますます楽しくなってきましたね。 aptpod には circ…

IoTデバイスをデバッグするためのチートシート

aptpod Advent Calendar 20227日目の記事を担当する、intdashグループの落合です。 いきなりですが、あなたは今年はどんなバグの調査をしましたか? 解決に時間がかかったもの、あっさり解決できたもの色々あったかもしれませんね。 私も問い合わせの度に調…

EDGEPLANT T1のGPSを遠隔利用しよう

プロダクト開発本部EDGEPLANTグループのやべです。 皆さんGPS、使ってますか? 一昔前なら利用シーンも限られていましたが、今や生活の一部といってもいいレベルなので「使う」というイメージすらないかもしれません。 aptpod の計測ユースケースでも、GPSは…

EDGEPLANT T1でVPI使ってリアルタイム画像処理をやってみた

aptpod Advent Calendar 2021の14日目を担当するHW/OTグループの矢部です。前日の塩出さんの記事でエディタの話がありましたが、私が使用しているエディタはEmacsです。社内では多分2、3人しかいない少数派。何年か前は Spacemacs で使っていましたが、ここ…

Linuxでアナログデータ扱うためにEDGEPLANT ANALOG-USB Interfaceを利用する

aptpod Advent Calendar 2021 9日目担当のハードウェア/OT製品Grの野本です。 ANALOG-USB InterfaceがIndustrial I/Oに対応し、アナログデータを簡単に取り扱えるようになりましたのでご紹介します*1。 はじめに Industrial I/Oとは Industrial I/O インター…

Linux で CAN通信するために EDGEPLANT CAN-USB Interface を利用する

はじめに こんにちは、ハードウェア/OT 製品開発グループ1 でソフトウェア開発を担当している矢部です。 アプトポッドでは以前より、EDGEPLANT CAN-USB Interface という自社開発製品を取り扱っています。 こちらは車載機器の通信規格であるCAN2 データの送…

EDGEPLANT T1 + Dockerでかんたん!ディープラーニング

こんにちは。製品開発グループに所属しております、きしだです。 前回の記事でもご紹介の通り、弊社でついにハードウェアブランドが立ち上がり、その第一弾としてEDGEPLANT T1がリリースされました! 個人的にはデザインがとてもイケててずっと見つめていた…

Rustにおける非同期ストリームの関数呼び出しコストを検証する

OTチームの大久保です。 エッジデバイス上でのデータ処理やネットワーク周りの実装に、速度と生産性の両面で優れるRust言語を利用できないかをここ最近は検討しています。特に、tokioのバージョン1.0がリリースされたように、最近はRustの非同期関連のエコシ…

Pythonを使ってBDDでUSB機器を自動テストする

aptpod Advent Calender 2020、 9日目の記事です。 本日の担当は、組込み開発チームでFW開発を担当している矢部です。 はじめに 組込み機器の開発に関わって1x年ですが、入出力の自動化が難しい機器も多く、結局手作業になって無駄にボタン押下やUI操作の速…

Rust+Quinnで大量のデータを送信する

aptpod Advent Calendar 2020の4日目を担当します、研究開発グループの大久保です。 2日目では、RustとQuinnでechoサーバを作成しました。今回は応用として、Quinnを使って大量のデータを送信し、パフォーマンス評価をしてみたいと思います。弊社内のユース…

fpm を使って手軽に rpm パッケージを作ろう

はじめに こんにちは、SRE チームの柏崎です。 先日、intdash が AWS Marketplace にて提供開始されました。 これを期に、サーバサイドアプリをパッケージングするために、fpm というツールを使う機会がありました。 すっかりコンテナな世の中には地味めな話…

WSL2でintdash Edge Agentを動かしてみました

エンベデッドチーム 久保田です。 開発環境をWSL2 (Windows Subsystem for Linux)へ移行しました。 タイミングよく、「WSL2でUSBデバイスを使ってみよう」という記事が出回っていたので、aptpod CAN-USB Interface (AP-CT2A) もWSL2で動かせるのではないかと…

Rustでバイナリを読み書きするのに必要なクレート3選

研究開発グループの大久保です。 当社の製品の中にはC/C++で書かれたものが存在し、その中には独自のバイナリフォーマットを取り扱うものが存在します。既存のコードとやり取りするようなRustのプロジェクトを起こすためには、その独自のバイナリフォーマッ…

CIの動的テストでclang sanitizerを使う

はじめに こんにちは、製品開発グループの落合です。主に エッジサイドミドルウェア(intdash Edge)の開発を担当しています。このintdash EdgeはC++で作成しているのですが、言語が何であろうと「面倒な事は自動化したい」ですよね。そして、特に面倒なのは…

intdashとオリジナル治具を使って動画エンコード遅延測定をしてみた

はじめに 動画ストリーミングサービスにおいて、動画の遅延を測定したいというニーズは多いと思います。 動画が遅れる要因として以下3つが主に考えられると思います。 ネットワークの遅延 アプリケーションで行う処理による遅延 動画エンコード遅延 動画デ…

GluonCVのモデルをSageMaker Neo + Jetson tx2 + DLRで動作させてみる

研究開発グループで機械学習に関係する仕事を担当している瀬戸です。前回は、fastaiで学習に使う関数をApache MXNetで真似してみた - aptpod Tech Blogを紹介させて頂きました。今回は、SageMaker Python SDKのMXNetで利用できるGluonCVのモデルを、SageMake…

ROSの任意トピックをC++ノードでPublish/Subscribeする方法

はじめに 製品開発グループの野本です。 組込ソフトウェアエンジニアとしてデータ収集用端末のソフトウェア開発を担当しています。 今回はROSの取り組みの一環として、C++で任意のトピックをPublish/Subscribeする方法についてご紹介します。 はじめに 背景 …

通信遅延発生時にTurtlebot3を安全に遠隔制御する技術

先進技術調査グループのエンジニアの酒井 (@neko_suki)です。 過去に2回、Turtlebot3の遠隔制御について紹介をしました。 tech.aptpod.co.jp tech.aptpod.co.jp 今回は、ネットワークの切断やほかの要因によって大幅な通信遅延が発生した際に、Turtlebot3を…

CAN FDの物理層を理解する

CAN FD完全に理解した— Ryuichiro Ohira (@ryu_ohira) 2020年4月27日 はじめに そもそもCANの1ビットはどうやって決まるのか 物理層 :Physical coding sub-layer (PCS) Bit Timeを構成するSegment Synchronization Segment (Sync_Seg) Propagation Segment …

RustでROS(RoboMaker)のノードを書いてみる

先端技術調査グループの大久保です。 弊社では現在、クラウド上でROSの開発が行えるAWS RoboMakerを利用しており、GazeboシミュレーションもRoboMakerを使って行っています。当ブログでも、RoboMakerを使ったシミュレーションを以前取り上げています。 tech.…

ラズパイでCAN通信をして、車両の診断データを送受信してみた

TL;DR Raspberry PiでCAN通信を動かして、車両の診断データ(OBD-II)を見てみた話です。 SocketCANのISO-TPの機能が便利だったので、その紹介がメインになります。

M5StackのリセットをUSB経由で行う方法

Aptpod Advent Calendar 2019 21日目担当のハードウェアグループの織江です。 この記事では電子工作を趣味とする界隈でも人気のM5stackの小技を紹介したいと思います。

AM5728 上のIVAを使ってH.264エンコードしてみた

aptpodでは、複数のCANバスのデータを時刻同期して取得できるSynchronized CAN Transceiverに続き、このデバイスと時刻同期し、かつ複数のカメラ映像をフレーム単位で同期させて録画できるカメラデバイスの開発を行なっています。 このデバイスには、TI社製…

IoTデバイスのスループットがサクッと上がるかも

「データが上がって来るの遅いけど、電波悪いからしょうがないな〜」なんてアッサリ諦めてないでしょうか? そんな方に「BBRを有効にすればスループットが上がるかも!」という話を、aptpod Advent Calendar 2019の9日目ではお送りします。担当のサーバーサ…