サーボモーター(?)、自作します

 夢はケモミミ美少女ロボを愛でること。

 どうも皆さまはじめまして、20のSugiです。
 突然ですが、サーボモーターは「角度やら力やらをフィードバックしてモーターの出力を変化させることができる、ロボの世界になくてはならないものである」ことはここにいらっしゃいます皆さまにとっては周知の事実かと思います。
 では、「既製品のサーボモーターでは大きさがデカすぎて都合が悪い! ワイが作ろうとしているロボに最適な形をしたサーボはこの世の中には存在しないのか!」と悩んだとき、皆さまならどうなさるでしょうか? そう、サーボを自作しますよね?
 ということで、今回はサーボの仕組みを理解つつ、さらに将来小型のサーボを作れるようにと、サーボの自作を行いました。
 仕組みは以下の図の通りです。

 今回は作りやすさ最優先でポテンショメーター(半固定抵抗)を用いたサーボです。
 仕組みはとっても簡単で、
・ まずポテンショメーターb(入力値の設定用。本来ならPWM入力とかが行われる)の抵抗値をマイコン(今回はその辺に転がっていたNucleo-F446REを使用)が読み取り、
・ 続いてポテンショメーターa(出力値を読み取る用。角度と抵抗値が線形に比例してくれている。うれしい)の抵抗値をマイコンが読み取り、
・ その抵抗値の差によって目標角度と現在角度の差を計測し、
・ それを用いてモーターをPID制御
・ 最終的に出力の角度に反映する
 というものです。
 それをそのまま形にしたのが以下の写真。

 ……かなりでかいですが、模型なのでいいでしょう。
 動きは良好。

 青色の線は計測している値(出力値=ポテンショメーターaの値)、オレンジの線は入力している値(入力値=ポテンショメーターbの値)を示しています。
 使っているギアボックスの精度(TAMIYAの工作用)やポテンショメーターそれ自体の精度(有効数字2桁くらい?)を考えたら、この追従性はなかなかなものかと思います。さすがPID制御。
 あとはこれを小型化できれば、自分好みのサーボが作れますね! 死にそうな未来しか見えませんが!

 ということで、サーボモーター自作の基礎を実践してみました。マイコンボード初学者の方などは、面白半分で作ってみてもいいかもしれません。
 ではでは~

MATLABで自作ロボットのモデル予測制御 & Cコード生成/ビルドチュートリアル

皆様こんにちは.18のhiraです.

近年,自動運転やロケットやドローン,戦闘機でも「モデル予測制御(MPC)」なる制御方法が注目されているようです.
なんでもこのMPCを使うと運動モデルさえあれば誰でも簡単に(注 “誰でも”等の範囲は要検討)複雑なロボットを好きな軌道で動かすことができるようです!

この魅力的なMPCは,なんとMATLABの「Model Predictive Control Toolbox」を使うことでほぼGUI上で手軽に作ることができます.しかも作ったコードはC/C++に変換でき,それをビルドすればRaspberry Piといったマイコン上で動かすこともできます.

今回は簡単なバネ台車モデルを使い,MATLAB上でのMPCモデル及び運動軌道の作成,さらにC/C++のコードの生成とビルド方法を紹介します.

ヘンタイ技術のカタマリSpaceXの着陸ロケットもMPCで動くとか.イーロン・マスクも目じゃねえぜ!

“MATLABで自作ロボットのモデル予測制御 & Cコード生成/ビルドチュートリアル” の続きを読む

お風呂のスイッチ勝手に消してくれるやつ

こんにちは。21-kumaです。

今回が初投稿なので読みにくい文章になるかもしれませんがご了承ください。

一人暮らしをはじめて数か月、お風呂のスイッチを切り忘れた回数が二けたに迫ろうかというこの頃。同じ過ちを繰り返す度、どぶろっくの「やらかしちまった」が脳をよぎります。エンタの神様】どぶろっく「やらかしちまった!」

ガスがもったいない。持続可能な社会を目指すべき現代でこのような失敗をこれ以上繰り返すわけにはいきません。ロ技研にはいり、マイコンの勉強をしてまずはこの問題を解決しようと決心したのでした。 “お風呂のスイッチ勝手に消してくれるやつ” の続きを読む

[HCD2021] 世界最大のヒューマノイドを見に行こう!

みなさん,またお会いしましたね,20-Ao(@musclemusale)です。
え?あんたなんて知らない?心外ですね…私はいつも皆さんのことを見ているのに…

と,冗談は措いておいてホームカミングデイに合わせたオンラインの催しとしてのブログです。
今回は技術的なお話はとくにしない軽い記事にするつもりです。決して私の技術力がないからとかそういうことはありません。決して。

さて本題ですが,みなさん世界最大の可動型ヒューマノイドって何か知っていますか?
実は世界最大のヒューマノイド,日本にあるんです。しかも今なら間近で見ることができるんです!見てみたくないですか!?
ということで今回は「動く実物大ガンダム」のお話です!
(内容薄めです)

“[HCD2021] 世界最大のヒューマノイドを見に行こう!” の続きを読む

[HCD2021] ロボット技術研究会 活動報告

こんにちは。本日はホームカミングデイ2021です!といってもコロナのせいでオンラインでの参加となります。またこの一年間新歓や工大祭といった催しが制限されており、実際に見て・触って・動かしてもらう展示会ができませんでした。

そこで本記事ではこの一年の振り返りもかねてロボット技術研究会の活動報告&作品紹介を行いたいと思います。

まさかの世界一斉オンライン。ロ技研もオンライン対応。

“[HCD2021] ロボット技術研究会 活動報告” の続きを読む

Vivado & Vitis でC言語高位合成 Hello World チュートリアル

皆様こんにちは。18のhiraです。ソナー作ったら面白そうとか言っている人ですが、そんなソナーに必要なのは「正確な時刻で処理をする」ことです。ただ、一般のCPUで普通のプログラムを動かすと、時間指定したつもりでも処理に数msのズレが生じてしまうこともあります。正確に数百kHzでサンプリングするようなソナーには不向きです。

それを解決する(と勝手に思っている)のがFPGAです。FPGAは中の回路の配線を、使用者が好き勝手につなぎ直すようなことができる特殊なデバイスです。回路を最適化することで使用者が指定した通りに動作でき、さらに大規模並列回路にすることもできます。大量・高速のデータ処理を必要とするAI学習やデータセンターにも採用されています。
しかしそれにはHDLという、レジスタ叩きやビット操作を書き連ねる、長ったらしいプログラムで書かねばならないことが大きな壁でした。

今回使用するFPGAボード「Arty Z7」

そこでFPGAをもっと活かすため、C言語プログラムをHDLに変換して開発を加速させる「高位合成」という技術が近年注目されています。今回はそんなC言語プログラムの高位合成を「Vivado」、「Vitis」という専用ツールを使って初歩の初歩を体験していきます。

“Vivado & Vitis でC言語高位合成 Hello World チュートリアル” の続きを読む

Fusion 360 でつくる はすば/やまば 歯車

ごきげんよう。
20のAo(@musclemusale)でございます。
恐らく20では初めての投稿になるかと。
本日はFusion 360で”はすば歯車”と”やまば歯車”を作成したのでその過程を共有したいと思います。
Google検索をかけても はすば/やまば歯車をFusion 360で製作しているサイトが見当たらなかった(2021/3 現在)ので参考になれば幸いです。

やまだくん
やまば歯車のやまだたろうです(なんか汚い)

“Fusion 360 でつくる はすば/やまば 歯車” の続きを読む

RGB-Depthセンサを自作しよう【4-構造化光法編】

15 の nomo ( @nomotech )です。

この記事はrogy Advent Calender 2020 23日目の記事です。

RGB-Depthセンサを自作しよう【3-キャリブレーション編】の続きです。
今回はついに構造化光法についてです。
絶対位相の計算とカラーの計算までを解説します。


“RGB-Depthセンサを自作しよう【4-構造化光法編】” の続きを読む

RGB-Depthセンサを自作しよう【3-キャリブレーション編】

15 の nomo ( @nomotech )です。

この記事はrogy Advent Calender 2020 22日目の記事です。

RGB-Depthセンサを自作しよう【2-同期撮像編】の続きです。
今回はプロジェクタカメラのキャリブレーションについてです。

ステレオキャリブレーション

まずはステレオカメラシステムの場合のキャリブレーションについて説明します。

ステレオによる深度推定はそれぞれのカメラの画素で同じ3次元点を参照している対応点を見つけて、三角測量によって深度を測定します。
カメラのステレオの場合、特徴点などを使って対応点を見つけます。

三角測量の時に必要なのはそれぞれのカメラから対象までの方向ベクトルです。

“RGB-Depthセンサを自作しよう【3-キャリブレーション編】” の続きを読む