組み込み開発

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日目ではお送りします。担当のサーバーサ…

CAN FDことはじめ

aptpod Advent Calendar 2019 6日目担当のエンベデッドチーム 久保田です。 仕事で関わることの多い自動車関連の技術について、少しお話させていただこうと思います。 intdash Automotive Proは、自動車産業における車両CAN(Controller Area Network)デー…

エッジデバイスとクラウドのエンドポイントの出力結果を合わせるのに苦労した話

本ブログへいらっしゃったみなさま、初めまして。aptpod Advent Calendar 2019 5日目担当のsetoです。入社4ヶ月(2019/12/05現在)で、機械学習系の案件や自社プロダクト付加価値向上のための技術調査に従事してます。社内メンバーの技術領域が多彩で刺激を受…