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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
600
分野に潜むツールの紹介
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
83
Elixir/NervesでどこまでできるのIoT?
pojiro
1
420
『推し』で仕事をする
pojiro
1
160
Other Decks in Technology
See All in Technology
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
350
千葉での単身赴任からAWSをやり続け、千葉に戻ってきた話
yama3133
1
120
5分でわかるDuckDB Quack
chanyou0311
4
260
Why is RC4 still being used?
tamaiyutaro
0
110
起点・思考・出力で分解する 〜PM業務の自動化設計〜
kazu_kichi_67
2
1.1k
CVE-2026-20833_脆弱性対応とAES 化について
jukishiya
0
130
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
1
370
[AWS Summit Japan 2026]迷っているあなたへ_小さな一歩が、やがて自分を助けてくれる
sh_fk2
2
430
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
220
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
150
製造現場での生成AIの活用、およびエージェントAIの実装のあり方、AVEVAの取り組み
iotcomjpadmin
0
180
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
0
110
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
950
Code Review Best Practice
trishagee
74
20k
New Earth Scene 8
popppiees
3
2.4k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
420
Tell your own story through comics
letsgokoyo
1
980
Git: the NoSQL Database
bkeepers
PRO
432
67k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
280
How to Talk to Developers About Accessibility
jct
2
260
A better future with KSS
kneath
240
18k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
220
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
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でつないで遠隔作業・遠隔支援、出張削減