본문 바로가기

8. rosservice, service client, rossrv 🛎️ 8. rosservice, service client, rossrv 이번 시간에는 또다른 node간 통신 메커니즘인 Service에 대해 배워보겠습니다. 항상 그랬던 것처럼, 예제를 실행시켜봅시다!! r2d2 spawn $ roslaunch gcamp_gazebo gazebo_world.launch # gazebo 시뮬레이션이 완전히 켜질때까지 기다려 주세요!! $ rosrun service_tutorial spawn_model_client.py 사진과 같이 r2d2가 등장했나요? 🗿 지금 우리는 gazebo_ros의 service server에게 r2d2를 등장시켜 달라는 service call을 한 것입니다!! ROS Service 개념 출처 : mathworks 그럼 topic과 service..
7. Publisher & Subscriber node 작성 - python ✉️ 7. Publisher & Subscriber node 작성 - python 이전 예제의 launch file을 다시 살펴볼까요?? example_1.launch 이제 우리는, 패키지, node, topic, launch file에 대해 알고 있기 때문에 위 내용을 이해할 수 있게 되었습니다. 그럼, 드디어 코딩으로 넘어가서, example1_publisher.py를 파헤쳐볼까요? publisher node 작성 cmdvel_pub.py #! /usr/bin/env python """ Twist Publisher example referenced from wiki.ros.org url: http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28..
6. rostopic, rosmsg, publisher, subscriber, package ✉️ 6. rostopic, rosmsg, publisher, subscriber, package 지지난 강의의 마지막 부분에 등장했던 /cmd_vel을 기억하시나요? 이는 command velocity의 약자로, 바퀴가 돌아가는 속도를 지정하여 로봇을 이동시킬 수 있는 topic입니다. 이번 시간에는 topic이 무엇인지와 topic의 주체가 되는 publisher, subscriber에 대해 배워봅니다. 우선, 예제를 먼저 실행시켜보겠습니다. drive_forward 예제 몇가지 설정을 해줍니다. $ roscd topic_tutorial $ cd src && chmod +x * $ cd ../ $ cd launch && chmod +x * 이제는 익숙한 gazebo_world $ roslaunch g..
5. rosrun, roslaunch, launch 파일 🏃‍♂️ 5. rosrun, roslaunch, launch 파일 rosrun & roslaunch Node를 실행시키는 방식에는 크게 두가지가 있습니다. roslaunch $ roslaunch gcamp_gazebo gazebo_world.launch .xml 2. rosrun $ rosrun teleop_twist_keyboard teleop_twist_keyboard.py 이 둘의 차이점에 대해 이야기해보자면, rosrun은 단 하나의 Node를 실행시키는 것이며, roslaunch는 launch 파일을 통해 한번에 여러개의 Node를 동시에 실행시킬 수 있다는 점입니다. 💡 이와 더불어, 이전 시간에서 보았듯 roslaunch는 roscore를 따로 실행시키지 않아도 rosmaster를 구동시켜주..
4. roscore, rosmaster, rosnode 🎖️ 4. roscore, rosmaster, rosnode 이전 시간에 다음과 같은 명령을 실행시켰던 것이 기억나시나요?? $ roslaunch gcamp_gazebo gazebo_world.launch 이 명령을 실행하니 로봇이 포함된 gazebo가 실행되고 여러 센서와 로봇의 상태를 시각적으로 볼 수 있는 rviz도 실행되었습니다. 그리고 teleop을 실행시켰더니, 이 로봇을 조종할 수도 있었습니다. 이 일련의 과정들이 어떻게 이루어졌는지 살펴봅니다. ROS Basic Process 터미널을 다시 볼까요? $ cd ~/gcamp_ws $ sds $ roslaunch gcamp_gazebo gazebo_world.launch ... logging to /home/kimsooyoung/.ros/log..
3. 실습을 위한 Gazebo 환경과 사용법 소개 💻 3. 실습을 위한 Gazebo 환경과 사용법 소개 앞선 과정에서, ROS 설치는 모두 완료하셨나요?? 이번 시간에는 앞으로 실습을 진행할 로봇 시뮬레이션, Gazebo 환경을 구축해보고, 간단한 사용법을 소개 해 봅니다. 시작하기 앞서 catkin workspace를 만들어 보겠습니다 ROS는 catkin이라는 빌드 시스템을 사용합니다. 기존 c/c++ cross-platform 개발을 경험하셨다면 cmake에 익숙하실텐데, 이와 매우 비슷합니다. 😎 파일 구조 관점에서, ROS Application은 여러 Package들로 이루어집니다. 이들 Package가 소스 파일을 담고 있고, catkin이 이들을 빌드하여 실행 프로그램들을 만들죠. 이번에는 catkin workspace를 만들고, Githu..
2. ROS 설치(데스크탑), 개발을 편리하게 해주는 도구들 안내 💻 2. ROS 설치(데스크탑), 개발을 편리하게 해주는 도구들 안내 Ubuntu Linux 18.04가 설치되어 있는 데스크탑을 기준으로 ROS를 설치해 봅시다 준비물 우분투 리눅스가 설치된 데스크탑 (혹은 외장 그래픽을 포함한 노트북) 1대 리눅스 커맨드 라인에 대한 약간의 지식 쾌적한 인터넷 환경 💡 로봇에 리눅스가 도는 것은 이해하는데... 우분투 데스크탑이 왜 필요한가요? 바로 실제 하드웨어로 넘어가기 전에, ROS의 주요 개념들을 시뮬레이션을 통해 익혀볼 예정입니다. 마치 우리가 게임을 할 때 좋은 그래픽 카드가 있으면 높은 해상도에서 멈춤 없이 플레이를 할 수 있듯이, 시뮬레이션을 로드하고 실행시킬 때에도 노트북보다는 데스크탑이 퍼포먼스 측면에서 유리합니다. 우분투 부팅 USB 만들기 Cre..
1. ROS란? 👋 1. ROS란? ROS를 왜 사용하는지, 이 강의에서 다루는 것, 다루지 않는 것 🤖로봇을 만들어 볼까요? 🗑️ 쓰레기 청소 로봇 🗑️ 집게손으로 쓰레기를 가져와서 압축 목적지까지 자율주행하여 정리 담당 구역의 쓰레기가 모두 사라질 때까지 반복 image from : unsplash 🥤 음료수 로봇 🥤 고객이 원하는 주문을 접수 받아 집게손을 이용해 Pick and Place! 가판대에 내려둔 뒤 다시 반복 image from : unsplash 📦 택배 드론 📦 택배를 들고 날아 목적지까지 자율주행 후 집하 다른 택배를 들고 반복 image from : pixabay 비록 형태는 다양하지만, 대부분의 로봇들이 공통적을 가진 속성이 있습니다. 인지 - 센서 판단 - 소프트웨어 구동 - 엑츄에이터 im..