tshell_blog

ソフトウェアと車輪がついた乗り物のはなし

ESP32用のArdupilotを書き込む

tshell.hatenablog.com 前回はESP32用のArdupilotをビルドしてみました。ビルドしたら実際にESP32へ書き込んでみましょう。 ESP32への書き込みはArdupilotだからといって特別な方法が必要なわけではなく,ArduinoIDEから書き込むときと同様にFTDIのUSBシリア…

ESP32用のArdupilotをビルドする

Arudupilotを見ていたらどうやらESP32上でも動かせそうです。 ESP32-CAMなんかをフライトコントローラにしたら,100g未満でウェイポイント飛行しながら空撮できる固定翼ドローンができるんじゃないでしょうか? まずはArdupilotをESP32向けにビルドしてみま…

ROS1 Noetic とROS2 FoxyでUUV Simulatorを使う

UUV SimulatorはUUV(Unmanned Underwater Vehicle)のためのGazebo パッケージです。GitHubのmasterブランチは2020年に更新が止まっており,noeticに対応していませんが,このissueによるとnoeticに対応したソースを作ってくれている人がいます。 また,UUV S…

ESP32CAMをMicro XRCE-DDSでROS2ノード化する

https://micro-xrce-dds.docs.eprosima.com/en/latest/ Micro XRCE-DDSはマイコンでも動作する軽量なクライアントライブラリで利用できるDDSとのインターフェースです。マイコンはMicro XRCE-DDS Agentと通信し,Micro XRCE-DDS Agentはマイコンとのやりとり…

Raspberry Pi 4 + Ubuntu 20.04 + ROS2 foxyでルンバを動かす

ラズパイでルンバを動かす話はググるとたくさん出てきますが,ラズパイ上でROS2ノードをビルドしようとすると途中で止まったりやたらと時間がかかったりとハマりどころが多かったので以下にまとめます。 手順 以下の手順で進めます。 ソースのダウンロード q…

Raspberry Pi 3 + Ubuntu 20.04 + ROS2 foxy向けクロスコンパイル環境をDockerで構築する

tshell.hatenablog.com 前回の記事では動作確認用のROS2ノードをPythonで書いていましたが,実はrt-net / raspimouse2のソースをRaspberry Pi 3でビルドしようとするとraspimouseパッケージのビルドが25%で止まってしまっていたからでした。 別の環境ならう…

Raspberry Pi MouseをUbuntu 20.04 + ROS2 foxyで動かす

年度末になると掃除したり引き継いだりで面白いモノが出てきたりします。今年はその辺の棚からRaspberry Pi Mouseが出てきたのでUbuntu 20.04とROS2 foxyで動かしてみました。 手順 以下のような手順です。 Raspberry PiにUbuntu 20.04 LTSをインストール RO…

Raspberry Pi 4 + Ubuntu 20.04で複数のUARTを有効にする

UART configurationによるとRaspberry Pi 4では6つのUARTが利用できるはずですが,Ubuntu 20.04からは1つのUARTしか見えません。しかもデフォルトではシリアルコンソールに割り当てられているので,これを使って通信するアプリケーション(例えばルンバを動…

Application InspectorをDockerで動かす

米Microsoft、ソースコード解析ツール「Application Inspector」を公開とのニュースを見つけたのでApplication InspectorをDockerで動かしてみました。 Alpineをベースにしましたがmcr.microsoft.com/dotnet/core/sdkをベースにしてもイメージのサイズは同じ…

Neo4JをNode.jsから使う

tshell.hatenablog.com Neo4JをDockerでお手軽に試してみました。 実用的なアプリケーションを作るとなるとPythonやらJavascript(Node.js)などから使えるようにしたいです。 公式ドキュメントのDriver Manualを見ながら,Node.jsでNeo4Jにアクセスしてみます…

Docker for WindowsでNeo4Jを動かす

グラフデータベースNeo4JをDockerで動かしてみました。 SQLなどの一般的にイメージされるデータベースと異なり,グラフ構造のデータを格納することができるデータベースです。ノードとノードのつながりを表現することができるので,要求と仕様を対応させられ…

ROS2 Pub/Subサンプル

ROSやROS2ではPub/Sub方式で他のノードと通信することができます。 PublisherノードとSubscriberノードを作成して,Pub/Sub通信をしてみます。 プロジェクトの作成 ROS2開発環境のDockerコンテナを起動します。 Dockerイメージの作成方法,使用方法は以下の…

Docker環境でROS2プログラム開発

前回作成したROS2開発環境のDockerイメージを使ってROS2プログラムを作っていきます。 tshell.hatenablog.com 以下のような流れです。 パッケージの作成 ソースの記述 CMakeLists.txtの編集 package.xmlの編集 ビルド 動作確認 コンテナの起動 以下のように…

ROS2開発環境をDockerで構築する

ROS2の勉強始めよっかな〜と思い立ったので ROS2ではじめよう 次世代ロボットプログラミングの第2章を参考にROS2環境をDockerで構築してみました。 セットアップ方法を見ていると「ROS1環境があるところにROS2をセットアップすると環境変数とか依存関係で大…

RealTime処理のサンプルプログラム

tshell.hatenablog.com 前回の記事ではDockerコンテナ上でcyclictestを実行しました。 今回は HOWTO build a simple RT applicationを参考にリアルタイムアプリケーションを作成してみます。 Exampleに載っている内容をsample.cとして保存し,以下のコマンド…

Dockerコンテナでのcyclictest実行結果

前回はDockerコンテナでcyclictestを動作させるところまでやってみました。 tshell.hatenablog.com 今回はcyclictestの結果をもう少し詳しく見てみます。 環境 以下の環境で試しました。 Dell XPS13 9360 CPU Intel Core i7-7500U Ubuntu 18.04 Kernel 5.4.1…

Dockerでリアルタイム処理(cyclictest)を実行する

Dockerコンテナでリアルタイムタスクは動かせないの?と思ったので試してみました。 docker docs | Runtime options with Memory, CPUs, and GPUsにはConfigure the realtime schedulerという項目があり,リアルタイム処理を実現できそうな感じがします。 以…

yoctoでNano Pi NEO 2用イメージをビルドする

tshell.hatenablog.com 公式イメージもいいですが,meta-allwinner-hxレイヤーというものがあるのでyoctoでNano Pi NEO 2用イメージをビルドすることができます。 環境 以下の環境を使いました。 ホストPC:ubuntu 18.04 LTS poky warrior 2.7.1 meta-allwin…

Raspberry Piに増設したSDカードの速度を測る 1bitモードと4bitモードの比較

Raspberry Piに増設したSDカードのパフォーマンスをfioで測ってみました。 増設方法は以下で紹介しています。 tshell.hatenablog.com 実は前の記事のようにdtboファイルを作らなくても以下の設定を/boot/config.txtに追記するだけで使えました。 dtoverlay=s…

Fuegoにテストを追加する(スクリプト編)

前回はホストPCにFuegoをインストールし,サンプルを実行しました。 tshell.hatenablog.com 今回はシェルスクリプトとして記述したテストを追加する方法です。 環境 前回と同様以下の環境を使用しました。 ホストPC : ubuntu 18.04 LTS ターゲット : Raspber…

FuegoでRaspberry Piをテストする

Fuegoとは Fuegoとは組み込みLinux用テストフレームワークです。ターゲットにSSH接続してターゲット上でテストを実行し,Jenkinsでテストを管理することができます。 ターゲット上で動作するソフトの単体テストを実行するものではなく,組み込みシステムとし…

Raspbian buster-liteでCM3+のeMMCをROM化

前回はRaspberry Pi Compute Module 3+(CM3+)にSDカードを増設しました。 tshell.hatenablog.com 産業用途で使う場合であってもなくても,予期しない電源断によってファイルシステムが飛んで二度と起動しなくなるというのは避けたいところです。 CM3+はeMMC…

Raspberry Pi にSDカードスロットを増設する

Raspberry Pi Compute Module 3+(CM3+)にSDカードスロットを増設しました。 CM3+の開発ボード,Compute Module IOにはMicroSDカードスロットが実装されていますが,付近にSD CARD ONLY FOR MODULES WITHOUT ON-BOARD FLASHと書いてあり,eMMCが搭載されてい…

Nano Pi NEO 2のセットアップ

Frendly ArmのNano Pi NEO 2 WikiのInstall OSの項を参照 nanopi-neo2_sd_friendlycore-xenial_4.14_arm64_20190430.img.zipをダウンロード Nano Pi NEOでは書き込むイメージが違うので注意 Frendly ArmのNano Pi NEO Wiki Win32DiskImagerで書き込む。 イメ…

PSoC 5LP Prototyping Kit プログラム書き込み手順

PSoC Programmerの使い方 PCとの接続 基盤の左側はUSB端子になっているので,PCのUSBポートに差し込む。 以下のようなイメージになる。 PSoC Programmerの起動 以下の赤丸のアイコンをクリックし,書き込みたいHexファイルをロードする。 PSoC Creatorでのビ…

PSoC Creatorの使い方

PSoC 5LP Prototyping Kitの開発環境を構築したときに入ったPSoC Creatorの使い方。 とりあえずサンプルを開いてビルドするところまで tshell.hatenablog.com 新規プロジェクトの作成 Create Projectアイコンをクリックする。 Target kitを選択する。CY8CKIT…

PSoC 5LP Prototyping Kit 開発環境の構築

公式サイトから以下のインストーラをダウンロードする。Cypressのユーザー登録を行わないとダウンロードできない(名前と会社名,メールアドレスの登録でOK) インストーラを実行する。 Nextをクリックする。 Installation Type からTypicalを選択してNextを…

PSoC 5LP Prototyping KitでFreeRTOSを使う

PSoC 5LP評価キットでFreeRTOSを動かしたときのメモ PSoC 5LP Prototyping Kit公式ページ 必要なもの Windows10 Teratermなどのターミナルエミュレータ PSoC 5LP Prototyping Kit開発環境 ソースのダウンロード FreeRTOSのダウンロードページからダウンロー…