コラム・レポート
副社長 川村貞夫の技術コラム

システムインテグレーション
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などの理解、安全意識
- 参加中に意識した方がいいこと:上手く行かない箇所が出てきたとき、今のフローを分割し、どの箇所で現状何が上手く行ってないのかをしっかりと把握する。
- インターンを楽しむコツ:ロボットが動けば楽しいと思います。
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の基礎
- 参加中に意識した方がいいこと:ロボットの動作中は緊急停止ボタンから手を離さないこと。危ないかな?と思ったときにすぐ動作を止めること。
- インターンを楽しむコツ:安全に気をつけて!
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を触ったことがあると楽です。
- 工学を学んだことがあると想像しやすいかもしれません。
- 画像処理をしたことがある方がいいです。
- 参加中に意識した方がいいこと:
- 今日何をやるかを明確にする。
- わからないことは聞く。
- インターネットで調べる。
- インターンを楽しむコツ:
- お金がもらえて勉強ができるなんて素敵です。
- 大学の授業では実践的なことはなかなかできないですが、インターンでは長い時間をかけてできます。
1. 自己紹介
- 学校・専攻・学年:東京科学大学・工学院機械系
- 普段扱っているプログラミング言語や研究分野・大学での専攻:Python・機械工学、制御工学、四力(熱力学、流体力学、材料力学、機械力学)
- 興味のある技術領域:制御工学、数値流体力学(CFD)
2. インターンに参加した理由
- 株式会社チトセロボティクスを選んだ理由:私は半年後に研究室配属があり、そこでロボット関連の研究室か数値流体力学の研究室にするか迷っているため、今回のインターンに参加した。御社では、ロボットを用いた開発現場を実体験ベースで知ることができると感じたから。
- 参加前に期待していたこと、チャレンジしたかった技術:産業用ロボットを用いて、大学の講義で学んでいる内容をどのように活用しているのかを知りたかった。また、ロボットを動かすためのコーディングはしたことがなく、C++もやったことのない言語だったため新しい技術を会得したいと思った。
3. インターンで取り組んだ内容
- インターン参加期間:8月末から10月
- 担当したプロジェクトの概要:ピックアンドプレイス開発演習課題
- 使用したプログラミング言語、フレームワーク、ツール:C++、Melfa
- 実装した機能や担当タスクの具体例:使用したロボットとエンドエフェクタとワーク


4. 技術的な学び・成長
- 新しく習得したスキルや技術:C++の基本的なコーディング、画像処理の仕方や知識
- 問題解決のために工夫した点:最終的に達成したい目標から逆算したコーディングをすることが重要であると感じたため、プログラム全体の方針を考えてからコーディングすることを意識した。
- エンジニアやチームから学んだ知識:エンジニアの方々には細かい文法的な質問から自分が実現したいロボットの動き方の実現方法など、どんな質問にも丁寧に答えてくださった。また、プログラミングだけでなく、画像処理の方法に関する基本的な考え方や手法を学ぶことができた。
5. 開発プロセス・チーム体験
- 開発の進め方で印象に残ったこと:ロボットが動くだけではなく、そのコードが他の人が見ても分かるような内容であることや完結に書くことが非常に重要であると感じた。
- チーム開発で経験したこと:コードレビューをしていただくことは初めてで、他の人が見やすいコードを書くように徐々に変えていくことができた。
- 個人開発との違いを感じた点:エンジニアの方から直接、アドバイスがいただけるため、自分のアイデアの方向性が正しいか、より良いアイデアは何かを都度確認することができる。
6. 成果・達成感を得た瞬間
- 実装が形になったときのエピソード:ワークの中心部分がカメラの中心と一致するようにロボットを動かすコードの作成の際、このようにすればできるというイメージはあったが苦戦していた。その際、具体的なコーディングや解決策をエンジニアの方に教えていただきながら、進めていくことで疑問点を解決していった。その中でカメラやロボットのことも学ぶことができ、一つの問題を解決することでこれからも使うことができる汎用的な学びをすることができた。また、この際に自分の手でコードを書いたり、考えをまとめたりすることの重要性も感じることができた。
7. 今後に活かしたいこと
- インターンを通じて磨かれたスキル:ハードとソフトの両面を考えながら開発することができ、ロボットの開発をしていく上で重要な考え方を感じることができた。また、コードを書くための論理的な思考を実際にやることで得ることができた。
- 学業や個人開発に還元したいこと:御社でロボットの現場を学ぶことで、自分が本当にやりたいことが何かを考える大きな材料となった。自分の専門はまだ決めきっていないが、このインターンが将来の決断において大きなものとなると感じている。
- 将来的に挑戦したい領域:具体的なイメージはできていないが、ロボットや流体の分野でエンジニアとして社会課題を解決し、多くの人が自由な時間を過ごせるような社会にしていきたい。
8. これから参加する人へのメッセージ
- 準備しておくと良い知識やスキル:基本的なプログラミングの知識、数学的な知識、制御工学の基礎
- 参加中に意識した方がいいこと:わからないことがあったら、すぐに質問すること
- インターンを楽しむコツ:ロボットやプログラミングのことなど、純粋に生まれた疑問点や気になることを質問してみることが楽しむコツだと感じた。それが直接的に今の課題に関係なくても、そこで聞いたことが今まで大学で勉強したことつながったり、これから開発していく中でつながっていったりすると考えるので、気になったことに素直になることが大切である。
1. 自己紹介
- 学校・専攻・学年:東京農工大学大学院知能情報システム工学専攻
- 普段扱っているプログラミング言語や研究分野・大学での専攻:
- 研究分野:人の認知や、運動を学習する過程についての研究
- 扱うプログラミング言語:Python, C++
- 興味のある技術領域:
ロボット制御、強化学習
2. インターンに参加した理由
- 株式会社チトセロボティクスを選んだ理由:
バイトでは学校で習ったことや今までの経験を活かせないと感じたので、長期インターンをすることを決めました。ロボコンをやっていた経験があったことと、ロボットの緻密な制御に興味があったことが理由で貴社を選びました。 - 参加前に期待していたこと、チャレンジしたかった技術:
画像処理を使ってリアルタイムにものにを追従する技術。開発系の仕事でのコミュニケーションのとり方やマナーなどを知ること。
3. インターンで取り組んだ内容
- インターン参加期間:3ヶ月以上
- 担当したプロジェクトの概要:ピックアンドプレイス
- 使用したプログラミング言語、フレームワーク、ツール:C++, クルーボ, OpenCV, Github
- 実装した機能や担当タスクの具体例:所定の場所に、色の異なるワークを運んで入れる。

4. 技術的な学び・成長
- 新しく習得したスキルや技術:
Githubを使った開発の仕方、画像処理の考え方、VFの基本的な仕組み、クルーボの使い方など - 問題解決のために工夫した点:機能単位で関数にわけ、後で自分が修正しやすいようにした。また、難易度が高いタスクは妥協点を探して簡単に実装し、後で改善していくイメージで、早さ重視の実装をした。
- エンジニアやチームから学んだ知識:
- 新しく作るより、既存のものを活用することをまず考える。
- 私の書く関数は、機能が冗長になりがちであること。
- 処理速度は、単にロボットの速度だけではなく、動作の工夫(移動経路の工夫、VF以外のムーブを増やすなど)によって大きく改善される。
5. 開発プロセス・チーム体験
- 開発の進め方で印象に残ったこと:
- コードレビューをしてもらいながら実装をすすめていく大変さ。
- 日報をつけること。これで過去の失敗の原因や今後の方向性が定まると感じた。
- 朝会。今日何やるかを明確にできて良かった。
- チーム開発で経験したこと:
- 個人開発との違いを感じた点:変数名を適当につけてはいけないという点、わからないことを相談できる点、過去の便利なプログラムがわかりやすい使い方の説明
6. 成果・達成感を得た瞬間
- 実装が形になったときのエピソード:
- ピックアンドプレイスが初めて形になったとき
- 画像処理が困難だった際に、自分の工夫で解決できたとき
- 技術的に乗り越えた課題:
- ワークが作業する位置をなるべく下げることでタクトタイムを短縮させた。
- 背景が映らないよう、画像認識をかける領域を限定することで、認識精度を上げた。
7. 今後に活かしたいこと
- インターンを通じて磨かれたスキル:Githubなど、開発で用いるプラットフォームの扱い方。コーディング能力。また、人に説明する能力と課題解決能力。
- 学業や個人開発に還元したいこと:今回の経験で、開発現場での働き方を理解することができた。今後のキャリアを考える上で大きい経験になったと感じている。また、コード管理や、機能ごとにテストを作るなど開発の仕方で参考になる点は真似したいと思った。
- 将来的に挑戦したい領域:人の能力が拡張できるようなロボット
8. これから参加する人へのメッセージ
- 準備しておくと良い知識やスキル:C++の文法、線形代数の知識、アルゴリズムの知識
- 参加中に意識した方がいいこと:教えてもらったことはメモしておくと良い。わからなかったり悩んだりしたらすぐ相談すること。
- インターンを楽しむコツ:できることが増えると楽しくなります。できることを日々増やしていくイメージで取り組むと良いかもしれません。
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++の基本文法
- プログラミングにおけるデバッグ慣れ
- 新しい物を受け入れる覚悟
- 参加中に意識した方がいいこと:
- 質問を恐れない事
- ロボットは物理的に動くので、作動中はいつでも緊急停止させられる準備をすること
- インターンを楽しむコツ:
- 周りと比較するのではなく、ただただロボットを動かしてる自分に酔う事
- ロボットちゃんを可愛いと思う事
