전체 글
-
ROS2 Service 기초 사용법ROS/ROS2 2025. 1. 13. 19:07
ROS2 version: jazzy1. ServiceService는 Topic과 달리 Server와 Client로 구성이 되어 있다.Client가 Server로 데이터를 Request(요청)를 하면, Server가 Client로 Response(응답)를 하게 된다.즉, 데이터를 요청해야 데이터를 응답받을 수 있다.Service는 하나의 Server에서 여러 개의 Client를 가질 수 있지만, Service의 Server는 오직 하나이다.2. Service 실습이번에도 turtlesim으로 Service에 대해 살펴보자.Terminal 1ros2 run turtlesim turtlesim_nodeTerminal 2ros2 run turtlesim turtle_teleop_key 2.1 service li..
-
ROS2 Topic 기초 사용법ROS/ROS2 2025. 1. 8. 19:50
ROS2 version: Jazzy1. Topic?ROS2에서 Topic은 가장 기본이 되는 단방향 데이터 송수신 방법으로, Publisher가 데이터 전송, Subscriber가 데이터 수신을 하게 된다.기본적으로 1:1 통신을 하지만 상황에 따라 1:N, N:1, N:N 통신도 가능하다. Topic은 주로 센서데이터를 받아오거나 모터에 명령을 보낼때 사용한다. 2. Topic 실습이전처럼 Turtlesim과 Teleopkey를 실행해보자. Terminal 1ros2 run turtlesim turtlesim_node Terminal 2ros2 run turtlesim turtle_teleop_key Terminal 3rqt_graph rqt_graph를 통해 다음의 node graph를 볼 수 있다..
-
ROS2 Node 기초 사용법ROS/ROS2 2025. 1. 7. 19:40
ROS2 version: Jazzy1. Node?ROS2에서는 Node를 사용하여 각각의 기능들을 모듈로 관리한다.예를 들어 Motor에 명령을 내리는 Node, Camera data를 관리하는 Node등 다양하게 존재한다.ROS2에서는 이러한 Node들이 여러개가 구성되고 협력하게 된다. 2. Node 실습Terminal 1ros2 run turtlesim turtlesim_node Terminal 2ros2 run turtlesim turtle_teleop_key Terminal 3ros2 node list Terminal 1, 2에서 ros2 run을 실행하고 node list를 살펴보면 두 개의 Node가 동작하는 것을 볼 수 있다. 2.1 remap이전에 ros2의 유용한 명령어 중에서 --re..
-
ROS2 유용한 명령어ROS/ROS2 2025. 1. 7. 19:05
1. Check env variablesprintenv | grep -i ROSROS2 관련 환경 변수를 찾거나 Package의 위치를 찾을 수 있음. echo $ROS_DOMAIN_ID # domain ID 확인export ROS_DOMAIN_ID = # domain ID 설정ROS_DOMAIN_ID를 확인하거나 설정할 수 있다. humble에서 사용하는 환경변수echo $ROS_LOCALHOST_ONLYexport ROS_LOCALHOST_ONLY = 노드 검색 범위 조절.ROS_LOCALHOST_ONLY는 ROS2 통신을 로컬 호스트로만 제한할 수 있다. jazzy에서 사용하는 환경변수export ROS_AUTOMATIC_DISCOVERY_RANGE = localexport ROS_AUTOMATI..
-
ROS2 DDS (Data Distribution Service)ROS/ROS2 2025. 1. 6. 19:26
1. DDS (Data Distribution Service)ROS2를 접하면서 DDS에 대해 처음 접하는 분들이 많을거라 생각한다..DDS(Data Distribution Service) 데이터 분산 서비스는 Middleware로 실시간 시스템에서 다음을 가능하게 해준다.Real-time (실시간성)Scalable (규모가변성)Dependable (안전성)High Performance (고성능)ROS2에서는 DDS를 사용하여 통신을 주고받게 된다. ROS를 하며 DDS에 대해 너무 자세히 알 필요는 없을 것 같다.지금은 그저 데이터 통신을 위한 미들웨어로 생각하면 좋을것 같고 우리는 이를 통해서 ROS1보다 향상된 데이터 송수신을 할 수 있다고 생각하면 좋을 것 같다.위의 그림을 보면 미들웨어는 OSI..
-
_Docker_docker CLI(Command Line Interface)Tools/Docker 2024. 7. 25. 20:30
이번에는 docker의 명령어를 정리했다.참고 사이트:https://docs.docker.com/reference/ Reference documentationFind reference documentation for the Docker platform’s various APIs, CLIs, and file formatsdocs.docker.com 1. ps (process)docker ps docker의 ps를 보여주는 명령어.실행되지 않은 ps를 함께 보려면, '-a' 옵션을 함께 사용. CONTAINER IDIMAGE: 사용된 컨테이너 이미지.COMMAND: 사용된 명령어.CREATED: 만들어진 시간.STATUS: 명령어가 사용되고 실행된 상태. (Exited (0)은 성공)NAMES: 컨테이너 이..
-
_Docker_docker 설치 및 권한Tools/Docker 2024. 6. 3. 17:30
Docker document: ManualsLearn how to install, set up, configure, and use Docker products with this collection of user guidesdocs.docker.com 이전에 Docker가 무엇인지 이야기를 했었다. Docker: Docker는 리눅스 컨테이너에 리눅스 어플리케이션을 프로세스 격리기술을 사용해 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트이다.Docker Engine(도커 엔진): Docker Engine은 컨테이너를 생성하고 관리하는 주체로서 이 자체로도 컨테이너를 제어할 수 있고 다양한 기능을 제공하는 Docker의 프로젝트이다. (Docker의 핵심) 1. Docker 설치설치환..
-
_Docker_chroot container & isolationTools/Docker 2024. 5. 31. 20:24
개발을 하면서 Docker에 대해 많이 들어봤을 거라 생각한다.그럼 Docker란 무엇일까? Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼이다.실제로 우리가 Github에서 Open source를 사용하려고 하면, Docker로 배포하는 경우를 많이 볼 수 있다.Docker를 가상머신과 비슷하게 생각해도 좋지만, 운영체제를 가상화하지 않는 컨테이너 기술이니만큼 가상머신에 비해서 가볍고 한 대의 서버에 여러 개의 서비스를 구동하기 좋다. 1. chroot docker에 대해 알아보기전에 chroot에 대해 살펴보자.리눅스 파일시스템은 root로부터 파일 시스템이 시작된다.chroot는 change root directory의 약자로 root dir.를 특정 디렉터..