본문 바로가기
Embedded/Selly : Sejong Delivery

[젯슨나노 프로젝트]자율 주행 배달 로봇 Selly(3)_연습용 로봇 제작과 센서 제어

by 다봄이 2020. 5. 11.

 

자율주행 로봇 구현을 위한 프로세스가 얼추 완성되고 임베디드 시스템과 필요한 센서 모듈이 얼추 준비되었지만 약간의 난관에 맞딱뜨렸다.

팀원 모두 하드웨어를 세밀하게 다뤄본 경험이 그렇게 풍부하지는 않은 상황에서 대형 로봇을 설계하려니 어려움이 뒤따른 것이다. 로봇 동역학과 로봇 프로그래밍에 대해 공부하며 여러 번의 논의 끝에, 이 프로젝트의 핵심은 자율 주행 기술이므로 소프트웨어에 집중하기로 결론 내렸다.

 

하드웨어는 우선 로봇 키트나 차량 프레임을 구매하여 모터의 사용법을 분석하고 센서를 테스트하는 연습용 로봇을 제작하기로 결정하였다.

 


연습용 자동차 키트 조립


현재 우리 팀의 상황에 비추어 보았을 때, 아두이노 차량 키트를 가지고 연습하는 것이 가장 적절할 것이라고 판단하였다. 셀리의 구조로 젯슨 나노에서 명령을 publish하면 아두이노에서 subscribe하여 컨트롤하는 구조를 구상했기 때문이다.

 

 

(노트북 수리 맡기느라 등장한 나의 완전 촌스러운 옛날 노트북)

 

 

아두이노 자동차 프레임 키트를 주문했다. 생각보다 많이 작았다.

2륜구동 자동차 키트로 구매했는데, 방향 및 속도 제어 분석을 위해 앞바퀴는 서보모터를 이용한 방향 제어에 사용되고 실제 속도는 뒷바퀴의 DC모터로 제어되는 키트로 구매했다.

 

프레임 조립에 중요한 것은 서보모터와 DC모터, 모터 쉴드 및 모터 드라이브 정도일 것이라 생각해서 어렵지 않을 거라 기대했는데 생각보다 각 부품을 유기적으로 연결하는 과정이 복잡했다.

설명서도 너무 옛날에 만들어 둔 것 같았다. 설명서와 맞지 않는 부분이 많아서 나중에는 설명서는 거의 참고용으로 사용했다.....

 

 

 

 

그래도 조립하는 과정에서 서보 모터를 이용한 방향 제어 부분과 각 부품 연결 부분 관련해서 많은 공부가 되었고 로봇 제작에 대한 간단한 아이디어를 얻을 수 있었다.

 

 

우리 든든한 팀원님께서 주말동안 혼자서 이렇게 예쁘게 만들어 주었다. 연습용 셀리 베타 로봇 완성!

 


LIDAR : 라이다 센서 제어


 

자율 주행에 가장 기본이 되는 센서에는 카메라 센서와 라이다 센서를 꼽을 수 있다.

카메라 센서는 가장 기초적인 데이터를 수집하는 눈의 역할을 하고, 라이다 센서는 레이저를 이용한 빛의 반사 원리를 이용해 물체와의 거리를 탐지하는 역할을 하기 때문에 두 센서의 결합은 필수적이다.

 

 

 

간단한 테스트를 위해 ROS로 구동하고 rviz로 디스플레이 해 보았다. 사무실 책상이 지저분해서 뚜렷하진 않지만 센서를 기준으로 주변 물체와의 거리가 빨간색 점으로 나타나고 있음을 알 수 있다.

 

ROS 파이썬의 LaserScan 모듈을 이용하여 LaserScan 데이터 중 필요한 정보들만 퍼블리싱하여 간단한 라이다 센서를 부착한 로봇을 완성했다.

 

 


연습 로봇 구동

 

 

 

젯슨 나노에서 dc모터 속도와 방향 토픽을 ROS publish하면 아두이노에서 ROS subscribe하는 구조로 간단한 연습로봇 주행 테스트를 하였다. 모터 제어를 위해 젯슨 나노에 아두이노를 설치하고 모터 센서들을 연결해서 제어한다.

아두이노에 ROS를 통해 메시지를 전달하기 위해 rosserial을 설치하여 시리얼 통신을 사용하고, 키보드로 방향을 제어하기 위해 pygame을 설치하여 핸들러를 사용한다.

키보드로 로봇 주행을 구동시켰고, '전진' 키를 한 번 누를 때 마다 모터의 속도가 증가한다.

댓글