Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Raspberry Pi Mouse を Nerves で動かしてみた
Search
pojiro
December 10, 2023
Technology
1.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Raspberry Pi Mouse を Nerves で動かしてみた
pojiro
December 10, 2023
More Decks by pojiro
See All by pojiro
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
590
分野に潜むツールの紹介
pojiro
1
700
Raspberry Pi で試す 組み込みLinux⼊⾨ Nerves の場合
pojiro
2
490
おいでよ! Nerves JP!
pojiro
1
320
描画ライブラリScenic紹介
pojiro
0
180
Circuits.GPIOはいかにテストされているか
pojiro
0
140
Nerves tips, /bin/sh & nerves_heart
pojiro
0
82
Elixir/NervesでどこまでできるのIoT?
pojiro
1
420
『推し』で仕事をする
pojiro
1
160
Other Decks in Technology
See All in Technology
マルチアカウント環境での コーディングエージェントを使った障害調査が大変なので AIエージェントにReadOnly権限を付与してみた / ReadOnly AI Agents for Multi-Account AWS Incident Response
yamaguchitk333
2
110
GitHub Copilot app最速の発信の裏側
tomokusaba
1
190
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
160
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
270
サイバーエージェントにおけるAI推進戦略と変革への取り組み
shotatsuge
0
130
Claude Codeをどのように キャッチアップしているか
oikon48
13
8.6k
人材育成分科会.pdf
_awache
4
300
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
220
LayerXにおけるセキュリティ管理の現在地と次の一手
tosho
0
240
自分が詳しくない領域でAIを使う #プロヒス2026
konifar
13
5.1k
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.5k
小さく始める AI 活用推進 ― 日経電子版 Web チームの事例/nikkei-tech-talk47
nikkei_engineer_recruiting
0
300
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Unsuck your backbone
ammeep
672
58k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
160
Building AI with AI
inesmontani
PRO
1
1.1k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
340
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
200
The Curse of the Amulet
leimatthew05
1
13k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Deep Space Network (abreviated)
tonyrice
0
210
A Soul's Torment
seathinner
6
3k
Why Our Code Smells
bkeepers
PRO
340
58k
Transcript
Raspberry Pi Mouse を Nerves で動かしてみた 第16回FA設備技術勉強会
自己紹介 • 衣川 亮太 (きぬかわ りょうた) • 愛知県岡崎市の個人事業エンジニア • 屋号:Tombo
Works • twitter: @pojiro3 • I love Elixir & Nerves ◦ 日本のNervesコミュニティであるNerves JPに所属しています
Raspberry Pi Mouse とは • 株式会社アールティ 社製の ROS 2 対応
左右独立二輪方式の小型移動プラットフォームロボット • 用途:> 教育研究用ロボットにおすすめ • ROS 2 で動作させるので、 OSは Ubuntu をインストールし開発を行う 今回の発表は、 これをUbuntu ではなく、 Nerves を用いて動かしてみた💡という内容 https://rt-net.jp/products/raspberrypimousev3/
Nerves とは関数型プログラミング言語Elixir で組み込みLinux開発ができる OSS • Elixir, 以下の特徴を持つ動的型付けの関数型言語 ◦ Erlang VM上で動作する、高可用・耐障害性のある、並行処理の書きやすい言語
◦ 主にサーバーサイドで使われる ▪ Webフレームワーク:Phoenix • Nerves ◦ 組み込みLinux開発をElixirで可能にするOSS ◦ 機能の開発をElixirの世界に閉じて行うことができる ▪ nginx, apache, /etc/の設定いじり, python でプログラム開発 バラバラ開発不要 ◦ Linuxをカスタムしない限り、組み込みLinuxであることを意識せずに 開発を進めることができるのが強み!! ▪ Linuxをカスタマイズしたい場合はBuildrootでカスタムすることで可能
イメージ ラズパイ4 Ubuntu C++, Python ROS 2 クライアント ラズパイ4 Nerves
Elixir ROS 2 クライアント 通常 今回
Elixir ROS 2 Client Rclex • 各ROS 2 クライアントは C
言語で 実装された rcl ライブラリ を利用する • Rclex は rcl ライブラリを呼び出す Elixir 製の API ※私もコントリビュートしています • ROS 2 の通信には DDS(Data Distribution Service)が使われている ◦ DDS 実装の一つ > RTI Connext DDSは、自動車分 野や、大手FA分野、米国国防省の 潜水艦など大規模ネットワークのリ アルタイム制御を可能とする信頼性 の高いソリューションです。 日新システムズのサイトより抜粋 Rclex (Elixir API) https://docs.ros.org/en/humble/Concepts/Advanced/About-Internal-Interfaces.html
デモ動画
None
HW: アールティ製, Raspberry Pi Mouse V3 SW: Linux, Nerves (nerves_system_rpi4_mouse),
Erlang VM ノートPC OS: Linux Mint, Ubuntu 派生ディストリ Logicool 製 Gamepad F310 アールティ 製 Python ROS 2 ノード joystick_controller USB Webブラウザ Elixir Webサーバ Phoenix Phoenix LiveView 時雨堂 製 Momo Webサーバ & カメラ /dev/input/js0 /dev/video0 Logicool 製 Camera C270 Elixir デバイス制御 raspimouse2_ex Elixir ROS 2 ノード Rclex で作成 /dev/rt* iframe HTTP WebSocket DDS(UDP) 構成図 点線を挟んで 上段:ラズパイマウス 下段:ノートPCとゲームパッド
なぜ Nerves ? • メリットは? ◦ Nerves はシャットダウン処理なしに電源を落とせる(ファイルシステムが ROだから) ▪
Ubuntu はシャットダウン処理をしてからでないと電源を落とせない ※シャットダウン処理前に電源を切るとファイルが破損する可能性があるから ◦ Nerves は FW サイズが小さいので SSH 転送で FW の書き換えをできる ◦ 並行処理を書きやすい Elixir で ROS 2 開発をできる • 用途は? ◦ ラズパイマウス以外にもこの方法は適用できるので、 ロボコンのロボットは良い適用対象かも💡(?) ラズパイ4 Ubuntu C++, Python ROS 2 クライアント ラズパイ4 Nerves Elixir ROS 2 クライアント
まとめ?(やってみたの発表だけど 何か気付きを届けられていたら嬉しい) • アールティ 社製 のラズパイマウスが ROS 2 の入門に使えるかも •
組み込み Linux の Nerves が面白い • ROS 2 の通信は UDP ベースの DDS が使われている • Elixir 製の ROS 2 クライアントに Rclex がある • Linux で Web サーバを立てると内部状態をブラウザで確認できる • (対応なしの)Linux を単純に電源落とすとファイルが壊れてよくない • Web カメラ用のソフトに 時雨堂の Momo という OSS がある
宣伝1 • 最近 Nerves 本が出ました 『ElixirではじめるIoT開発入門 Nervesプラットフォームで組み込み開発にトライ!』 ◦ 著者:三宅 泰宏さん
(NervesJP メンバー🎉) ◦ 出版:インプレス NextPublishing • Open Source Conference 2024 Osaka に NervesJP 出ます、ので興味があればぜひご参加ください ◦ 2024年1月27日 10:00~18:00(展示は16:00まで)@大阪産業創造館 3F,4F(OSC受付:3F) ◦ ラズパイマウスなど実機の展示します ◦ 前提知識不要のセミナー(45分)もやります! タイトル「関数型言語Elixirで組み込みLinux開発ができるNervesの紹介」 https://nextpublishing.jp/book/17353.html https://event.ospn.jp/osc2024-osaka/
宣伝2 • 現場で使える VPN Box, Pocket LANcher 👉 の 👇LTE対応版を試作してます
※12/10 AM, 必要機能の確認できました ハード:Seeed製 EdgeBox RPI 200 ※DIN レールに取付可能
紹介 • Nerves いいぞ💡 ◦ Nerves JP, Nerves の日本コミュニティ ◦
なぜ僕はNervesに期待するのか • Rclex 0.10.0 開発中🦾 ◦ https://github.com/rclex/rclex/tree/0.10.0-dev • Tombo Works も要チェック👀 ◦ 出張の多い現場エンジニアをサポートするデバイス ◦ OSSを全面利用して商用プロダクトを作る ◦ PocketLANcher, LANでつないで遠隔作業・遠隔支援、出張削減