協働ロボット制御ソフトウェア
人のそばで一緒に働く産業用協働ロボットの、制御装置で動くソフトウェアを開発しました。こうしたロボットは、溶接・組立・物流のように人が一緒にいる工程に入ります。画面を描くアプリと違い、コードが実際の機械の動きにつながる環境なので、誤った状態処理やデータの誤りがそのままロボットの動作の誤りになります。入力値、状態の変化、例外を保守的に扱うことを基準にしました。作業は制御機能のモジュール構造と、設定値・制御状態を保存して読み出すデータ管理にわたります。
コードがそのまま機械の動きになる制御ソフトウェア
協働ロボットは製造現場で人と並んで作業するように作られた産業用ロボットで、そのロボットの制御装置で動くソフトウェアを開発しました。協働ロボットは関節ごとに力を測るセンサーを備え、人との接触のような小さな力でも感知すると止まるように作られています。ユーザー画面を描くアプリと違い、このコードは実際の装置の動作に直接つながります。入力値、状態の変化、例外処理は、アプリを作るときよりも保守的に扱いました。

制御単位ごとに分け、必要なデータだけが行き来するモジュール
協働ロボットの制御ソフトウェアでは、ロボットの制御機能を制御単位ごとのモジュールに分けて実装しました。モジュールごとに独立して動き、必要なデータだけをやり取りするようにして、制御ロジックの複雑さが一か所に集まらないようにしました。一つのモジュールを直すときに、ほかの制御機能まで一緒に手を入れなくて済む構造です。

設定値と制御状態をデータベースに置く管理方式
協働ロボットの制御に使う設定値、制御状態、装置の動作に必要なデータを、データベースに保存して読み出す構造を実装しました。制御コードがデータを読み書きする経路を整理し、データへアクセスする流れがいくつにも散らばらないようにしました。装置の動作がこのデータに従うため、値一つの誤りでも動作の誤りにつながり得ました。

機能より安定した動作を先に置いた制御の流れ
協働ロボットは実際の物理的な装置とつながっているため、誤った状態処理やデータの誤りがそのまま動作の誤りになります。制御データとコードの流れを慎重に扱い、機能を加えることより安定して動くことを先に置きました。画面中心のアプリ開発と違い、この分野では装置の動作の安定性と制御ロジックの信頼性が結果を左右します。

この仕事のポイント
制御単位ごとに分け、必要なデータだけをやり取りするモジュール構造
設定値・制御状態をデータベースに保存して読み出す制御データ管理
入力値・状態の変化・例外を保守的に扱った装置制御の流れ
インサイト
GA4 client_storage: 'none'은 정말 쿠키를 막을까?
두 달 전 이 블로그에 「GA4 쿠키 없이 쓰기」라는 글을 썼습니다. clientstorage: 'none' 으로 쿠키 저장을 끄고, 자체 분석이 쓰던 익명 ID 를 clientid 로 넘기면 쿠키 0개로 GA4 를 쓸 수 있다는 내…
GA4 Measurement Protocol: gtag.js 없이 서버에서 이벤트 보내기
랜딩 페이지의 전송량을 파일 단위로 쪼개 보다가, 가장 큰 파일이 우리 코드가 아니라는 것을 알았습니다. Google Analytics 의 gtag.js 였고, 방문 한 번에 176KB 를 받고 있었습니다. 페이지 전체가 1,094K…
중소 제조업 AI 도입 순서: DX를 먼저 끝내야 할까?
공장을 가진 중소·중견 제조기업 16만여 곳 가운데 스마트공장을 도입한 곳은 19.5%입니다. 회사가 작을수록 이 비율은 더 떨어집니다. 중소벤처기업부가 2025년 4월에 낸 제1차 스마트제조혁신 실태조사 결과입니다. 그림: 기업 규…
Next.js loading.tsx와 404: 버튼이 화면보다 먼저 살아나게 하기
관리 화면 왼쪽 위에 사이드바를 접고 펴는 ☰ 버튼이 있습니다. 폭 하나 바꾸는 버튼인데, 대시보드에서 누르면 2초 넘게 아무 반응이 없었습니다. 레이아웃만 바꾸는 일이 왜 이렇게 오래 걸리는지부터 들여다봤습니다. Next.js 16…



