Robotic Craft_ToolPath for Hot-wire Cutting by Minjae Ko

Robot의 Target은 Plane의 개념으로, 같은 점이더라도 로봇의 툴 끝을 제대로 Orient시킬 수도 있고, 없을 수도 있음.

Robot의 Target은 Plane의 개념으로, 같은 점이더라도 로봇의 툴 끝을 제대로 Orient시킬 수도 있고, 없을 수도 있음.

 룰드서피스를 이루는 직선들의 집합은 그 자체로 열선이 지나가야하는 ToolPath 와 같다.

다만, 로봇팔의 끝이 따라가는 툴패스는 단순 포인트의 집합이 아닌  평면의 집합이므로, 특정한 룰드서피스의 면을 구성하는 직선과 점의 집합은 절대적이나, 로봇의 툴인 열선이 지나갈수 있는 방법은 여러가지다. 

  로봇 플랜지에 장착되는 열선 툴 끝의 Center Position Plane을  Target Plane에 Orient함으로써  동작을 취하게 되는 원리이다.  

 룰드서피스의 두 커브를 등분한 점들을 잇는 선분의 중점을 중심으로하는 Target plane을 지정할 수 있다. 이때, Target Plane의 Z방향 백터는 로봇의 플랜지 방향을 결정하게 되므로, 열선과 평행한 상태를 유지하면서, 가공이 용이한 Target Plane을 찾는것이 중요하다. Target Plane에 따라 로봇이 매우 위태로운 자세로 가공을 하게 되거나, 가공이 불가능할 수도 있고, 무리없이 가공할 수도 있을 것이다.

 Target Plane에 따른 동작 변화

 Target Plane에 따른 동작 변화

 워크샵 레퍼런스로 제공될 Grasshopper 알고리즘에는,  Wrist Point라 명명한 Attractor의 조작을 통하여, 적절한 Target plane을  찾고, 로봇 열선툴을 이용한 가공을 할 수 있도록 해두었다. 적절한 Target Plane을 찾는 방식은 Attractor를 어떤 방식으로 정의하는가, 혹은 전혀 다른 방법을 통한 여러가지 아이디어가 있을 수 있다. 

Robotic Craft_Ruled Surface for Hot-wire Cutting by be architekt

TechCapsule_Robotic Craft in the City 워크샵 도움말 입니다. 

룰드 서페이스는 기본적으로 두개의 선(직선, 곡선)으로 형성되는 면을 일컫는 단어이다. 

aa.jpg

룰드 서페이스는 두 선을 연결하면서 두 선사이에 존재하는 선분들로 이루어진 면을 뜻하며, 선분의 양끝에 해당하는 시작점과 끝점의 위치를 선상에서 변화시킴으로서 발생하는 선분의 위상 변화로 인하여 면의 형태가 쉽게 바뀌기도 한다.

그래스호퍼에는 Ruled Surface 컴포넌트가 존재한다. 이 컴포넌트를 사용하여 면을 생성하다 보면 그 원리를 쉽게 파악 할 수 있다.

칼로 사과를 깍아본 사람이라면 일직선의 툴로 동그란 형상을 정확하게 구현하는 것이 어렵다는 것을 느꼈을 것이다. 룰드 서페이스는 일직선의 열선으로 가공 가능한 비정형의 면을 만들수 있는 아주 좋은 방식이다.

열선으로 가공한 룰드 서페이스 형상 (예시)

열선으로 가공한 룰드 서페이스 형상 (예시)

Robotic Craft_How to use GERTY_License.zip by be architekt

1. 다운 받은 ZIP 파일의 압축을 풉니다. 

2. 라이노와 그래스호퍼를 실행하여 GERTY_License.gh 파일을 실행합니다. 

22.jpg

3. A: 라이센스 유형(Trial, 학생: Academy, Business) -> Trial 로 적어 주세요. / B: 소속(예, University of Seoul) / C: 이메일 주소 / D: 성함(영문)

4. A, B, C, D의 작성이 완료된 후  E: 클릭 False -> True

3-1.jpg

5. Physical Address 를 반드시 확인하여 주세요. 확인 후 패널에 나와 있는 정보를 contact@b-at.kr로 보내면 됩니다. 정보 복사 방법은 6.과 같습니다. (주의. 패널의 디폴트 컬러는 노란색입니다.)

6. 패널위에 마우스의 커서를 올려놓고 오른쪽을 클릭한 후, 'Copy Data Only' 를 클릭합니다. 그리고 나서 메모창 또는 메일쓰기 창을 열어 붙여넣기(paste) 한 후 그 파일을 보내면 됩니다.

Matters for robotic milling by Minjae Ko

 밀링을 사용하기 위해서 필요한 것은 크게 두 가지로 로봇에 장착할 스핀들, 스핀들을 로봇의 6번축과 고정할 플랜지의 계획이다. Aliexpress 를 통해 저렴한 중국산 스핀들을 구매가능하며, 배송은 일반적으로 10일에서 15일 정도 걸린다.  IRB1200에 사용할 스핀들로 500W 스핀들을 구매하였고, 스핀들의 연결은 Aliexpress의 상품 정보 및 youtube 등으로부터 정보를 얻을 수 있다.

 스핀들을 고정할 플랜지는 3D printing 제작용으로 계획하였고, 엔드밀이 6번축 plane으로부터 45도 방향으로 가공할 수 있도록 고안하였다. 팬던트의 Loadidentity 를 통해 얻어진 스핀들 및 플랜지의 Mass와 Center of Gravity 값은 Grasshopper를 통해 Rapid 모듈에 툴 정보를 반영할 수 있도록 한다.  

Robotic Brick Laying by be architekt

그림/6축 산업용 로봇을 활용하여 쌓은 벽돌벽(크기: 폭 11m, 높이 1m80cm)

개요

현재 산업용 로봇, 즉 6축 이상의 다관절 로봇은 단순 반복 그리고 정교함이 필수로 요구되는 자동차 차체 제작과 같은 특수목적의 자동생산라인에서 주로 사용되고 있다. 건축분야 역시 로봇의 활용은 건설 현장의 공기 단축이나 원가 절감 등 생산의 자동화가 필요한 영역에서 한정적으로 이루어지고 있을 뿐이다.

산업용 로봇을 활용하여 건축 부재의 제작 과정을 자동화하고, 기존에는 구축하기 어려웠던 건축물을 구축하는 것은 분명 미래 건축 및 디자인 산업을 고부가가치화 하는데 매우 중요한 요소가 될 것이다.

배경

로보틱스와 로봇이 지칭하는 정의와 범주는 간단명료하지만 방대하다. 로보틱스는 로봇공학이다. 로봇의 형태, 구조에서부터 로봇의 동작을 제어하는 소프트웨어에 이르기까지 로봇과 관련한 기술을 연구 및 개발하는 분야이다. 로봇은 단어 그대로, 로봇이다. 다만 이것이 사람들에게 실제로 통용되고 있는 것보다 무척이나 넓은 범위를 지칭한다. 쉬운 예로, 3D 프린터, 레이저커터 등 대부분의 공작기계들 역시 로봇 기술이 적용된 로봇이다.

건축으로 범위를 좁혀, 1980년대 일본 경제 활성화의 핵심요소였던 건설로봇(Construction Robotics)와 비교하여 현재의 ‘로봇을 활용한 제작(Robotics Fabrication)’은 단일 작업(예 페인트, 용접 등)의 자동화를 목적으로 탄생된 로봇이 아닌, 규격화된 로봇(예 산업용 로봇, 드론 등)이 다양한 방식으로 디자인 및 제작 과정에 활용된다는 것이 가장 커다란 차이점이다. 따라서 이번 프로젝트의 목적, 즉  ‘로봇을 활용한 벽돌벽 쌓기’를 실현하기 위해서는, 이에 적합한 시스템 구축이 필수이다. 한 예로, 6축의 산업용 로봇에는 여러 개의 축, 즉 관절이 존재하는데, 이것을 활용하기 위해서는 가공하려는 모델링 정보를 각 관절의 위치와 자세 정보로 치환해주는 시스템이 기본적으로 요구된다. 이와 더불어 중요한 것은, 가공하려는 것의 형태와 재료의 물성을 파악 할 수 있는 정보의 준비와 그것들에 최적화된 로봇 행위프로그래밍의 중요성을 인지하고 이를 시행하는 것이다.

방법

로봇 제작사에서 제공하는 기존의 소프트웨어는 일반 건축가 또는 디자이너가 사용하기에 어려운 면이 굉장히 많다. 이는 아마도 대부분의 시스템이 자동차, 비행기, 선박 생산과 같은 기존 대형 산업의 자동화에 초점이 맞춰져 있기 때문일 것이다. 일례로 건축의 경우, 하나의 건물을 구성하는 수십, 수백 가지 재료로 구성된 부재들을 생산하기 위해서는 굉장히 다양한 행위, 예를 들자면 쌓고(벽돌), 구부리고(철판, 파이프), 자르고(철사, 갈바), 뿌리는(시멘트) 등의 것들이 필요하다. 하지만 기존의 소프트웨어들은 디자인된 형태를 기반으로 이와 같은 다양한 행위를 로봇이 구사하도록 하는 것이 그리 쉬운 일이 아니다. 특히 비전공자들에게 이는 거의 불가능에 가까운 일이다. 따라서 우리 팀은 건축 및 디자인 분야에서 널리 활용되고 있는 라이노(Rhinoceros, 3D CAD 소프트웨어)의 플러그인인 그래스호퍼(Grasshopper) 기반의 산업용 로봇 조종 플러그인을 개발하고, 더불어 벽돌벽의 디자인과 시뮬레이션이 가능한 플러그인 역시 개발하여 벽돌벽을 쌓는 것을 이번 프로젝트의 목표로 삼았다.

라이노와 그래스호퍼 기반의 산업용 로봇 조종 플러그인

– 역, 정기구학 기반의 시뮬레이션

   (정기구학과 역기구학에 대한 이론적인 설명은 정기구학, 역기구학 또는 inverse kinematics, forward kinematics로 검색해보면 많은 자료들을 찾아볼수 있다. 추가로 서울대학교 박종우교수님의 로봇공학입문 동영상 강의를 링크하였다.)

   사용자가 자신이 원하는 로봇의 이동경로(툴패스)를 생성한 뒤, 이를 기반으로 한 로봇의 움직임을 정확하게 시뮬레이션 해볼수 있으며, 시뮬레이션 중에 발생하는 충돌, 특이점 등과 같은 문제점을 파악할수 있다.

   시뮬레이션 영상 (ABB사의 로봇 스튜디오와 자체 개발 플러그인 비교 영상)

– 오프라인 프로그래밍(Off-line)

– 툴(Tool or End-effector) 등록 및 조종

– 로봇 데이터베이스 구축

   사용자가 로봇 메이커와 로봇의 기종을 입력하면 시뮬레이션 해볼 수 있는 데이터베이스 구축

벽돌 플러그인

로봇 기반의 벽돌 쌓기는 각 벽돌이 쌓일 위치 그리고 아래위 양옆에 놓일 벽돌간의 상관관계를 모두 고려한 최적화가 필요하다. 뿐만 아니라, 벽의 안정성 확인을 위한 시뮬레이션 역시 필요하다.

벽돌벽 디자인 및 시뮬레이션 영상 

  •    청색: 아래 벽돌과 윗벽돌 간의 겹치는 면적(%, 기본 60%로 설정)
  •    적색: 옆 벽돌 간의 충돌 감지

BAT (산업용 로봇 조종 + 벽돌 플러그인)

가공, 즉 쌓기의 과정에서는 벽돌벽이 위치할 사이트의 현황과 바닥의 평탄화 작업에서부터 벽돌의 앞뒷면 그리고 벽돌을 집고 놓는 과정 등에서 로봇이 사람과 유사한 행위를 할 수 있도록 고려하는 세심한 프로그래밍이 필수이다. 벽돌을 집고 놓는 과정에서 벽돌 자체의 미세한 높이값 차이에 의한 로봇과의 충돌이나 벽돌을 이송하는 과정에서 이미 쌓여져 있는 벽돌과의 충돌, 로봇행위와 그리퍼의 동기화 등을 모두 고려하여야 한다.

 로봇으로 벽돌벽 쌓기 시뮬레이션 영상

전체 시스템

그림/전체 시스템 개요도

사용자가 디자인과 시뮬레이션을 완료한 후, 로봇의 콘트롤 박스에 데이터를 입력하기 위해서는 로봇의 행위를 프로그래밍하여야 한다. 특히 이번 프로젝트의 경우, 로봇이 벽돌을 집고 놓는 동작을 반복적으로 취하게 되는데, 이때 벽돌의 무게가  로봇의 각축에 장착되어 있는 모터에 많은 영향을 끼치게 된다. 기본적인 크기의 벽돌벽에는 대략 3000장 이상의 벽돌이 사용되는데, 작은 무게이지만 로봇이 같은 동작을 3000번 이상 반복해서 시행할 경우, 모터의 수명 단축 등 벽돌의 무게가 로봇에 끼치게 되는 영향이 매우 커질 가능성이 높다. 따라서 각축의 모터가 무게 변화에 올바르게 대응할 수 있도록 로봇의 행위를 프로그래밍 해주는 것이 중요하다.

따라서 아래와 같이 벽돌을 집게될 그리퍼의 무게와 벽돌의 무게 그리고 이들과 관련한 토크에 관한 데이터값을 입력하고, 로봇이 벽돌을 집고 놓았을때 발생하는 무게 변화에 대응할 수 있도록 하였다.

PERS tooldata brickgripper1 := [true,[[0,0,0],[1,0,0,0]],[1.7,[0.8,0,122.5],[1,0,0,0],0,0,0]];
PERS loaddata brick1 := [2,[0,0,-28.5],[1,0,0,0],0,0,0];

MoveJ p0, v400, fine, brickgripper1;

PROC Open()
   WaitTime 1.3;
   SetDo do10_1, 1;
   WaitTime 0.3;
   GripLoad load0;
   WaitTime 0.8;
 ENDPROC
 PROC Close()
   WaitTime 1.3;
   SetDo do10_1, 0;
   WaitTime 0.3;
   GripLoad brick1;
   WaitTime 0.8;
 ENDPROC

중간중간에 보이는 SetDo do10_1, 0; 는 로봇 콘트롤러에서 솔레노이드 밸브에 디지털 신호를 보내기 위한 코드이다. 기본적으로 로봇 콘트롤러에서는 12v의 디지털 신호가 생성된다. 그리고 솔레노이드 밸브의 기본 전력은 24v이다. 따라서 아래 이미지와 같이 12v에서 24v로의 전환 키트를 제작하였다.

그림/트랜지스터를 사용한 12v -> 24v 전환 with 김성수(what to make 대표)

오른쪽 이미지에서 노란 선은 로봇의 컨트롤러의 12v 디지털 신호 생성 포트와 연결되어 있다. 그리고 초록색선은 솔레노이드 밸브의 +, 흰색선은 솔레노이드 밸브의 -와 연결되어 있다.

그림/솔레노이드 밸브

그림/평행 그리퍼(Parallel Gripper)

시스템을 활용한 벽돌벽 쌓기 동영상 및 이미지

그림/과학관 내 테스트 이미지

그림/과학관 내 테스트 이미지

그림/과학관 내 테스트 이미지

그림/과학관 내 테스트 이미지

 과학관 내 1차 테스트 영상

과학관 내 2차 테스트 영상

현장 작업 영상

로봇의 크기가 작은 관계로 아래 이미지와 같이 전체 벽을 등분하여 제작하였다. 벽돌간의 접착에는 석재 에폭시를 사용하였다.

  

 

최종 결과 이미지

  

앞으로의 건축은 양산이 문제가 아니라 질의 문제이다. 머릿속 상상으로만 존재하던 복잡한 형태의 건축물이 로봇을 이용함으로서 현실속에 자리잡는 것이 가능해진다. 결국 건축과 로봇 산업의 융합에서 유발되는 건축적 수요의 최대 수혜자는‘상상의 건축물 구현’이 될 것이다.