Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
690
分野に潜むツールの紹介
pojiro
1
720
Raspberry Pi で試す 組み込みLinux⼊⾨ Nerves の場合
pojiro
2
510
おいでよ! Nerves JP!
pojiro
1
350
描画ライブラリScenic紹介
pojiro
0
190
Circuits.GPIOはいかにテストされているか
pojiro
0
150
Nerves tips, /bin/sh & nerves_heart
pojiro
0
90
Elixir/NervesでどこまでできるのIoT?
pojiro
1
440
『推し』で仕事をする
pojiro
1
160
Other Decks in Technology
See All in Technology
KanaAI
shreyas1009
0
130
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
0
160
プラットフォームを「作る」、 チームに「入り込む」
sansantech
PRO
0
400
IR Today: Theory, Practice, and Agents
dtunkelang
0
270
CI/CDではもう遅い - 人とAIが迂回しないDevSecOps Verify基盤の再設計 -
kintotechdev
1
450
形式手法を使って仕様をコーディングしよう
mikanichinose
0
140
生成AIを使って「人が」考える技術 ― AI時代の人機共想と実践ノウハウ|UNITT AC2026
ishiirikie
0
450
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
340
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
100
ボードゲームの遊び相手をFoundation Modelsで作る / iOSDC Japan 2026
genda
0
240
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
320
可視化から始めたAI駆動開発_ochi_ver1.01 / AI-Driven Development Starting with Visualization_ver1.01
yayoi_dd
0
110
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
480
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
Google's AI Overviews - The New Search
badams
0
1.6k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
430
Facilitating Awesome Meetings
lara
57
7.2k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
From π to Pie charts
rasagy
1
380
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
310
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
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でつないで遠隔作業・遠隔支援、出張削減