상세 컨텐츠

본문 제목

지능형 로봇 조작 프로젝트

컴퓨터

by 잘못된 선택 2021. 10. 2. 23:21

본문

로봇 지능 체계의 기본 구성은 PM, CM, TM, AM 입니다.

PM(Perception Manager) : 환경 정보를 인식하는 모듈

CM(Context Manager) : PM으로부터 인식한 환경 정보를 바탕으로 상황 정보를 추론하는 모듈

TM(Task Manager) : 추론된 상황으로 부터 행동을 계획하는 모듈

AM(Action Manager) : TM으로부터 전달받은 행동을 수행시키는 모듈

 

각 모듈은 ROS(Robot Operating System) 통신으로 메세지를 주고 받도록 구현하였습니다.

노드(통신을 하는 주체)간의 통신은 topic, service, action으로 나뉘는데 topic은 서버가 메세지를 날릴때마다 구독된 클라이언트가 메세지를 받는 통신이고, service는 클라이언트의 요청에 의해 한번의 메세지 통신을 서버로부터 받게되는 통신입니다. 통신 부하를 고려하여 노드간에 ros topic과 ros service를 적절하게 사용하였습니다.

 

처음 진행했던 프로젝트는 v-rep(CoppeliaSim) 환경에서 jaco 팔을 이용하여 물체 옮기기 프로젝트입니다.

물체 옮기기(vrep).mp4
7.07MB

이때 맡은 주요 역할은 AM이고, TM으로부터 명령받은 행동을 Moveit으로 구현하였습니다. 에러없이 돌아가는 환경을 조성하는 작업이 끝난후 시뮬레이션 환경 안에서 각 물체의 물리 정보에 따른 문제점을 수정하고(물체의 크기나 무게를 조정하여 jaco가 잘 옮길 수 있도록 만든다) 반복 작업을 통하여 원하는 행동을 수행하기 위한 jaco의 action path를 계획합니다.

 

다음으로 진행했던 프로젝트는 gazebo 환경에서 jackal+jaco를 이용하여 편의점 관리 로봇 구현 프로젝트입니다.

편의점 로봇.mp4
7.37MB

편의점 관리를 위해 움직일 수 있는 navigation robot model로 jackal을 선택했고 상품을 들고 옮기기 위한 arm robot model로 jaco를 선택하여 jackal 위에 jaco를 얹은 형태의 로봇을 사용했습니다. 우선 다른 친구가 robot의 결합 작업을 작업하였고 저는 jackal 앞부분에 카메라를 다는 작업을 진행하였습니다. 이후 과거 AM을 조작했던 경험을 살려서 각 행동을 수행시키는 작업을 진행하였습니다. 이번에는 과거의 단순했던 작업과 비교하면 navigation으로 인해 로봇의 위치도 항상 변화된다는 점과 카메라에 인식된 물체의 정보를 통해 판단하고 path plan을 해야 한다는 점 등 제약 사항이 많기 때문에 좀더 세밀한 작업이 필요했습니다. 

 

 

마지막으로 진행했던 로봇 관련 프로젝트는 vrep과 gazebo로 구현하는 클라우드 멀티 로봇 프로젝트입니다. 

해당 프로젝트를 설명한 자료 : https://choice37.tistory.com/83

 

Gazebo 환경 개발 프로젝트

gazebo는 로봇을 움직이기 위한 3d 시뮬레이션 환경이고, ROS를 사용하여 통신을 할 수 있습니다. 실제 공장에서 로봇이 자동으로 화물을 나르는 것을 목표로 프로젝트가 진행 중이였고, 저는 실제

choice37.tistory.com

이 프로젝트에서는 실제 공장, 실제 로봇과 유사한 환경, 로봇을 만드는 것부터 시작하였습니다. 공장과 관련된 gazebo 공개코드를 조사하여 환경을 꾸미고, rb1_base라는 공개된 gazebo 로봇을 변형하여 amr_lift와 동일한 역할을 할 수 있도록 만들었습니다. 이후 ROS 통신을 통하여 로봇에게 명령을 내리거나 환경을 조작하도록 구현하였습니다. 해당 프로젝트에서는 총 4대의 로봇이 등장하게 됩니다. 따라서 전체 상황을 판단하고 적합한 로봇에게 역할를 부여하는 클라우드가 존재하고, 각각의 로봇은 현재 자신의 상황을 판단하고 움직이게 됩니다.

 

 

관련글 더보기

댓글 영역