본문 바로가기

Robot/Robot Program - ROS

ROS2 맛보기 - Eloquent Elusor 간단 체험기

2020년이 시작된지 몇 일 되지 않았네요. 2019년 마지막에 좋은 행사가 하나 열렸는데 저는 참석을 못했었답니다. 바로 로보티즈에서 ROS 전도사 활동(^^)을 하시는 표박사님과 그 팀에서 멋진 세미나를 했는데 저는 참석하지 못했었죠. 그 세미나 자료가 최근 공개되었습니다. ROS2 세미나 자료 구경하러 바로 가시죠^^ 그 자료를 보고 저도 한 번 ROS2를 공부해야겠다 생각했습니다. 이번 글은 그저 방금 소개한 세미나 자료와 ROS2 위키 페이지를 보면서 한 번 Hello World 수준에서 따라해 보는 글입니다.

일단, 저는 설치를 최신 버전인 Eloquent Elusor로 했습니다. 어차피 조금있으면 LTS 버전이 나온다고 하니, 그냥 현 시점 최신 버전을 설치해 보고 싶었죠. Eloquent Elusor의 설치 안내 페이지는 너무 잘 되어 있어서 따로 할 말이 없네요^^ 저는 우분투가 아니라 Mint에 설치했습니다. 민트 유저들은 아는 이야기지만, 설치 중간에 나오는 `lsb_release -cs`이라는 구절을 bionic으로 변경해 주면 됩니다.

그리고 추가로 source 명령으로 setup.bash를 추가했습니다.

그리고 turtlesim도 설치했습니다.

뭐.. 그저 간단하게 ros2에서는 노드를 실행하는 명령이 ros2 run입니다. 살짝 의문은 어차피 ros1에서도 ros라는 명령은 없었기 때문에 그냥 실행 명령을 ros2가 아니라 ros라고만 해도 되었을 것 같은데, ros2라고 했네요.

그리고, ros2 run 명령으로 turtle_teleop_key라는 터틀심을 키보드로 움직일 수 있는 노드도 실행했습니다.

네~ node list 결과입니다.

turtlesim의 노드 정보(info)를 조회해 보았습니다. ros1에서의 turtlesim과 아주 유사할테니 당연한 이야기지만, 토픽의 종류와 서비스의 종류가 유사합니다.

현 상태에서 토픽과 노드의 연결입니다. 혹시 이미 알고들 계시겠지만, ros1에 있던 ros master가 ros2에는 없습니다. 제일 큰 변화인듯 합니다^^

service list입니다. 하나하나 실행해보는 묘미가 있답니다.

ros2 interface show 명령으로 특정 서비스 파일을 확인해볼 수 있습니다.

그리고 위 그림처럼 서비스를 call 할 수 있습니다.

ros1과는 미묘하게 차이가 있네요. 그래도 재미있습니다.^^

topic list를 type 까지 함께 확인해 볼 수 있습니다. 그런데, ros1에서 있던 rostopic list -v 명령처럼 subcriber/publisher 구분까지 한 번에 조회해 보는 기능이 안보이네요. 전 잘 썼는데 아쉬워요ㅠㅠ.

물론~ ros2 topic pub 명령으로 turtlesim을 움직여 볼 수 있습니다. 그런데 아직 제가 파악하지 못한 것인지 tab 키로 완전히 편하게 연결되던 것은 안되네요. 음.. rqt를 사용하라는 권장일까요?^^

그래서 rqt topic publisher를 사용해서 조작도 해보았습니다. 일단 여기까지 한 번 가지고 놀아 봤습니다. 특별히 어려운 곳은 없습니다. 좀 더 많은 부분을 데리고 놀면서 블로그를 통해 경험을 공유할께요.~ 아.. 다시 한 번 이야기하지만, 그저 로보티즈팀의 ROS2 세미나자료를 이것저것 따라해 보고 있을 뿐입니다.^^

반응형