ROS2 moveit2

2024. 11. 1. 16:49ROS2/moveit2

저번 시간에 만들었던 ubuntu 22.04 + ros2 humble에 설치했던 moveit2를 이용하여 로봇을 시뮬레이션 해 볼 것이다.

먼저 도커를 활성시켜야 한다. 그전에 먼저 display를 사용하기 위해 x11 권한을 준다.

xhost +local:docker
docker ps -a

위 코드를 실행시키면 모든 도커 컨테이너가 뜨게 되는데 원하는 컨테이너의 id를 사용하여

docker start -i <docker id>

이 코드를 실행시키면 커져있던 docker가 살아난다.

 

터미널을 추가하고 싶을땐 다른 터미널을 켜서 아래 코드를 사용하면 된다.

docker exec -it <docker id> /bin/bash

 

이제 내가 만든 로봇을 moveit2에 띄워 볼 예정이다.

moveit2에는 moveit setup assistant가 있어서 쉽게 띄워 볼 수있다.

 

먼저 어시스턴트를 실행시켜준다.

ros2 launch moveit_setup_assistant setup_assistant.launch.py

 

그럼 위와 같은 이미지가 나오게 된다.

 

그럼 내가 만들었던 urdf 파일의 위치를 찾아넣어주면 되는데 정확하게 만들어진 urdf가 아니면 에러가 날 확률이 높다.

그래서 urdf를 만들었다면 먼저 rivz에 띄워보고 joint를 움직여보면서 이상있는 곳이 없나 확인하는 것을 먼저 하는 것을 추천한다.

(웬만한 로봇 팔 회사들은 urdf파일이 있음 깃허브에서 찾아보는 것을 추천)

 

오른쪽 그림과 같이 로봇팔 형상이 나오게 됨

 

두번째 self-collsions가 있는데 moveit은 경로 계획을 세울때 스스로 몸체와 충돌하는지에 대한 검사가 있는데 여기서 미리 충돌 가능성이 없는 링크들을 찾아 실제 경로 계획중에 불필요한 충돌 검사를 줄여 계산시간을 줄일 수 있다.

 

세번째는 가상 조인트인데 나는 필요가 없어서 넘어갔다.

 

네번째는 planning groups인데 움직이는 모든 링크 또는 조인트들을 그룹화해서 넣어주면 된다

나는 엔드 이펙터가 없으므로 다 넣어줬다.

 

5번째는 로봇 포즈를 설정할 수 있는건데 시작자세 같은 것들을 설정할 수 있다. 여기서 움직이다보면 로봇이 이상한 것도 찾을 수 있다.

 

6번째는 엔드 이펙터 추가 관련이고 

7번째는 수동 조인트

8단계는 위치 및 속도 상태 인터페이스 같은 것들 설정

9단계는 ros2 컨트롤러 설정이 가능하다.

이렇게 자동으로 들어감

 

10단계는 moveit 컨트롤러인데

똑같이 자동생성 가능하다

 

11단계는 센서관련이라 쓰지않았고

 

12단계는 launch file 목록들이다

친절하게 다 만들어 준다.

 

13단계는 작성자정보

 

14단계는 저장될 경로이다. 경로를 선택하고 패키지 생성을 누르면 알아서 다 만들어준다.

'ROS2 > moveit2' 카테고리의 다른 글

ROS2 moveit2(1)  (0) 2024.11.08