SLAM 해보기2
해당 페이지는 일부 수정될 수 있습니다.
Last updated
해당 페이지는 일부 수정될 수 있습니다.
Last updated
아래 기어비 수정은 정식 출시 전, 베타 유저들만 진행하시면 됩니다.
내 PC와 로봇의 터미널 모두를 omo_r1mini 폴더까지 이동한 후
git pull로 당겨주세요(^^).
기존에 다운 받은 패키지들을 업데이트하기 위함~
그 후, 다음 과정을 수행하면 됩니다.
내 PC에서 roscore
로봇에서 roslaunch omo_r1mini_bringup omo_r1mini_motor_setting.launch
이 때 로봇 모터가 자동으로 회전하기 때문에, 로봇 본체 아래에 무언가 받쳐두는 방식 등으로 로봇 바퀴를 지면에서 띄워 두어야 합니다.
모터의 동작이 끝나면 로봇을 재부팅 합니다.
이제 로봇을 장애물이 없는 적당한 곳에 위치 시키고,
내 PC에서는 roscore를, 로봇에서는
까만색 HLDS 라이다를 가진 분들은 omo_r1mini_robot_hlds.launch
파란색 YD 라이다를 가진 분들은 omo_r1mini_robot.launch
를 실행합니다.
혹시 화면에 데이터가 몇 개 나오다가 멈추면
ctrl + C로 중단하고
다시 omo_r1mini_robot_hlds.launch를 실행해줍니다.
파란색 ydlidar를 가지고 있는 분들은 omo_r1mini_robot.launch 실행해주세요.
이제 로봇에서 omo_r1mini_slam.launch를 실행하고
내 PC에서 omo_r1mini_slam_rviz.launch를 실행해주면
rviz에서 이런 화면이 나타나는걸 볼 수 있습니다.
이 상태에서 내 PC에서 새 터미널을 띄우고,
omo_r1mini_teleop_key.launch로
로봇을 조종해서 맵을 넓혀주세요.
얼추 다 만들어 졌다면 teleop을 중단한 뒤,
로봇에 ssh로 접속하고
만든 map을 저장합니다.
그러면 이렇게 map으로 시작하는 파일이 2개 생성됩니다.
아래 명령으로 해당 경로에 복사해주세요~
실행 중이던 내 PC와 로봇의 터미널을 전부 종료하고~
내 PC와 로봇에 각각 이렇게 실행합니다.
프롬프트 이름을 잘 확인하세요. 여기선 pw = 내 PC / r1mini = 로봇 입니다.
그 후에 뜨는 이런 화면에서
2D pose estimation으로 자기 위치를 잡아주시구요.
잘 맞추었다면
가고 싶은 곳과 자세를 지정하면 됩니다.
이렇게 (동영상)
여러 번 테스트~
amcl_pose 토픽을 열람해봅시다.
현재 좌표와 자세가 나오는데요.
지난번 설치한 jupyter notebook을 실행하고,
화면도 적당히 배치하고,
새 파일을 만들고,
Jupyter 다루기 참고
이미 실행한 파일이 있을 경우, 메뉴의 Kernel - Restart & Clear Output 선
필요한 모듈을 import 하고,
node를 초기화하고,
현재 위치를 읽어줍니다.
저는 이제 현재 위치에서 x 방향으로 한 20cm 정도 앞으로 가는 것을 목표로 잡았습니다.
가야 할 위치를 지정해주고요.
아래처럼 시작하라는 명령을 줍니다.
동영상으로 확인하면 이렇습니다 ^^
그런데 약간 삐뚤어지네요?
움직이고 싶은 각도를 결정하고 quaternion으로 변경해볼까요.
변경했습니다.
그러면 회전만 일어나네요^^
하나 덧붙일 것은, 회전 중심이 여기에 위치 하는 줄 알았는데
로봇의 무게로 눌러져서 아래 이미지가 회전 중심이 됩니다. ㅠㅠ
혹시 라이다에 의해 그려지는 지도가 회전하는 문제가 발생하면, 튜닝 하실 때 휠 사이 간격을 138mm (최대 150mm) 로 바꾸어 보시는 것도 하나의 방법이 될 것 같습니다.