ロボット開発インターンシップ紹介

| 2 min read
Author: kazuki-ogawa kazuki-ogawaの画像

社内のとある技術相談会で、所属しているグループのインターンシップを紹介したところ、内容が面白いので記事を書いてみないかということで書いてみました。

Contents

はじめに

#

エンジニアリングソリューション事業部には八王子を拠点としたロボット開発グループがあります。
新卒向けにロボット開発を体験してみようという名目でインターンシップを開催しています。
その内容について紹介したいと思います。

Information

ロボット開発者を募集しております。採用情報

6軸ロボットの制御ソフトウェア開発を体験しよう

#

ロボット工学の講義とロボットアームを制御するソフトウェアの開発がインターンシップの内容になります。

コロナが流行る前は豆蔵の新宿本社にて開催されていましたが、コロナ禍の現在はリモートによる開催となっています。

リモート環境を活かし、AWSやGazeboシミュレータなどを取り入れて今風な開発ができるコンテンツに成長しています。

システム構成

#

システム構成は以下になります。
システム構成

  • 受講者はWebブラウザからAmazon EC2のサービスを利用してUbuntuの仮想デスクトップへログインします。
  • Ubuntu上にはあらかじめ、Gazeboシミュレータを配置しており、実装したコードをシミュレーションできます。
  • コードの開発環境はAmazon Cloud9を利用してアプリケーションを開発します。
  • Gazeboシミュレータで動作確認をしたら八王子の会場にある実機のロボットへコードをデプロイします。
  • 実機のロボットとはAWS IoT Coreを利用して通信します。

コンポーネント構成

#

コンポーネントの構成は以下になります。
配置図
シミュレータ、実機ともにROSで制御しています。
ROSは近年のロボット開発において採用されることが多く、ロボット開発に必要なツールやライブラリが充実しています。

演習内容

#

あらかじめ用意したアーム制御のAPIを利用して、ロボットアームを八の字に動かしたり、受講者がテーマを決めてオリジナルな動きをするアプリケーションを開発したりします。
ソースコード

開発の流れ

#

開発の流れは以下になります。

flowchart TB
    A[開始] --> B[ソースコード編集];
    B --> C[Gazeboで動作確認];
    C --> D{期待した動作か};
    D -->|はい| E[デプロイ];
    E --> F[実機で動作確認];
    F --> G{期待した動作か};
    G -->|はい| H[終了];
    D -->|いいえ|B;
    G -->|いいえ|B;

ロボット開発はソフトウェアだけでなく、メカ、エレキの開発も含まれます。
シミュレータをうまく活用する事でメカ、エレキの完成を待たずして、ソフトウェアの開発を進めることができます。
また、事前にシミュレータで動作確認を行うことで、実機で事故をするリスクを低減させることができます。

インターンシップではシミュレータを取り入れることによって、より実際のロボット開発の近い体験をしてもらうことができるようになりました。

参加者の声

#
  • シミュレータと実機の動作を繰り返すロボット開発の基本を体験出来て面白かった
  • AWSのツールを使用してロボット開発を体験できて良かった

まとめ

#

流行りの要素技術が詰まったインターンシップです。
Gazeboイメージ

以上、お疲れ様でした。

豆蔵デベロッパーサイト - 先週のアクセスランキング
  1. Nuxt3入門(第1回) - Nuxtがサポートするレンダリングモードを理解する (2022-09-25)
  2. 自然言語処理初心者が「GPT2-japanese」で遊んでみた (2022-07-08)
  3. GitHub Codespaces を使いはじめる (2022-05-18)
  4. Jest再入門 - 関数・モジュールモック編 (2022-07-03)
  5. ORマッパーのTypeORMをTypeScriptで使う (2022-07-27)
  6. Nuxt3入門(第4回) - Nuxtのルーティングを理解する (2022-10-09)
  7. Nuxt3入門(第3回) - ユニバーサルフェッチでデータを取得する (2022-10-06)
  8. 第1回 OpenAPI Generator を使ったコード生成 (2022-06-04)
  9. Nuxt3入門(第8回) - Nuxt3のuseStateでコンポーネント間で状態を共有する (2022-10-28)
  10. Nuxt3入門(第2回) - 簡単なNuxtアプリケーションを作成する (2022-10-02)