Unity AI 2021 인턴: 로봇 공학을 통한 과제 해결
AI@유니티는 로봇 공학, 컴퓨터 비전, 머신러닝 분야에서 놀라운 연구와 제품을 개발하고 있습니다. 여름 인턴들은 실제 제품에 영향을 미치는 AI 프로젝트에 참여했습니다.
로봇이 더욱 정교해지고 로봇 작업이 더욱 복잡해짐에 따라 시뮬레이션의 필요성이 증가하고 있습니다. 시뮬레이션을 사용하면 개발자가 테스트해야 하는 모든 시나리오를 구현하기 위해 실제 로봇을 보유할 필요가 없으므로 확장할 수 있습니다. 또한 개발 중 특정 작업, 특히 로봇이 완전히 배포될 때까지 수행할 수 없는 작업을 개발 및 테스트할 수 있습니다. 유니티 로보틱스 팀은 유니티 엔진의 성능, 에셋, 통합성을 활용하여 로봇 시뮬레이션을 구현하는 동시에 시뮬레이션 기능을 확장하는 로봇 전용 툴과 패키지를 제작하는 데 주력하고 있습니다. Unity 로보틱스 허브에는 로봇 시뮬레이션을 바로 시작할 수 있는 데모, 튜토리얼, 패키지가 마련되어 있습니다.
2021년 여름 동안 유니티 인턴들은 유니티의 업무에 가치 있는 기여를 하기 위해 열심히 일했습니다. 다음 섹션에서 이들의 프로젝트와 경험에 대해 읽어보세요.
올여름, 저는 로봇 팀의 일원으로 역운동학 및 로봇 컨트롤러를 Unity에 통합하는 작업을 할 수 있는 놀라운 기회를 가졌습니다. 사용자가 로봇, 특히 로봇 팔을 시뮬레이션해야 하는 경우 실제 로봇을 제어하는 데 사용하는 것과 동일하거나 유사한 API를 사용하여 로봇을 제어해야 합니다. 이러한 API를 로봇 컨트롤러라고 하며, 로봇을 한 위치에서 다른 위치로 이동하거나, 관절 공간에서 단일 관절을 이동하거나, 로봇을 원을 그리며 이동하는 등 다양한 기능을 제공합니다. 로봇 컨트롤러는 주로 조인트 공간에서 작동합니다. 즉, 명령은 각 조인트에 대한 목표 각도로 주어집니다. 그러나 인간은 데카르트 공간(즉, 3D 세계의 X, Y, Z 좌표)에서 엔드 이펙터의 위치와 방향에만 관심을 갖습니다. 따라서 역 운동학의 목표는 데카르트 공간에서 주어진 위치와 방향에 해당하는 관절 각도를 결정하는 것입니다. 역운동학은 로봇 공학자의 툴킷에서 매우 중요한 부분으로, 이 패키지를 사용하면 Unity를 로봇 공학 시뮬레이션 플랫폼으로 더욱 강력하고 쉽게 사용할 수 있습니다.
이러한 기능을 Unity에 통합하는 것은 선형 대수학, 물리학, 미적분학, 컴퓨터 과학, 심지어 미적분학 전 단계의 기술까지 습득해야 하는 엄청난 도전이었으며, 동시에 가장 사용자 친화적인 방식으로 소프트웨어를 설계해야 하는 일이었습니다. 또한 사용자가 VR에서 큐브를 움직이면 로봇 팔이 따라가는 데모를 만들면서 VR에서 산업용 로봇을 시뮬레이션하는 방법을 배웠습니다. 하지만 도전에는 큰 기회가 따르기 마련이고, 로봇 공학자를 지원하는 기본 코드를 혼자서 효과적으로 설계, 빌드, 출시하는 것은 정말 영광스러운 일이었습니다. 직원들이 매일 매일의 업무에 기대감을 갖고 지속적으로 도전하는 것은 매우 드문 일인데, 저는 유니티에서 그런 경험을 할 수 있어서 정말 행운이라고 생각합니다!
산업용 애플리케이션에서는 복잡한 작업을 수행하기 위해 서로 다른 전문 기능을 갖춘 여러 로봇이 함께 작동해야 합니다. 이 프로젝트는 창고에서 물건을 찾고 운반하는 작업을 수행하기 위해 Unity 에디터와 로봇 시뮬레이션 패키지, ROS 2를 사용하여 여러 로봇 간의 협업을 어떻게 구현할 수 있는지 보여줍니다. 이 데모는 이와 같은 멀티 에이전트 시뮬레이션을 수행하기 어려운 다른 로봇 공학 시뮬레이션 툴에 비해 Unity를 사용하면 얻을 수 있는 이점을 강조합니다. 저희 시뮬레이션은 Findbot과 Ferrybot이라는 두 가지 유형의 로봇으로 구성됩니다. 여러 개의 Findbot이 머신러닝을 사용하여 창고 환경에서 대상 큐브를 찾고, 하나의 Ferrybot이 지정된 위치로 이동하여 큐브를 픽업하고 내려놓는 역할을 담당합니다. 이를 위해 각 Find봇에는 큐브를 감지하는 카메라가 장착되어 있고, Ferry봇에는 큐브를 집어 올리는 로봇 팔이 있습니다. 이 예제 프로젝트는 자체 시뮬레이션에 Unity의 로봇 툴을 사용하려는 로봇 공학 개발자 및 연구자에게 유용합니다.
전반적으로 다양한 Unity 패키지를 사용하고 프로젝트에 통합할 수 있어서 좋은 경험이었습니다. 예를 들어, 데이터 수집을 위해 컴퓨터 비전 인식 패키지를 사용하여 포즈 추정 모델을 훈련했습니다. 또한 페리봇에서 역운동학 패키지(위 제이콥의 프로젝트에서 언급한)를 사용하여 큐브를 집어 올렸습니다. 저희 프로젝트와 병행하여 개발 중인 프로젝트에 종속되는 것도 큰 도전이었지만, 협업과 소통을 배울 수 있는 좋은 기회였습니다. 또한 저희 프로젝트가 ROSCon 2021 워크숍을 준비하는 데 사용된다는 사실에 매우 보람을 느낍니다.
유니티와 함께 도전적인 인공지능 프로젝트를 진행하며 실제 경험을 쌓고 싶다면 유니티의 대학 채용 페이지를 확인해 보세요. Unity 로보틱스 허브의 데모와 튜토리얼을 통해 집에서 직접 경험을 구축할 수 있습니다.