Tag Archives for ケニア
オンライン講義での試行錯誤
先日始まったケニアの大学PAUSTIにおけるオンライン講義ですが、色々と試行錯誤が続いています。 第2週では前週の3D CADによるモデリングに続いて、PCB CADを用いたプリント基板の設計についての講義を実施しました。
オンライン講義はじまる
日本の多くの大学では新型コロナウイルス感染症(COVID-19)の影響でオンライン講義が実施されていますが、アフリカでも同様の状況が生じています。 筆者は普段はケニアの国立ジョモ・ケニヤッタ農工大学(JKUAT)に勤務していますが、COVID-19の影響で日本に一時帰国しています。JKUATではメカトロニクス工学専攻の修士課程を対象としたCAD/CAMの講義を担当しており、PAUSTIの大学院でも製品設計に関する講義を担当しています。PAUSTIとは正式名称をPan African University Institute for Basic Sciences, Technology and Innovationといって、アフリカ連合が設立した大学院大学PAUの一端を担っています。 このPAUSTIの講義が2020年の3月から授業が始まる予定だったのですが、同時期にケニア国内の大学を含む全ての学校がCOVID-19のために閉鎖となってしまいました。現時点では9月1日の大学再開を目指して準備が進んでいるそうですが、このたび遠隔にて授業を行うことになりました。
ロケットプロジェクト始動
先週のセミナーで希望者を召集し、本日ついにロケットプロジェクトのキックオフミーティングを開催した。 参加者は汎アフリカ科学技術大学(PAUSTI)の第6期生で、総勢11名。うち二名は博士課程の学生だった。 プロジェクト名はNakujaプロジェクトとすることに決定。その意味はまたの機会に。 これから挑戦の日々が続く。
学部生研修5日目
ロボットアームのプログラミング(続き) 今日も朝早くから来て、前日からの課題であるロボットアームのプログラミングに取り組んでいるものがみられた。 Simulinkを用いたArduinoのプログラミング このセッションでは、前日時間が足りず取り扱えなかった、SimulinkによるArduinoのプログラミングについて学習した。SimulinkはArduino Support Packageを追加することで、プログラミング(Arduino ROTH: Run on the hardware)およびシミュレーション(External mode simulation)が実行可能である。制御器設計において重宝する機能であり、是非説明しておきたかったため、最終日のタイミングで解説した。 実習で用いた回路はポテンショメータの取得電圧を指令値とするDCモータのフィードバック制御回路である。2つのDCモータの回転軸を連結し、片方はタコメータとして使うことで、タコメータの両端の端子電圧を回転速度に対応付け、フィードバック制御を行う。以下にSimulink上のブロック線図を示す。 最終日は十分に実習時間がとれなかったため、どのグループもモータは回せたものの、タコメータからの電圧が取得できずにフィードバック制御を行うことができなかったグループもあった。しかしながら、Simulink上のシミュレーションを実世界のアプリケーションで動かすためのワークフローは学んでもらえたことと思う。 ロボットアーム選手権 この研修の総まとめとして、3チームの中の最優秀チームを決定する選手権を行った。以下のルールによってポイントを加点し、最も得点の多いチームが優勝である。 得点を与えるルール(6点満点) 1. 初期状態から旋回する(1点) 2. アームを曲げて、対象物体まで接近する(1点) 3. 対称物体を把持する(1点) 4. アームをもとに戻す(1点) 5. 逆方向に旋回する(1点) 6. 対象物体を解放し、設置する(1点) 試験に先駆けて、各チームは制御の細かい修正に取り組んだ。ロボットアームのプログラムはチームによって様々であった。以下に一例を示す。 また、4人で同時にロボットアームの制御を行うチームもいた。見た目は少し笑ってしまうような光景だったが、実は実際的な利点もあると思った。他のチームはシリアル通信で制御コマンドを送ったときに、Arduinoの受信側に遅延時間を入れていたので、複数の軸を応答させようとすると、どうしても遅延が発生してしまう。これに対して多数端末による制御を用いれば、遅延時間を考えずに複数軸を動かせるというメリットがある。また、制御するホストコンピュータを1台にしてしまうと、その端末が駆動するArduinoに信号雑音が乗ったときに、全てのサーボが影響を受けてしまう問題もある。彼らは複数の端末から操作することでノイズによる影響を分散させ、せっかく掴んだ物体を離してしまうとか、意図しない急旋回をもたらしてしまう可能性を排除するための、冗長化を構成していたともいえるだろう。 選手権の結果を以下に示す。 どのチームも全てのタスクを完了したので総得点は並んだのだが、チームによってはタスクを最初から最後まで連続してこなすのではなく、断片的にタスクを遂行したものもあった。連続してタスクをこなした場合、追加点を与えることになり、最終的に全てのタスクを一気通貫して完遂したチームが優勝となった。 以下の優勝チームの試行動画をみると、タスクを達成したときの学生の歓喜、熱気が伝わってくることと思う(リンク: https://youtu.be/vUtjoPJynyE )
学部生研修4日目
ロボットアームの組立とプログラミング このセッションでは前日に引き続き、ロボットアームの組立を行った。前日にグルーガンで接着した箇所を剥がしたいのだが、半田ごては使えないか、という質問を受け、実際に試したところ、アクリル板にダメージを与えずに綺麗にはがすことができた。アクリル板とグルーガンは、プロトタイピングにおいて非常に良い組合せであることを知れたのは、筆者にとっても新たな学びであった。というのも、普段筆者はアクリル板の接着には専用の接着剤を用いているため、グルーガンを試した経験はなかったのである。アクリル接着材は剥がす際にアクリル板にダメージを与えることもあるので、熱することで流動性を再度高められるグルーガンには利点がある。そもそもケニアではアクリル接着剤が手に入らず、グルーガンは容易に調達できるという背景があったのだが、これも現地の状況に応じて工夫することで見つかった新たな発見であると言ってよいだろう。 組立が終わった後は、実際にプログラミングを開始した。なかにはC++のクラスをつかってコーディングを試みるものもおり(電気電子工学科の学生)、結構プログラミングが得意な学生もいるのだな、と感じた。 MATLAB実習 本セッションでは、数値計算や工学一般において様々な活用が可能なプログラミング環境であるMATLABについての初歩的な使い方の解説を行った。 まず、講習に先駆けて、学生にはMATLABの30日評価版のダウンロードとインストールを要請していた。これについて補足すると、MATLABのライセンスはJKUATは保有していないようである。したがって、この研修を受けた後に学生がMATLABを使えなくなるとあまり意味が無いため、以下に示すいくつかの代替オプションを提示した。 代替ソフトウェア 利点 欠点 GNU Octave MATLABとコマンド互換 (ほぼ同じコマンドが使える) Simulinkに相当する機能がない Scilab & Xcos Simulinkと同等のXcosというソフトウェアが付属する。XcosはさらにArduinoとの連携も可能である。 MATLABとコマンド名が異なるため、コマンドを覚え直さないといけない Python ipython, numpy, matplotlib等を組み合わせることで、Matlab同様の数値計算・グラフ描画が可能。また、python-controlパッケージを入れることで制御シミュレーションも可能。拡張性、汎用性は最も高い。 Simulinkに相当する機能がない OpenModelica Simulinkのようなモデリングが可能 筆者が使ったことがないため、詳しく知らない 講習ではMATLABがデータを扱う際の基本的な構造であるベクトルと行列を説明し、転置やインデックスでのデータ要素へのアクセス方法を説明した。そして、線形連立方程式の解を、係数行列をつくって行列操作で求める方法を説明した。この際に、その都度逆行列を求めるのではなく、ガウスの消去法を使うことで高速に解を計算できることを説明した。 また、伝達関数の定義方法と、ステップ応答やインパルス応答、周波数応答(ボード線図)などの基本的な制御シミュレーションの方法についてもここで解説した。 Simulink実習 Simulinkの使い方は、今回とりわけ教えたかった項目の一つである。制御に興味を持ったものの、どうやってブロック線図を計算機シミューレーションに落とすのか、そしてその先にマイコンにどのように実装すれば良いのか、というのは初心者が最初に悩む点である。たとえプログラミング能力が卓越していても、実際にブロック線図とマイコン用のCの実装を行ったり来たりするのは面倒であるのだが、Simulinkを使えば、シミュレーションから実機での実行までを、単一のブロック線図のみでシームレスに扱うことができるのである。このセッションでは、Simulinkの簡単な使い方と、PID制御のシミュレーションまでを取り扱うこととし、実習を行った。 ロボットアームのプログラミング(続き) MATLAB/Simulinkの講習が終わった後、この日も結局18時過ぎまで、参加者はロボットアームのプログラミングに励むことになった。