본문 바로가기

Embedded13

[젯슨나노 프로젝트]자율 주행 배달 로봇 Selly(7)_Cartographer SLAM 개발 환경 : ubuntu 18.04, ROS melodic 사용한 센서 : zed 카메라(zed2), ydliar x4 사용하는 카메라 센서에서 odometry와 imu topic도 publish하기 때문에, 위 센서 데이터를 사용했다. cartographer docs에 따르면 2d SLAM에서는 imu data는 있어도 그만 없어도 그만이라는 것 같아서 우선 odometry 토픽만 사용했다. cartographer 구동을 위해 필요한 odometry 데이터는 odom이라는 토픽으로 subscribe된다. rostopic list -p를 통해 zed 카메라에서 퍼블리싱하는 모든 ros 토픽은 zed2/zed_node/topic의 형태로 이루어져 있음을 확인하고 published topic을 remap했.. 2020. 5. 12.
[젯슨나노 프로젝트]자율 주행 배달 로봇 Selly(6)_로봇 프레임 기초작업 지난 한 달 간 이번 자율주행 배달 로봇 프로젝트를 진행하며 예상치 못한 난관에 부딪혔다. 다름 아닌 하드웨어 제작 부분에서이다. 팀원 모두 정교한 하드웨어 설계 경험은 없지만 사실상 자율주행은 소프트웨어가 대부분의 역할을 차지하기 때문에 크게 신경 쓰지 않았었다. ? 억 단위? ...................................?? ...이에 우리 팀은 로봇 하드웨어를 직접 제작하기에 이른다. 시장 조사 - 구로 중앙유통단지 우선 사용하기로 결정한 디바이스 마트의 부품들은 다음과 같다. http://www.devicemart.co.kr/main/index 이 외에도 대부분의 하드웨어 부품은 모두 위의 디바이스마트에서 구매했다. 그런데 타이어 상세 정보에 정확한 타이어 크기(타이어 두께)가 .. 2020. 5. 11.
[젯슨나노 프로젝트]자율 주행 배달 로봇 Selly(5)_SLAM 테스트 자율 주행 기술에서 빠지지 않고 등장하는 기술에 SLAM 기술이 있다. 자율 주행을 위해서는 로봇 스스로가 위치를 추정(navigation)할 수 있어야 하는데, 이를 위해 지도를 작성(mapping)하는 과정에서 사용되는 기술이다. SLAM : Simultaneous Localization And Mapping SLAM이란 이름에서 알 수 있듯 자율 주행에 필수적인 스스로 위치 추정을 할 수 있게 도와주는 기술이다. 초기 상태에서 주행하며 얻은 정보를 바탕으로 자신이 주행하는 공간에 대한 지도를 그린 후 다음 주행에서는 내장된 지도를 이용하여 자신의 위치에 대한 추정을 도와주는 기술이라 할 수 있다. ​ https://google-cartographer-ros.readthedocs.io/en/lates.. 2020. 5. 11.
[젯슨나노 프로젝트]자율 주행 배달 로봇 Selly(4)_라이다 센서를 이용한 주행 컨트롤 아주 간단한 주행과 방향 컨트롤 테스트를 해 보았다. ​ 서보모터를 이용해서 방향 제어를 하는 이륜 구동 자동차 프레임을 사용해서 제자리 회전이 불가능한 점이 문제가 된다. 제자리 회전 뿐만 아니라 커브할 수 있는 각도에도 제한이 있어 장애물을 회피하려면 후진해서 거리를 벌려놓고 돌아가야 하는 문제 때문에, 각 바퀴에 DC모터를 달아 방향을 자유롭게 조절하는 로봇을 구상 중이다. 2020. 5. 11.
[젯슨나노 프로젝트]자율 주행 배달 로봇 Selly(3)_연습용 로봇 제작과 센서 제어 자율주행 로봇 구현을 위한 프로세스가 얼추 완성되고 임베디드 시스템과 필요한 센서 모듈이 얼추 준비되었지만 약간의 난관에 맞딱뜨렸다. 팀원 모두 하드웨어를 세밀하게 다뤄본 경험이 그렇게 풍부하지는 않은 상황에서 대형 로봇을 설계하려니 어려움이 뒤따른 것이다. 로봇 동역학과 로봇 프로그래밍에 대해 공부하며 여러 번의 논의 끝에, 이 프로젝트의 핵심은 자율 주행 기술이므로 소프트웨어에 집중하기로 결론 내렸다. 하드웨어는 우선 로봇 키트나 차량 프레임을 구매하여 모터의 사용법을 분석하고 센서를 테스트하는 연습용 로봇을 제작하기로 결정하였다. 연습용 자동차 키트 조립 현재 우리 팀의 상황에 비추어 보았을 때, 아두이노 차량 키트를 가지고 연습하는 것이 가장 적절할 것이라고 판단하였다. 셀리의 구조로 젯슨 나노에.. 2020. 5. 11.
[젯슨나노 프로젝트]자율 주행 배달 로봇 Selly(2)_ROS 기반의 로봇 소프트웨어 구상 로봇 하드웨어 보드 : jetson nano 우선 로봇 하드웨어로는 딥러닝 연산을 위해 GPU가 있는 NVDIA의 jetson nano를 사용하기로 했다. https://www.nvidia.com/ko-kr/autonomous-machines/embedded-systems/jetson-nano/ 프로젝트 워크플로우에 대한 프로세스를 대략적으로 구상하고 가장 기초 작업으로 로봇에 부착된 센서들을 제어하고 방향 전환, 속도 증가 등 로봇 동역학을 제어하는 역할의 로봇 소프트웨어를 구상하였다. ​ 초기 구상 아이디어는 python에서 직접적으로 제어하는 소프트웨어였다. 그러나 단일 쓰레드로 운영되는 파이썬으로는 여러 센서의 데이터를 동시에 받아오는 것이 불가능했고, 센서 간 데이터 전달에 지연이 생겨 통신이 .. 2020. 5. 11.