チャレンジ問題
チトセロボティクスにご興味を持っていただいてありがとうございます。
ここでは、チトセロボティクスの業務の雰囲気を感じていただくためのチャレンジ問題を掲載しています。
以下の5つの問題のうちから、ひとつを選択して解答を作成し、ページ下部のフォームからお送りください。
お送りいただいた解答を拝見する際の観点は、すべての問題に共通して、以下の2点です。
- 開発要件への適応
- 開発スキルの確認
解答にあたってのご不明点はなんなりと、ご連絡ください。
問題リスト
三角形判定ロジック(全エンジニア共通)
問題
平面上の三角形を考えます。三角形は3つの頂点を持ちます。
ただし平面上のどんな3点を選んでも三角形を構成できるわけではなく、3点の配置は特定の条件を満たす必要があります。
例えば、3点が同一の直線上に乗っている場合は、三角形になりません。
そこで、平面上の3点の座標を入力として与えると、三角形を形作るかどうかを判定してbool値を出力する関数を作成してください。
加えて、具体的な入出力ペアを与えてその関数の実装が正しいことを検証するためのテストコードを作成してください。
なお、浮動小数点の扱いについては、必要に応じて適切に仕様を定めてください。
条件等
- 使用言語:C++
- 動作環境:OS指定なし
- 提出方法:必要なファイルをzipで圧縮してお送りください。
解答イメージ
#include <iostream>
bool is_triangle(double x0, double y0, double x1, double y1, double x2, double y2){
….
}
int main(void){
std::cout << is_triangle(1.0, 1.0, 2.0, 1.0, 2.0, 2.0) == true << std::endl;
std::cout << is_triangle(1.0, 0.0, 2.0, 0.0, 2.0, 0.0) == false << std::endl;
return 0;
}
画像からマーカ認識(アプリケーションエンジニア向け)
問題
OpenCVのcontribute module である aruco module を使用して、
二次元コードを生成するプログラムと、その二次元コードをwebカメラ等で読み取って二次元コードの番号を識別するプログラムを開発してください。
二次元コードにはデフォルトで番号が与えられています。その番号を、コマンドプロンプトの画面に表示し続けてください。
条件等
- 使用言語:OpenCV / C++
- 動作環境:OS指定なし
- 提出方法:必要なファイルをzipで圧縮してお送りください。github等のリンクでも結構です。
IPアドレスのバリデーション(サーバサイドエンジニア向け)
問題
IPアドレスについて、バリデーションおよびグローバルIPアドレス or プライベートIPアドレスかを判別して、結果を表示するRubyスクリプトプログラムを開発してください。
加えて、具体的な入出力ペアを与えてその関数の実装が正しいことを検証するためのテストコードを作成してください。
条件等
- 使用言語:Ruby(こちらでの確認は、Ruby 2.6.3を使用する予定です)
- 動作環境:OS指定なし
- 提出方法:必要なファイルをzipで圧縮してお送りください。github等のリンクでも結構です。
動作イメージ
プログラムを起動(コンソールから実行)すると、テスト対象のIPアドレスのリストファイル(ご自身でOK、NGの混じったリスト(4パターンほど)をお作りください)を読み込んで、IPアドレスとして正しいかどうか、グローバルIPアドレスか、プライベートIPアドレスかを判別して結果を表示する。
解答イメージ
— 出力例 —
Input IP : xxx.xxx.xxx.xxx
Validate : OK(バリデート項目ごとのエラーを表示)
Type : Global / Private
————
信号機のラダー回路(エレキエンジニア向け)
問題
下図のように、スタートボタンX0を押すと、青→黄→赤の順に点灯を何度も繰り返す信号機のラダー図を作成してください。
条件等
- PLCメーカ/エディタ:種類は問いません。
- 提出方法:画像でお送りください。手書きでもOKです。
吸着エンドエフェクタ設計(メカエンジニア向け)
問題
ロボットに取り付けて、対象物(ワーク)を吸着把持するためのロボットハンド(エンドエフェクタ)を設計してください。
エアチューブの配管については考慮しなくて構いません。図面と部品リストを作成してください。その他については、必要に応じて適切に仕様を定めてください。
条件等
- 取り付けるロボット:三菱電機社製 MELFA RV-4FRL-D
- 取り付けるフランジ径:P.C.D. 31.5mm(4穴)(上図参照)
- 持ち上げるワーク(対象物):重量0.2kg、1辺が100mmの立方体
- 持ち上げる姿勢:垂直に上下昇降するのみ
- 負圧エアチューブ配管径:φ6
- 提供される負圧圧力:-90kPa
- 提出方法:CADデータ(STL, STEP等をzipで圧縮もしくはFusion 360の共有リンク)でお送りください。画像または手書きでもOKです。
解答イメージ
解答にあたっては、以下の作業が必要になるかと思います。
- ロボットフランジに取り付ける吸着パッドマウンタの設計
- ワークを持ち上げられる吸着パッドの選定
参考までに、チトセロボティクスでは、MISUMI( https://jp.misumi-ec.com/ )をよく利用しています。