본문 바로가기

Ros6

[젯슨나노 프로젝트]자율 주행 배달 로봇 Selly(9)_openVSLAM과 cartographer의 실패 openVSLAM 오픈소스 for visual SLAM(카메라 기반)과 cartographer 구글 오픈소스 for SLAM(라이다 기반)이 모두 실패하면서 나의 지난 한 달 반이 사라져버렸다...ㅠㅠ 슬램이 자율주행에 핵심 기술인걸로 알고 있는데... 실외에서 잘 작동하지를 않는다는 것이 문제이다. visual SLAM의 경우에는 비쥬얼 슬램 자체가 feature point를 잡아서 feature point 개수의 변화&거리 변화로 mapping을 하는 기술인 것 같은데(어떻게 mapping하는지는 정확히는 모르겠다. feature point를 이용하는 것만 알겠음.), 알다시피 feature point는 천장, 바닥, 벽면 같은 plane에서는 절대 detection 되지 않으니까... 참고로 ope.. 2020. 5. 12.
[젯슨나노 프로젝트]자율 주행 배달 로봇 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(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.