コラム・レポート

副社長 川村貞夫の技術コラム

システムインテグレーション

1.システムインテグレーションによって成否が変わる

システムインテグレーションという言葉は、一般にはあまり利用しません。しかし、社会の多くの場面で、システムインテグレーションが実施されています。たとえば、野球の監督は、メンバーの誰を選び、どのような打順とするかなどもチームというシステムのインテグレーションを行っていることに対応します。必ずしも年俸の高い有力選手を集めたチームが優勝するわけではなく、各選手の特質を考慮したチーム編成が重要であることは、良く知られた事実です。このように、システムはインテグレーションの方法によって、その性能が大きく左右されます。

2.ロボットにはシステムインテグレーションが必要

ロボットはセンサ、コンピュータ、アクチュエータ、エネルギー源などの統合体です。したがって、ロボットを作ることはシステムインテグレーションを意味します。システムの構成要素は様々であり、同じ要素でも性能、価格、取り使い容易性などの特徴が異なります。システムインテグレーション担当者は、このような特性を各要素について理解したうえでシステム設計を行います。要素の組み合わせは多様であり、多くのソリューションを想定することが可能です。

3.良いロボットシステムインテグレーションとは?

システムの各要素を巧みに組み合わせてインテグレーションします。その際、目的を達成する性能に加えて、インテグレーションする作業者の負担が少なく、システム全体の価格を安いことなどが優れたシステムインテグレーションの条件となります。同じ性能を生み出すのであれば、各要素は低価格で使い安いものが望まれます。そのような要素を組み合わせて目的の作業をロボットが実現するインテグレーションの方法を開発する必要があります。

4.新しいロボットシステムインテグレーションが必要

ロボットのシステムインテグレーションの方法は、様々なテキストブックに掲載されてきました。そこには先人の努力の成果が集約されています。これらの既存の方法によって、確かにロボットのシステムは実現できます。しかし、システムインテグレーションには様々な方法の提案が可能です。今後のロボット開発、特に産業化には、新しい発想のシステムインテグレーションが必要と思われます。

相対位置誤差でロボットを動かす

1.デカルト座標系

空間の1点は、直交する座標系などを利用して、座標(X,Y,Z)で表現されます。デカルトの発想です。ハエが飛んでいる状態でハエの位置を記述することから着想したと言われています。デカルトは空間の点を代数で記述できることを示しました。近世の自然科学の空間の捉え方です。空間に絶対に曲がらない直線と完全に垂直に交わる直線から作られる座標系を空想します。そこで、私は1点を指先します。ロボットにも、この点を(X,Y,Z)と教えればロボットの指先をこの点に移動させることができます。何もない空間に私の空想する図形を記述することができる素晴らしい方法です。

2.アリストテレスの発想

アリストテレスの場の捉え方は、デカルト座標系の方法とは異なります。空間を定義する前に、対象物の存在から始まります。その対象物のまわりを取り巻くものが空間となります。たとえば、リンゴがテーブルに置かれている状態で、デカルト表現では、「リンゴは設定した座標系の(3,14,28)[単位はcm]にある。」となり、アリストテレス表現では、「リンゴがあり、テーブルの上に置かれている。」などとなります。この比較は大変興味深いものがあります。ロボットのシステムを構築する際に、空間(座標系)から考えるか、対象物から考えるかとなります。

3.絶対座標系によるロボットシステムインテグレーション

現状の多くのロボットシステムインテグレーションでは、デカルト座標系などで運動記述して、制御を実行します。各要素は、この座標系に合わせる努力をして精度などの性能を追求します。しかし、現実世界は完全な直線や平面を作り出すことは極めて困難です。私の頭の中の理想的な座標と現実のロボットなどの座標を高精度に一致させるためには、理想と現実のギャップを解消しなければなりません。

4.キャリブレーションという問題

このように座標系を一致させるための作業をキャリブレーションと呼びます。カメラを利用するロボットでは、カメラとロボットの座標系を一致させる必要があります。いわば、直線の直角や平行を可能な限り正しくする努力です。現実の世界では、床が完全に水平ではなく、ロボットのリンクもわずかには撓み、固定されたはずのロボットも振動などでわずかにずれる、このような現実世界で、理想の空間を追い求めることがキャリブレーションとなります。

5.相対位置利用

ロボットにとってデカルトの座標系で正しく動くことが目的ではなく、実際の作業の実現が必要です。我々が何かの作業をする場合に、まず初めに空間に注目するのではなく、対象物に注目します。そして、その対象物を他の対象物との関係から目標作業を理解して実行すると想定できます。その際、絶対座標系で表現する必要はなく、対象物と他の対象物の相対位置のみで表現して作業を達成できます。いわば、デカルト的ではなくアリストテレス的思考で十分となります。この発想にたてば、ロボットのシステムインテグレーションに新しい方法を提案できます。チトセロボティクスで開発したビジュアルフィードバック制御ソフトウェア「クルーボ」は、このような発想でうまれました。

デニソワ人と針

1.人類学に企業が注目

地球規模の環境問題、国際紛争、資本主義経済の限界など、先が予測し難い現代社会で、人類学に関心が高まっています。どのような文明が、どのようにして生まれ、なぜ崩壊したか?崩壊の理由は、自然災害か?人の営みか?企業経営者にとっても人類の大きな歴史の流れの中で、将来を考えることが重要なのでしょう。最近では人類学者からの情報や意見を求める企業も増えているようです。

2.デニソワ人

先端科学技術は人類学を大きく発展させています。2008年に西シベリアのアルタイ山脈のデニソワ洞窟で骨の断片が発見され、約5万前の新しい人類であることが示されました。我々の祖先のホモサピエンスとネアンデルタール人のみではなく、デニソワ人が共存していたそうです。他の2種類の人類が絶滅したというよりも、現在の人類にもDNAが受け継がれているようです。

3.針の発明

このデニソワ人が針を利用していたことが分かっています。この針の長さは7.6cmで鳥の骨から作られました。デニソワ人は、針と糸を使って防寒着を製作していたと思われます。縫い目の細かい防寒着は、極寒のシベリアでの生活を克服したと予想できます。約5万年前から人類は針を発明して、自分の目で針穴を確認して糸を指先で通していたのです。

4.ロボットで針穴に糸通し

針穴に糸を通すための専用機を開発すれば、この作業は比較的容易に実現できでしょう。しかし、デニソワ人が行ったように、目で見て針と糸を手に持った状態での作業をステレオカメラとロボットアームを利用して実現することは、従来のロボット技術ではほぼ不可能に思えます。約5万年前に人類が実現できた作業を現在のロボット技術は達成できていませんでした。

5.チトセロボティクスの技術がデニソワ人に追いついた

動画でもご紹介していますように、新しいシステムインテグレーション技術により、任意に設置された針に糸を通すことができるようになりました。ようやくロボット技術がデニソワ人の一つの作業レベルに追いついたと言えます。まだまだ未熟なロボットが、人類が実現してきた作業に追いつくように我々は努力したいと思います。

目はいくつある

1. 目の数

人を含めて多くの生物の目は2つである。しかし、ニュージーランドに生息するムカシトカゲは、頭頂部に第3の目を持っている。ただし、通常の目のように利用していないようである。約5億年前のカンブリア紀に生息したオパビニアは、図のように体の先頭に突出したハサミ状の吻と5つの目を持っている。昆虫は単眼が複数集合した複眼を持っているが、高度な形状認識などは難しいと考えられる。目の数はどのようにして決まるのであろうか。ロボットシステムの設計者としては興味ある質問である。

2. 生物の目は、どこにいくつ?

一つの目で2次元情報が得られるので、2つの目で3次元情報が得られる。これは、工学的によく知られた事実である。したがって、目は2つ必要であり、ロボットのカメラも2つ必要となる。たしかに、カンブリア紀の5つの目のオパビニアのような生物は現在みることはない。目が頭部になく、腕や脚のどこかにあれば、もっと違う利用ができそうである。
一番の問題は脳からの距離であろう。目からは膨大な外界の情報が入力される。これを脳に伝達して、信号処理することによって判断、認識を経て、次の行動に繋げる。膨大な情報を短時間で脳に伝達するためには、脳から近い位置に目を設置する必要があった。目は脳が露出した器官とも言われる。したがって、脳から距離の遠い手足に目をつけることは難しいと想像できる。それでは、頭部に3つ以上の目は妥当かとの疑問をもつ。前述のムカシトカゲは頭頂部に第3の目をもっている。ただし、通常の目と異なる利用で、光の検知などと想定されている。4つ以上の目も頭部にあってもよく、ロボットでは用途に合わせてステレオカメラを2セット持つ形となる。生物になぜ4つの目がないかを証明することは難しいけれども、2セットのステレオ視を脳内で信号処理することが脳に大きな負担となることは容易に想像できる。
結局、生物の目では、神経の伝達速度と脳の情報処理によって、目の数と位置が決まっているように思われる。

3. ロボットの目は、どこにいくつ?

生物とは異なり、ロボットのカメラ設置位置は、かならずしもコンピュータに近い必要はない。通信系の遅れは、現在要求されるロボット運動速度などから勘案して大きな制約条件にはなっていない。したがって、ハンドアイのように作業によって効率的なカメラ設置位置を選択可能である。必要に応じて、全体の空間を見渡せる位置やハンドの指先にもカメラを搭載できる。
カメラの数も2個に限定する必要はない。要求するカメラの性能にも依存するが、近年ではカメラは比較的低価格で購入できるので、カメラ台数の増加によるコストの上昇は大きな問題とならない。また、3個以上のカメラを利用する場合にもコンピュータの計算負担も小さくなっている。
このような理由から、ロボットの場合にはカメラの位置と数は生物よりも制約が少なく、比較的自由にシステム設計者によって変更可能となっている。

4. ロボットのカメラシステムの問題

ロボットのカメラの位置と個数は、それほど大きな問題ではない。むしろ、問題はカメラの設置方法にある。たとえば、2つのカメラで3次元情報を獲得する場合、2つのカメラの座標系の設定が正確で、作業中にも変化しないことを保証しなければならない。このため、物理的に2つのカメラの位置と姿勢が変化しないように、頑丈なフレームなどにしっかりと固定する必要がある。カメラ間の距離の短い平行ステレオであれば、2台のカメラ全体を支えるフレーム構造は比較的小さく構成できる。しかし、水平面と鉛直面を広く撮影するために、2つのカメラの距離を離して、カメラの姿勢を90度などで設定する場合には、カメラ同士の幾何関係のキャリブレーションは大きな問題となる。また、フレームの僅かな変形によっても精度が大きく低下する場合も多いので、フレームの剛性を高める必要があり、結果的に大型高重量のロボットシステムとなってしまう。カメラの台数を3台以上利用する場合には、同様のキャリブレーションの手間が台数の増加に従って拡大する。

5. チトセロボティクスのビジュアルフィードバック制御

チトセロボティクスの開発したビジュアルフィードバック制御では、2つのカメラ同士のキャリブレーションは不要である。そのため、各カメラの位置姿勢関係が変化しても問題は生じない。結果的に、2台のカメラを剛性の高いフレームなどで固定する必要がなくなり、システム全体を小型化・軽量化することが可能となっている。また、カメラが3台以上利用する場合にも対応可能である。

6. カンブリア紀の生物のようなロボット設計

カンブリア紀には生命の大爆発が起こり、多様な生命種が一気に生まれたと言われている。ただし、カンブリア紀の少し前から生命の大爆発が起こっていたとの説もある。ロボットのシステム開発では、生命から刺激を受け、アイディアをもらって思考することがある。観察する生物は、現存の生物種に限定する必要はなく、古生物など進化の初期の生物種からも学べることがありそうである。
視野角を広くとるためにウサギや馬など両眼を左右に取り付ける生物もいる。一方、目前の距離を正確に計測するために、両眼が平行ステレオカメラのように機能する場合もある。類人猿、虎などのネコ科、猛禽類などの動物は、獲物や枝までの距離を正確に計測するために、このような目の構造となっていると思われる。人を模擬したロボットの頭部では、平行ステレオカメラが利用され、立体視が可能となる。カメラ間の位置は近いので、固定フレームは比較的小型でも剛性を確保できて都合がよい。キャリブレーションも一度実施すればある程度の信頼性を期待できる。ただし、オクルージョン問題は発生しやすく、手先精度を高めようとしても精度の限界がある。チトセロボティクスのビジュアルフィードバック制御を利用すれば、キャリブレーションは不要となるので、平行ステレオカメラに限定されず、自由なロボットシステム設計が可能となる。
現状の生物に制約されず、人類が優れた生命体と過信せず、カンブリア紀の多様な古生物などからも自由に発想することが興味深い。そのような意味を込めて、クルーボのスタートアップマニュアルの表紙にはオパビニアに登場いただいている。もちろん、クルーボではカメラ5個も利用可能である。

理想と現実

1. 理想は必要

理想だけでは現場は動かない。現場の経験だけでは失敗を招く。どこの世界のどこの組織や人にも起こる問題である。現実とかけ離れた理想のみでは、進歩や改善などできない。しかし、現実のみに捕らわれていては、何も理解できず、これも現実を変えることができない。理想主義と現実主義をどのように選択するべきか。人によって、状況によって判断は分かれる。しかし、どのような場合にも理想を掲げることは必要となる。

2. プラトンとアリストテレス

プラトン(紀元前427~前347)はソクラテスの弟子の哲学者として有名である。プラトンの思想は多岐にわたり、その中心にあるのはイデア論と言われている。普遍的で完全な真実の世界を思弁によって認識しようとする哲学である。アリストテレス(紀元前384~前322)は、そのプラトンの弟子でありながら、プラトンを批判して唯一絶対の永遠のイデアを否定する。アリストテレスは地上の人間、多様性を擁護し、現実を観察する。ルネサンス期のイタリアの画家ラファエロは、バチカン宮殿に「アテナイの学堂」として2人を描いている。プラトンは指で天を指さし、アリストテレスは手の平を下向きにして水平に前に出している。理想と現実を象徴的に表現している。

3. 自然界の直線

ギリシャのパルテノン神殿では、中央が左右よりも盛り上がったように湾曲している。これは人の知覚特性から、完全な水平線では中央が下がったように見えるので、現実物をあえて曲げて建築している。直線の美しさに神に近づく感覚を当時の人々が持ったのであろうか。このような視点での庭園設計の観察も興味深い。イギリス庭園では、実は人が相当に手入れをしているにも関わらず、自然の状態を表現している。一方、フランスの庭園では、たとえばベルサイユ宮殿では池は直線に形作り、彫像は一定間隔で規則正しい。幾何学的な美しさと人工物創造への並々ならぬ自信をストレートに表現しているように思える。それでは日本庭園はといえば、微妙なバランスである。一見、不規則な本来の自然のような形を持ちながら、きれいに楕円体に刈り込まれた低木や常に形を整えられた樹木などがある。完全に人工的な直線などはない。しかし、自然そのものを目指していない。このような嗜好の違いは、どのような理由から生まれるのであろうか。

4. ロボティクス

ロボティクスに限らず一般に工学では、基礎的な理論があり、その理論に基づいて現実を考察し、人工物を作る。現実のすべてを考えることは無理な場合が多いので、理論では理想的状態を仮定する。リンク構造のロボットでは、リンクは完全剛体で曲がらないと仮定する場合が多い。このような仮定のもとに、剛体の力学を基盤に解析やモデリングが行われ、普遍性のある有用な結果がモデル駆動方式で得られてきた。しかし、変形や摩擦などモデル自体が作り難い場合やモデルのパラメータ値に誤差が含まれる場合には、この方法の性能は劣化する。そこで、モデルからのずれ量をさらに詳しく調べて、理想に近づけようとする。この一つが、さまざまなキャリブレーションである。パルテノン神殿を多少曲げても理想の直線に合わせようとした行為と同じである。

5. チトセロボティクスの技術

チトセロボティクスの技術はアリストテレスに近い。常に現場現物の問題から考える。現実世界を理想世界に一致させようとせず、現実世界で問題解決可能な方法を、理想世界の知識を基盤に開発する。床は水平ではなく、カメラのレンズは歪んでいることを受け入れて、それでも問題なくロボットを制御できる方法を開発する。方法を生み出すためには、理想世界の知識が有用である。現実世界では曖昧に見える方法が真に有用であることを、理想世界の道具を利用して深く考えることが必要となる。現実と理想の適度なバランスを有しているという点では、日本庭園に近いかもしれない。アリストテレスが存命であれば、チトセロボティクスは褒められる企業と思う。

インターンシップ体験レポート

インターンシップでは、ロボット統合制御ソフトウェア「クルーボ」を使って、ピックアンドプレイスシステムを実装してもらいます。
1人1台産業用ロボットが支給され、ロボットシステムの開発に取り組みます。

1. 自己紹介

  • 学校・専攻・学年:九州工業大学 情報工学部
  • 普段扱っているプログラミング言語や研究分野・大学での専攻:C++, Python(, ROS2) 高専の卒業研究 : 深層学習を用いた脳波解析
  • 興味のある技術領域:制御理論や自動運転などのロボットに関する実装

 

2. インターンに参加した理由

  • 株式会社チトセロボティクスを選んだ理由:産業ロボットがどのような形態で実際に使われているか、またソフトウェアがどのように実装されているかというものに深く関心があった。
  • 参加前に期待していたこと、チャレンジしたかった技術:実際に産業ロボットを動作させ、物を掴むなどのタスクを行うこと。

 

3. インターンで取り組んだ内容

  • インターン参加期間:14日間
  • 担当したプロジェクトの概要:スタートアップガイド、ピックアンドプレイス
  • 使用したプログラミング言語、フレームワーク、ツール:C++、クルーボ、(Eigen、Realsense SDK)
  • 実装した機能や担当タスクの具体例:ピックアンドプレイス(物体を掴み、指定された場所へ置く動作)

 

4. 技術的な学び・成長

  • 新しく習得したスキルや技術:OpenCVを利用した画像処理、PLCを使ったシステムの制御など
  • 問題解決のために工夫した点:今行っている動作の中で、なにがボトルネックとなっているのかという観点で問題を切り分けて整理し、小さな問題として一つ一つ解決していくという考え方を持つこと。
  • エンジニアやチームから学んだ知識:実際に実務で動作するロボットを制御する際には、最善の動作速度や安定性を持つことが必要であり、そこに妥協をしないということ。

 

5. 開発プロセス・チーム体験

  • 開発の進め方で印象に残ったこと:Qiita teamなどに定期的にドキュメントを整備し、開発進捗を共有しやすくまとめていたこと。
  • 個人開発との違いを感じた点:発生した問題をチームで共有し、解決策を話し合って進めていたところ。

 

6. 成果・達成感を得た瞬間

  • 実装が形になったときのエピソード:クルーボを用いたロボットアーム制御の中で、リアルタイムビジュアルフィードバックを使って正確に物を掴む制御が安定して行えたときに達成感を感じた。
  • 技術的に乗り越えた課題:マルチスレッドや簡単なP制御を利用して、タクトタイムを最初の実装から約1/2に縮めることが出来た。

 

7. 今後に活かしたいこと

  • インターンを通じて磨かれたスキル:モダンC++の様式やOpenCVを使った画像処理、アームロボット業界に関する知見
  • 学業や個人開発に還元したいこと:これからのロボット製作にもアームロボットとハンドアイカメラを利用した制御を積極的に用いていきたい。
  • 将来的に挑戦したい領域:高速で移動する足回りに装着されたロボットアームの制御

 

8. これから参加する人へのメッセージ

  • 準備しておくと良い知識やスキル:入門レベルのC++、OpenCV、linuxに関する知識、githubのPRやActionsなどの理解、安全意識
  • 参加中に意識した方がいいこと:上手く行かない箇所が出てきたとき、今のフローを分割し、どの箇所で現状何が上手く行ってないのかをしっかりと把握する。
  • インターンを楽しむコツ:ロボットが動けば楽しいと思います。

 

9. 自由記述

2週間の短い間でしたが、色々な知識や技術をご教示してくださり、有難うございました。産業用のアームロボットを自分で制御するという体験は、普通の生活の中では殆ど起こり得ないような出来事であり、とても貴重で面白いものでした。今回のインターンシップで得た経験を活かし、これからもロボット制御に励みたいと思います。本当に有難うございました。

1. 自己紹介

  • 学校・専攻・学年:HAL東京 高度情報学科
  • 普段扱っているプログラミング言語や研究分野・大学での専攻:マイコン制御(C++)、アプリ開発(Python, Java)
  • 興味のある技術領域:ネットワーク・インフラ、IoT

 

2. インターンに参加した理由

  • 株式会社チトセロボティクスを選んだ理由:ロボットアームのソフトウェア開発という取り組んだことのない分野での募集だったため。
  • 参加前に期待していたこと、チャレンジしたかった技術:ロボットの制御技術を知ること。

 

3. インターンで取り組んだ内容

  • インターン参加期間:3ヶ月(週2日)
  • 担当したプロジェクトの概要:ピックアンドプレイス、Techman技術調査
  • 使用したプログラミング言語、フレームワーク、ツール:C++、Crewbo / Python

 

4. 技術的な学び・成長

  • 新しく習得したスキルや技術:Crewbo・OpenCVの使用、空圧機器やPLCの取り扱い等。
  • 問題解決のために工夫した点:とにかく試してみる。やってみてわからない時はどの部分で問題が起きているかちゃんと確認する。

 

5. 開発プロセス・チーム体験

  • 開発の進め方で印象に残ったこと:問題が発生したとき、SlackやQiitaで報告し、チームとして即座に対応していたこと。
  • 個人開発との違いを感じた点:設備・備品の充実具合。コードレビューや問題報告・解決など、チームとしての開発体制。

 

6. 成果・達成感を得た瞬間

  • 最初にスタートアップガイドを行っているとき、自分でロボットを操作することができ、また次々と経験のないことをしていてとても面白かった。
    そこからピックアンドプレイスに繋げていくことで全体像の把握が幾分か理解しやすった。

 

7. 今後に活かしたいこと

  • インターンを通じて磨かれたスキル:ビジュアルフィードバックから、画像処理周りの手法や知識が磨かれた。
  • 学業や個人開発に還元したいこと:マイコンでの個人開発をしているので、今後小型のロボットアームを購入して何かしら制作してみたい。

 

8. これから参加する人へのメッセージ

  • 準備しておくと良い知識やスキル:C++の基本文法、OpenCVの基礎
  • 参加中に意識した方がいいこと:ロボットの動作中は緊急停止ボタンから手を離さないこと。危ないかな?と思ったときにすぐ動作を止めること。
  • インターンを楽しむコツ:安全に気をつけて!

9. 自由記述

3ヶ月の間、今まで自分が触れたことのない様々な知識や機器の経験を得ることができ、大変でありつつとても楽しんで開発に取り組むことができました。ここでの経験を今後の学業や将来の勤労に活かしていけるよう、今後もがんばっていきます。

1. 自己紹介

  • 学校・専攻・学年:日本大学文理学部
  • 普段扱っているプログラミング言語や研究分野・大学での専攻:
    • 言語:C, C++, Python
    • 研究分野、専攻:計算量、アルゴリズム
  • 興味のある技術領域:
    • 数理最適化を応用した技術

 

2. インターンに参加した理由

  • 株式会社チトセロボティクスを選んだ理由:
    • 長期的なインターンで知らないことが学べると思ったから。
  • 参加前に期待していたこと、チャレンジしたかった技術:
    • プログラミングがどのように仕事になっているのかを見たかった。
    • プログラミングをしてロボットを動かすこと。
    • 画像処理

 

3. インターンで取り組んだ内容

  • インターン参加期間:
    • 2ヶ月(21日間)
  • 担当したプロジェクトの概要:
    • ピックアンドプレイス
  • 使用したプログラミング言語、フレームワーク、ツール:
    • C++, OpenCV, Visual Studio Code, Git
  • 実装した機能や担当タスクの具体例:
    • ワークを検出する機能
    • ArUcoマーカを認識して、移動する機能
    • 一番近くのワークの前上にエンドエフェクタを移動させる機能

 

4. 技術的な学び・成長

  • 新しく習得したスキルや技術:
    • gitHubの使い方
    • OpenCVについて
    • 画像処理
    • ロボットプログラミング
    • コードの可読性
    • PLCとか
  • 問題解決のために工夫した点:
    • 過去ピックアンドプレイスの記事は実装の流れがわかるので助かった。
    • クルーボ_スタートアップガイドでArUcoマーカや赤い玉の認識の方法などのを知った。
  • エンジニアやチームから学んだ知識:
    • 工学を専攻していなかったため、ロボットに関する基礎的な知識をエンジニアの方々から多く教わった。
    • 読み手にとってわかりやすいコードの書き方についても、実践を通じて指導を受けた。
    • GitHubの基本的な使い方について、丁寧に教えてもらった。
      -開発の全体的な流れや進め方について、実務を通じて多くのことを学ばせてもらった。

 

5. 開発プロセス・チーム体験

  • 開発の進め方で印象に残ったこと:
    • もとから作られている関数がたくさんあり、何があるのか把握するのが難しい。
    • 自分で作成した関数のテストを作るのは新鮮だった。
    • どの程度の単位で関数化するか迷った。
  • チーム開発で経験したこと(例:コードレビュー、設計議論、タスク管理など):
    • かなり小さな範囲でプルリクとマージを行うので、レビューにコストが多くかかるのではないかと感じた。
    • 小さなまとまりでコミットしておくと進捗がわかりやすかった。
  • 個人開発との違いを感じた点:
    • コードのレビューが新鮮だった。
    • コードを見られる経験が少なかったため、具体的にわかりやすい書き方とかを知ることができた。

 

6. 成果・達成感を得た瞬間

  • 実装が形になったときのエピソード:
    • 他のコードやスタートアップガイド等を参考にしてワークを認識して追いかけるようになったときは嬉しかった。
  • ユーザーやチームからのフィードバック:
  • 技術的に乗り越えた課題:
    • 画像内のワークをどうやって認識すべきかわからなかったが、スタートアップガイドのコードを改造して認識できるようになった。

 

7. 今後に活かしたいこと

  • インターンを通じて磨かれたスキル:
    • gitHubが使えるようになった。
    • チーム開発でどんなレビューを書くべきかをわかるようになった。
    • 関数に対してどんなテストを作成すればいいか知った。
  • 学業や個人開発に還元したいこと:
    • 授業やハッカソンなどでもgitを活用して、バージョン管理を安全に行いたい。
    • 大きな開発を今後することがある際は、レビューやテストを活用したい。
  • 将来的に挑戦したい領域:
    • データを活用するものとかいつか触れたい。
    • 機械学習もいつか触れたい。

 

8. これから参加する人へのメッセージ

  • 準備しておくと良い知識やスキル:
    • C++をある程度書けるようにするべきです。
    • gitを触ったことがあると楽です。
    • 工学を学んだことがあると想像しやすいかもしれません。
    • 画像処理をしたことがある方がいいです。
  • 参加中に意識した方がいいこと:
    • 今日何をやるかを明確にする。
    • わからないことは聞く。
    • インターネットで調べる。
  • インターンを楽しむコツ:
    • お金がもらえて勉強ができるなんて素敵です。
    • 大学の授業では実践的なことはなかなかできないですが、インターンでは長い時間をかけてできます。

9. 自由記述

  • コードを書いてすぐにロボットを動かせるので、変化がわかりやすいと感じました。
  • エンドエフェクタやマウンタ周辺の機器を取り替え、それを忘れてマウンタを壊すことが何回かありました。無慈悲にもメキメキいいながら机にエンドエフェクタを叩きつける姿は何かそこしれない恐怖を感じました。
  • 今後もよろしくお願いします。

1. 自己紹介

  • 学校・専攻・学年:東京科学大学・工学院機械系
  • 普段扱っているプログラミング言語や研究分野・大学での専攻:Python・機械工学、制御工学、四力(熱力学、流体力学、材料力学、機械力学)
  • 興味のある技術領域:制御工学、数値流体力学(CFD)

 

2. インターンに参加した理由

  • 株式会社チトセロボティクスを選んだ理由:私は半年後に研究室配属があり、そこでロボット関連の研究室か数値流体力学の研究室にするか迷っているため、今回のインターンに参加した。御社では、ロボットを用いた開発現場を実体験ベースで知ることができると感じたから。
  • 参加前に期待していたこと、チャレンジしたかった技術:産業用ロボットを用いて、大学の講義で学んでいる内容をどのように活用しているのかを知りたかった。また、ロボットを動かすためのコーディングはしたことがなく、C++もやったことのない言語だったため新しい技術を会得したいと思った。

 

3. インターンで取り組んだ内容

  • インターン参加期間:8月末から10月
  • 担当したプロジェクトの概要:ピックアンドプレイス開発演習課題
  • 使用したプログラミング言語、フレームワーク、ツール:C++、Melfa
  • 実装した機能や担当タスクの具体例:使用したロボットとエンドエフェクタとワーク

 

4. 技術的な学び・成長

  • 新しく習得したスキルや技術:C++の基本的なコーディング、画像処理の仕方や知識
  • 問題解決のために工夫した点:最終的に達成したい目標から逆算したコーディングをすることが重要であると感じたため、プログラム全体の方針を考えてからコーディングすることを意識した。
  • エンジニアやチームから学んだ知識:エンジニアの方々には細かい文法的な質問から自分が実現したいロボットの動き方の実現方法など、どんな質問にも丁寧に答えてくださった。また、プログラミングだけでなく、画像処理の方法に関する基本的な考え方や手法を学ぶことができた。

 

5. 開発プロセス・チーム体験

  • 開発の進め方で印象に残ったこと:ロボットが動くだけではなく、そのコードが他の人が見ても分かるような内容であることや完結に書くことが非常に重要であると感じた。
  • チーム開発で経験したこと:コードレビューをしていただくことは初めてで、他の人が見やすいコードを書くように徐々に変えていくことができた。
  • 個人開発との違いを感じた点:エンジニアの方から直接、アドバイスがいただけるため、自分のアイデアの方向性が正しいか、より良いアイデアは何かを都度確認することができる。

 

6. 成果・達成感を得た瞬間

    • 実装が形になったときのエピソード:ワークの中心部分がカメラの中心と一致するようにロボットを動かすコードの作成の際、このようにすればできるというイメージはあったが苦戦していた。その際、具体的なコーディングや解決策をエンジニアの方に教えていただきながら、進めていくことで疑問点を解決していった。その中でカメラやロボットのことも学ぶことができ、一つの問題を解決することでこれからも使うことができる汎用的な学びをすることができた。また、この際に自分の手でコードを書いたり、考えをまとめたりすることの重要性も感じることができた。

     

    7. 今後に活かしたいこと

    • インターンを通じて磨かれたスキル:ハードとソフトの両面を考えながら開発することができ、ロボットの開発をしていく上で重要な考え方を感じることができた。また、コードを書くための論理的な思考を実際にやることで得ることができた。
    • 学業や個人開発に還元したいこと:御社でロボットの現場を学ぶことで、自分が本当にやりたいことが何かを考える大きな材料となった。自分の専門はまだ決めきっていないが、このインターンが将来の決断において大きなものとなると感じている。
    • 将来的に挑戦したい領域:具体的なイメージはできていないが、ロボットや流体の分野でエンジニアとして社会課題を解決し、多くの人が自由な時間を過ごせるような社会にしていきたい。

     

    8. これから参加する人へのメッセージ

    • 準備しておくと良い知識やスキル:基本的なプログラミングの知識、数学的な知識、制御工学の基礎
    • 参加中に意識した方がいいこと:わからないことがあったら、すぐに質問すること
    • インターンを楽しむコツ:ロボットやプログラミングのことなど、純粋に生まれた疑問点や気になることを質問してみることが楽しむコツだと感じた。それが直接的に今の課題に関係なくても、そこで聞いたことが今まで大学で勉強したことつながったり、これから開発していく中でつながっていったりすると考えるので、気になったことに素直になることが大切である。

    9. 自由記述

    PCやロボットを一人一台用意してくださり、学びやすい環境を整えてくださったこと、本当に感謝しています!この経験が自分のこれからの決断や一人の科学者、研究者として貴重なものになると確信しています!

    1. 自己紹介

    • 学校・専攻・学年:東京農工大学大学院知能情報システム工学専攻
    • 普段扱っているプログラミング言語や研究分野・大学での専攻:
      • 研究分野:人の認知や、運動を学習する過程についての研究
      • 扱うプログラミング言語:Python, C++
    • 興味のある技術領域:
      ロボット制御、強化学習

    2. インターンに参加した理由

      • 株式会社チトセロボティクスを選んだ理由:
        バイトでは学校で習ったことや今までの経験を活かせないと感じたので、長期インターンをすることを決めました。ロボコンをやっていた経験があったことと、ロボットの緻密な制御に興味があったことが理由で貴社を選びました。
      • 参加前に期待していたこと、チャレンジしたかった技術:
        画像処理を使ってリアルタイムにものにを追従する技術。開発系の仕事でのコミュニケーションのとり方やマナーなどを知ること。

      3. インターンで取り組んだ内容

      • インターン参加期間:3ヶ月以上
      • 担当したプロジェクトの概要:ピックアンドプレイス
      • 使用したプログラミング言語、フレームワーク、ツール:C++, クルーボ, OpenCV, Github
      • 実装した機能や担当タスクの具体例:所定の場所に、色の異なるワークを運んで入れる。

      4. 技術的な学び・成長

      • 新しく習得したスキルや技術:
        Githubを使った開発の仕方、画像処理の考え方、VFの基本的な仕組み、クルーボの使い方など
      • 問題解決のために工夫した点:機能単位で関数にわけ、後で自分が修正しやすいようにした。また、難易度が高いタスクは妥協点を探して簡単に実装し、後で改善していくイメージで、早さ重視の実装をした。
      • エンジニアやチームから学んだ知識:
        • 新しく作るより、既存のものを活用することをまず考える。
        • 私の書く関数は、機能が冗長になりがちであること。
        • 処理速度は、単にロボットの速度だけではなく、動作の工夫(移動経路の工夫、VF以外のムーブを増やすなど)によって大きく改善される。

      5. 開発プロセス・チーム体験

      • 開発の進め方で印象に残ったこと:
        • コードレビューをしてもらいながら実装をすすめていく大変さ。
        • 日報をつけること。これで過去の失敗の原因や今後の方向性が定まると感じた。
        • 朝会。今日何やるかを明確にできて良かった。
      • チーム開発で経験したこと:
      • 個人開発との違いを感じた点:変数名を適当につけてはいけないという点、わからないことを相談できる点、過去の便利なプログラムがわかりやすい使い方の説明

      6. 成果・達成感を得た瞬間

        • 実装が形になったときのエピソード:
          • ピックアンドプレイスが初めて形になったとき
          • 画像処理が困難だった際に、自分の工夫で解決できたとき
        • 技術的に乗り越えた課題:
          • ワークが作業する位置をなるべく下げることでタクトタイムを短縮させた。
          • 背景が映らないよう、画像認識をかける領域を限定することで、認識精度を上げた。

        7. 今後に活かしたいこと

        • インターンを通じて磨かれたスキル:Githubなど、開発で用いるプラットフォームの扱い方。コーディング能力。また、人に説明する能力と課題解決能力。
        • 学業や個人開発に還元したいこと:今回の経験で、開発現場での働き方を理解することができた。今後のキャリアを考える上で大きい経験になったと感じている。また、コード管理や、機能ごとにテストを作るなど開発の仕方で参考になる点は真似したいと思った。
        • 将来的に挑戦したい領域:人の能力が拡張できるようなロボット

        8. これから参加する人へのメッセージ

        • 準備しておくと良い知識やスキル:C++の文法、線形代数の知識、アルゴリズムの知識
        • 参加中に意識した方がいいこと:教えてもらったことはメモしておくと良い。わからなかったり悩んだりしたらすぐ相談すること。
        • インターンを楽しむコツ:できることが増えると楽しくなります。できることを日々増やしていくイメージで取り組むと良いかもしれません。

        9. 自由記述

        高専卒業以来、ロボットを扱う機会がありませんでしたが、今回のインターンでは完璧な環境が揃っており、非常に楽しく学ぶことができました。また、RVFでロボットを動かすことが楽しかったので、応用方法について更に考えていきたいです。今後ともよろしくお願いいたします。

        1. 自己紹介

        • 学校・専攻・学年:
          • 東京通信大学、情報マネジメント学部4年
        • 普段扱っているプログラミング言語や研究分野・大学での専攻:
          • 言語:C++
          • 競技プログラミングでの選手活動、普及活動(教授のサポートは受けていますが研究室等の公的な物でないです)
        • 興味のある技術領域:
          • 数理最適化
            • 組み合わせゲーム理論等
          • 数理最適化の社会実装

         

        2. インターンに参加した理由

          • 株式会社チトセロボティクスを選んだ理由:
            • 25年7月の時点で、26卒を募集してくれていた。
            • 新卒採用選考も兼ねてインターンに参加した。
            • 競技プログラミングでC++ばかりしてきたので、それを活かせる職場を探していた。
            • 自作キーボードを趣味でやった際に、自分が設計した物が物理世界で動作している感覚が気持ちよかったので、物理世界でも動作する方面に進みたかった。
            • 競技プログラミングと開発による社会実装を両立するために、同じC++を使う事で、相乗効果も期待できると思った。
          • 参加前に期待していたこと、チャレンジしたかった技術:
            • C++での実践的なソフトウェア開発
            • 画像認識
            • ロボット制御

           

          3. インターンで取り組んだ内容

          • インターン参加期間:
            • 約7週間、週2~3程度
          • 担当したプロジェクトの概要:
            • ピックアンドプレイス演習課題
            • ロボットスピード超過エラーの原因特定
            • ピックアンドプレイス、キーボードのキーキャップを色毎に仕分けしコップへ入れる
          • 使用したプログラミング言語、フレームワーク、ツール:
            • C++
            • ロボット制御関連ライブラリcrewbo

           

          4. 技術的な学び・成長

          • 新しく習得したスキルや技術
            • ロボットの基本制御
            • 画像認識
            • 他の人が読む前提のコードの書き方
          • 問題解決のために工夫した点
            • 積極的に質問すること。
            • 質問時に説明できるよう、できる限り何が分からないかを言語化しておくこと。
            • 実験できる場合は実験してみること
          • エンジニアやチームから学んだ知識:
            • 数年間における、膨大な蓄積で過去に作られてるものが多かった事。
            • 過去の蓄積を利用する事の大切さ。
            • 相談し、話合う事で実験も精度が上がるという事。
              • 時にはしらみ潰しな実験をするより、理解のための実験であっても、先に聞いてしまったほうが良い場合も多い。

           

          5. 開発プロセス・チーム体験

          • 開発の進め方で印象に残ったこと:
            • 1人1つロボットを使って、1人1つのプロジェクトを担当していた事
            • 基本的にコードレビュー以外個々で開発していた事
          • チーム開発で経験したこと(例:コードレビュー、設計議論、タスク管理など):
            • コードレビューの部分をチーム化する事で、必要最低限ながら、十分なコミュニケーションが取れていて、コミュニケーションコストが最適化されていると感じた。
            • 日報や朝会でそれぞれの取り組みを共有する事で状況把握がしやすく、自分の思考整理にもなっていた。
          • 個人開発との違いを感じた点:
            • 文化の違いにかなり依存する点。
              • 例えばロボットオブジェクトなどは共通言語として当然なので説明しなくても良いとなっていたりした。

           

          6. 成果・達成感を得た瞬間

            • 実装が形になったときのエピソード:
              • ピックアンドプレイス演習課題では、技術的な課題にぶつかり止まることはあまりなく、毎回小さい達成感を得ていた
              • ロボットのエラー原因特定では、試行錯誤中に突如ロボットが狙い通り異常停止をしたときには大きな達成感を得た。
            • ユーザーやチームからのフィードバック:
              • チーム開発の手法系の内容がまだまだ学ぶ事がたくさんだということが、コードレビューを通してわかった。
            • 技術的に乗り越えた課題:
              • 意図的にCPUやネットワークに負荷を掛けるといった、普通はしない事をやって実験をする事。

             

            7. 今後に活かしたいこと

            • インターンを通じて磨かれたスキル:
              • 本格的な開発手法のイメージが湧くようになった。
            • 学業や個人開発に還元したいこと:
              • C++を書く時間が伸びたり、言語仕様に関する知識も増えたので、競技プログラミングのさらなる実力アップにも還元したい。
              • 日報を書くことで頭が整理されたので、自分の勉強にも取り入れて見ようと思う。
            • 将来的に挑戦したい領域:
              • ロボットの動きの最適化
                • crewboのライブラリ内の実装において、まだ最適化の余地が残っているものがあると聞いているので、実力を上げてそこにも携われるようになりたい。

             

            8. これから参加する人へのメッセージ

            • 準備しておくと良い知識やスキル:
              • C++の基本文法
              • プログラミングにおけるデバッグ慣れ
              • 新しい物を受け入れる覚悟
            • 参加中に意識した方がいいこと:
              • 質問を恐れない事
              • ロボットは物理的に動くので、作動中はいつでも緊急停止させられる準備をすること
            • インターンを楽しむコツ:
              • 周りと比較するのではなく、ただただロボットを動かしてる自分に酔う事
              • ロボットちゃんを可愛いと思う事

            10. 競技プログラミングガチ勢がロボット未経験で飛び込んだ所感

            • 競プロ力を鍛えておくと、画像認識とロボット部分に集中できるので、強いです!
            • 1プロジェクト1人開発だと、競技プログラミングのチーム戦みたいに、チームだけど別々の問題に取り組んでいます。
            • 競技プログラミングで定番のC++と言語が一緒です。
            • つまり競技プログラマーが新しい領域に飛び込むのには力を発揮しやすくて最適な環境だと思います!

            1. 自己紹介

            • 学校・専攻・学年:
              • 東京電機大学 未来科学部
            • 普段扱っているプログラミング言語や研究分野・大学での専攻:
              • 大学ではC、MATLAB、C++、Pythonを主に使用。
              • 機械、電気電子、制御、情報の4分野を総合的に学習し、それらの複合技術を理解することを目指す学科。(専門と胸を張って言えるものがあまりないかもしれない)
              • 研究室は基地局を介さず通信をするアドホックネットワークを中心に、通信プロトコル、無線ネットワーク、セキュリティの研究する。
                • (配属されて間もないので、研究活動はまだやっていない)
                • 今はArchLinuxでLinuxのカーネルをいじりながらOSを理解することを目的として研究室から課題を課せられている。
            • 興味のある技術領域:
              • IoT、画像処理、SLMの協働やSLM-LLMの連携など

            2. インターンに参加した理由

              • 株式会社チトセロボティクスを選んだ理由:
                • ビジュアルフィードバックを使ったロボット制御が面白そうだと感じた。
                • ハードウェアとソフトウェアの両方を触れる良い機会だと思った
              • 参加前に期待していたこと、チャレンジしたかった技術:
                • マニピュレータが動いているのを見たい
                • マニピュレータを動かしたい
                • 画像処理
                • C++を使う

              3. インターンで取り組んだ内容

              • インターン参加期間:
                • 約一ヶ月半(週2日)
              • 担当したプロジェクトの概要:
                • クルーボスタートアップガイドチュートリアル
              • 使用したプログラミング言語、フレームワーク、ツール:
                • C++、crewbo、OpenCV、Visual Studio Code、Git
              • 実装した機能や担当タスクの具体例:
                • キャップに色のついた醤油差しの検出
                • 醤油差しの体領域の重心座標算出
                • ワークのピック
                • 容器に取り付けられたArucoマーカの認識
                • 容器内にワークを入れる

              4. 技術的な学び・成長

              • 新しく習得したスキルや技術
                • C++の書き方
                • git、githubの使い方
                • crewboを用いたRVF
                • PLCを用いた入出力とアクチュエータ制御
                • リアルセンスの使い方とその弱点
                • 座標系変換はとても重要であることを実感した。
              • 問題解決のために工夫した点
                • 段階的に機能を実装すること。
                • 発生しているエラーの原因の特定と、その切り分け。
                • 安全第一にコードを組む
                • わからないことは質問する。
              • エンジニアやチームから学んだ知識:
                • 会議を見ていると、エンジニアの中でも考えている中心の分野や大切にする観点が異なることがわかる。しかし、その違いが大切だと感じた。ある人は気にして、ある人は気にしないことがあり、その意見がより良い判断を促すこともある。意見を言い合うことが大切であると感じた。また、それら意見の解決策や折り合いをつける技術も大切だと感じた。
                • エンジニアの皆さんが優しい。チームでは優しさが大切。

               

              5. 開発プロセス・チーム体験

              • 開発の進め方で印象に残ったこと:
                • Githubを使うことに慣れていない、人が読むためのコードを書くことに慣れていないと実感したこと。
                • コードの整頓はどこまで、どのようにやるのかあまりわからなかったこと。
              • チーム開発で経験したこと(例:コードレビュー、設計議論、タスク管理など):
                • 要件設定、助けを求めること
              • 個人開発との違いを感じた点:
                • コードを関数として細分化したり、読みやすいように書くこと。後片付けや、作業環境の変化。コードレビュー。

               

              6. 成果・達成感を得た瞬間

                • 実装が形になったときのエピソード:
                  • 半透明が検出できたときに達成感を感じた。
                  • 3Dプリンタがうまく動かず、なかなか吸着パッドを使えなかったので、ワークをピックできたときにとても嬉しかった。

                7. 今後に活かしたいこと

                • インターンを通じて磨かれたスキル:
                  • C++とOpenCVについての知識が増えた。
                  • マニピュレータを使った経験を得られた。
                  • ロボット、画像処理関連の用語を知った。
                • 学業や個人開発に還元したいこと:
                  • 学校で学ぶような内容に近いので、授業の理解度を深めるのに役立つ。
                  • 実験関連のファイルやレポートをgit、githubで管理すると便利だと気がついた。

                 

                8. これから参加する人へのメッセージ

                • 準備しておくと良い知識やスキル:
                  • C++の基本文法、画像処理の知識を少々、調べるスキル
                • 参加中に意識した方がいいこと:
                  • crewbo docを積極的に読む。
                  • 安全に配慮したコードを書く
                  • とてもゆっくりな速度で一度試す。(翌日の作業の初回も必ず)
                  • 他のインターン生のドキュメントを色々読んでお手本やアイディアを探す
                • インターンを楽しむコツ:
                  • 体調管理をする。

                9. 自由記述

                • エンジニアの方々には、お忙しい中様々対応していただき感謝しています。マニピュレータの動きをリアルタイムに見ながらコードを書く体験はなかなかできないものだと思います。定例会議の中でも、インターン生に対して良い学びをさせるために〇〇をしたほうがいいという声が聞こえることもあり、インターンにおいての学習にとても気を使っているように感じました。実際、とても学習に良い環境であり、なによりとても楽しかったです。これからも様々なことを学びながら頑張りたいです。

                • 以下、学校に対して不安に思っていたことがインターンに参加して少し解消した話

                  私の通うロボット・メカトロニクス学科では、ロボットのような複合技術によって作られた分野を理解するために、機械・電気電子・制御・情報の4分野を学び、それらの統合をするための知識を養うという目的で授業カリキュラムが組まれている。私自身はこのカリキュラムが大学に入るまではとてもいいと感じていました。しかし、いざ入ってみて、他学科の学習と比べると広く浅くという印象を強く受けた。
                  当然、他学科が専門分野に時間を使っている中で、いろいろなものに手を付けるのでそれらの触りしか勉強していないようなもの。流体力学が一番適当で、わずか700分にすべてを詰め込んでいた。このようなことからも、本当にこのカリキュラムで大丈夫なのか?と不安に感じていた。
                  さらに、学校の違う学科の友人や、高校の頃の友人に専門分野の話を聞くと、自分よりもとても深く学問を学んでいる印象を受け、さらに不安が高まっていた。

                  そこで、チトセロボティクスのインターンに入り、実際に活動してみると、他のインターン生は情報学部や機械学部の方がいて、話している内容が全くわからないこともあった。しかし、インターンを進めていく中で、確かに学校で学んでいることが役に立つということも感じていて、広い分野の基礎知識が大学で勉強しているうちに備わっていて、更にそれが新たな知識を理解することや、インターンの課題を進めるために重要なことであると実感した。
                  CADを勉強していなければ、エンドエフェクタの製作に躓いていただろうし、画像処理を勉強していなければ領域抽出や、画像座標系の取り扱い、C++でのコーディングに苦戦しただろう。ロボットの座標系について知らなければ、座標系変換、PoseやJoint、TCPの理解に苦しんでいたかもしれない。
                  もちろん、実際現状の知識は単なる基礎知識であるため、明らかに知識が不足していることも多いが、学校に対して疑問に感じていた部分や不安などが改善し、自信と意欲につながったという面でもとてもいい体験であった。また、学校で身につけた基礎知識は様々な分野の知識を自ら勉強するための土台になっていると知れた。

                1. 自己紹介

                • 学校・専攻・学年:
                  • 東京理科大学 創域理工学研究科
                • 普段扱っているプログラミング言語や研究分野・大学での専攻:
                  • python、深層学習
                • 興味のある技術領域:
                  • 自動運転、半導体

                2. インターンに参加した理由

                  • 株式会社チトセロボティクスを選んだ理由:
                    • 新卒で入社予定の会社でC++を扱うので、それを習得するため。開発経験をつむため。
                    • ロボットという未知の分野を経験したかった
                  • 参加前に期待していたこと、チャレンジしたかった技術:
                    • ハードウェアに関しての広範的な知識
                    • VF技術

                  3. インターンで取り組んだ内容

                  • インターン参加期間:
                    • 約10ヶ月
                  • 担当したプロジェクトの概要:
                    • チュートリアル
                    • ピックアンドプレイス
                    • ハンガートラッキング
                    • かんばん挿入
                    • コンベアプレイシング

                  4. 技術的な学び・成長

                  • 新しく習得したスキルや技術
                    • gitの使い方、C++の文法、自発性、ロボットの操作方法
                  • 問題解決のために工夫した点
                    • 色による画像認識をカメラの設定や環境を変えることで認識しやすくした。
                    • わからないことはすぐにエンジニアの方に相談をした。

                  5. 開発プロセス・チーム体験

                  • 開発の進め方で印象に残ったこと:
                    • インターン生にもプロジェクトを任せてもらえる。
                  • チーム開発で経験したこと(例:コードレビュー、設計議論、タスク管理など):
                    • 人によってコードレビューのこだわりがある。
                  • 個人開発との違いを感じた点:
                    • 個人開発は自分が読めるコードを書きがちだが、チームで開発する場合は他の人にも読めるコードでなければならない。

                  6. 成果・達成感を得た瞬間

                    • ユーザーやチームからのフィードバック
                      • インターン始めた頃より清涼していると言われて嬉しかったです。
                    • 技術的に乗り越えた課題
                      • 長いこと考えて最終的にうまく行くアルゴリズムを思いついた。

                    7. 今後に活かしたいこと

                    • インターンを通じて磨かれたスキル:
                      • githubの使い方、ハードウェアの知識
                    • 学業や個人開発に還元したいこと:
                      • githubで個人開発を行いやすくなって、計画的にコードを作成できるようになった。

                    8. これから参加する人へのメッセージ

                    • 準備しておくと良い知識やスキル:
                      • C++の文法
                    • 参加中に意識した方がいいこと:
                      • ロボットの制御中は細心の注意を図ること
                    • インターンを楽しむコツ:
                      • 他のエンジニアと仲良くする。

                    9. 自由記述

                    • 今まで本当にお世話になりました。

                    1. 自己紹介

                    • 学校・専攻・学年:
                      • 筑波大学大学院 理工情報生命学術院 システム情報工学研究群
                    • 普段扱っているプログラミング言語や研究分野・大学での専攻:
                      • プログラミング言語:C++、Python
                      • 研究分野:遠隔操作ロボットによる把持・操作
                    • 興味のある技術領域:
                      • ロボット制御、画像処理

                    2. インターンに参加した理由

                      • 株式会社チトセロボティクスを選んだ理由:
                        • ホームページで紹介されていた動画の内容が自分の研究と非常に似ていたため。
                      • 参加前に期待していたこと、チャレンジしたかった技術:
                        • リアルタイムビジュアルフィードバック

                      3. インターンで取り組んだ内容

                      • インターン参加期間:
                        • 約4ヶ月半
                      • 担当したプロジェクトの概要:
                        • ピックアンドプレイス課題、バンドピッキング
                      • 使用したプログラミング言語、フレームワーク、ツール:
                        • C++、crewbo、Git
                      • 実装した機能や担当タスクの具体例:
                        • ピックアンドプレイス課題
                          • カラー糸を把持し、その色に応じたARマーカの場所に落とす。
                          • プログラム開始後にGUI上でHSV値を設定し、運ぶカラー糸の色を指定する。

                        • バンドピッキング
                          • バンド全体の検出および把持できない部分の除外
                          • 把持目標点を決定してバンドを把持する。

                       

                      4. 技術的な学び・成長

                      • 新しく習得したスキルや技術
                        • Git・GitHub、リアルタイムビジュアルフィードバック、OpenCVの関数によるコードの短縮
                      • 問題解決のために工夫した点
                        • チュートリアルやテンプレートに含まれるコードの不明点は調べ、それでも分からなければ質問する。
                      • エンジニアやチームから学んだ知識
                        • 精度や安定性も重要であるが、開発速度も重視すべきであり、無駄な実装は避けるべきであるということ。

                      5. 開発プロセス・チーム体験

                      • 開発の進め方で印象に残ったこと:
                        • ビルド時に警告が1つでもあれば実行不可能としたり、マージには必ず他の人のレビューが必要であったりと、ミスを減らしコードのクオリティを高める仕組みになっていた点。
                      • チーム開発で経験したこと(例:コードレビュー、設計議論、タスク管理など):
                        • プロジェクトの方針に関する議論、コードレビュー
                      • 個人開発との違いを感じた点:
                        • 1つのプロジェクトを複数人で担当することもあり、コードの可読性を高めた上で他の人に内容を説明できる力が特に求められる点。

                       

                      6. 成果・達成感を得た瞬間

                        • 実装が形になったときのエピソード
                          • 複雑な形状の物体をある程度安定して検出できるようになった。
                        • 技術的に乗り越えた課題
                          • バンドの把持できない部分の除外が難しく悩んだが、周囲のエッジの数を評価することで検出できるようになった。

                        7. 今後に活かしたいこと

                        • インターンを通じて磨かれたスキル:
                          • Git・GitHubを活用したチーム開発
                        • 学業や個人開発に還元したいこと:
                          • 読みやすいコードの作成方法、画像処理をはじめとした計算量が多いコード作成時の適切な関数の使い方
                        • 将来的に挑戦したい領域
                          • 機械学習、協調動作制御

                         

                        8. これから参加する人へのメッセージ

                        • 準備しておくと良い知識やスキル:
                          • C++、ロボットの基礎(基本的な動き方のイメージ、座標系についてなど)
                        • 参加中に意識した方がいいこと:
                          • 意図していない動作が発生することを常に想定しておき、プログラム実行中は必ずすぐに停止できるようにしておく。例外処理の記述は忘れがちであるが、想定外な挙動の原因になるので忘れないようにする。
                        • インターンを楽しむコツ:
                          • 実際にロボットを動かしながら開発するので、目標動作に近づいていく様子が分かりやすいと思います。その過程を楽しみましょう!

                        9. 自由記述

                        • ロボットのソフトウェアにもハードウェアにも触れる機会が多く、日々楽しいです。
                          ロボットに少しでも興味があれば楽しみながら取り組むことができると思います!