본문 바로가기

로보틱스/ROS

ROS2 완독 챌린지 Week9 (2부 Ch.12~18) ROS2 개발서적 완독 챌린지 Week9 2023년 4월 부터 12주 동안, 판교오로카 회원님들과 "ROS2로 시작하는 로봇 프로그램"(표윤석, 임태훈 지음) 을 완독하는 챌린지 입니다. 매주 4개의 Chapter 를 읽고 책의 내용을 블로그에 정리합니다. ROS2로 시작하는 로봇 프로그램 https://www.yes24.com/Product/Goods/102949767 ROS 2로 시작하는 로봇 프로그래밍 - YES24 이 책은 ROS 공식 플랫폼인 TurtleBot3의 개발자이자 10여 년간 ROS 기반 프로젝트를 진행한 로보틱스 엔지니어인 필자들이 실무에서 얻은 경험과 커뮤니티 활동을 바탕으로 작성한 ROS 로봇 프로그래 www.yes24.com 12장. ROS2 패키지 설계 (C++) 이제까지 배.. 더보기
ROS2 완독 챌린지 Week5 (Ch.17~20) ROS2 개발서적 완독 챌린지 Week5 2023년 4월 부터 12주 동안, 판교오로카 회원님들과 "ROS2로 시작하는 로봇 프로그램"(표윤석, 임태훈 지음) 을 완독하는 챌린지 입니다. 매주 4개의 Chapter 를 읽고 책의 내용을 블로그에 정리합니다. 17장 ROS2 도구와 CLI 명령어 우리가 로봇을 개발할 때, 소프트웨어 프레임워크를 사용하는 목적 중 하나는 다양한 개발 도구의 지원 때문 입니다. ROS프레임워크에서 제공하는 개발 도구는 다음과 같이 4가지로 분류할 수 있습니다. Command-Line 명령어 RQT 기반의 GUI 도구들 3차원 시각화툴, RViz 3차원 시뮬레이터, Gazebo 명령어 도구를 사용하면 ROS의 대부분 기능을 사용할 수 있습니다. colcon은 개발 환경, 빌드,.. 더보기
ROS2 완독 챌린지 Week3 (Ch.09~12) ROS2 개발서적 완독 챌린지 Week3 2023년 4월 부터 12주 동안, 판교오로카 회원님들과 "ROS2로 시작하는 로봇 프로그램"(표윤석, 임태훈 지음) 을 완독하는 챌린지 입니다. 매주 4개의 Chapter 를 읽고 책의 내용을 블로그에 정리합니다. 서적링크 http://www.yes24.com/Product/Goods/102949767 ROS 2로 시작하는 로봇 프로그래밍 - YES24 이 책은 ROS 공식 플랫폼인 TurtleBot3의 개발자이자 10여 년간 ROS 기반 프로젝트를 진행한 로보틱스 엔지니어인 필자들이 실무에서 얻은 경험과 커뮤니티 활동을 바탕으로 작성한 ROS 로봇 프로그래 www.yes24.com 9장 패키지 설치와 노드 실행 ROS2의 패키지와 노드에 대해 알아보고, tur.. 더보기
ROS2 완독 챌린지 Week2 (Ch.05~08) ROS2 완독 챌린지 Week2 2023년 4월 부터 12주 동안, "ROS2로 시작하는 로봇 프로그램"(표윤석, 임태훈 지음) 을 완독하는 챌린지 입니다. 5장 ROS2의 중요 콘센트 ROS2를 사용해야 하는 이유 시장 출시 시간을 단축할 수 있습니다. 플랫폼과 프레임워크 소프트웨어를 사용하면 당연히 가능한 일입니다. ROS2 사용자는 인하우스 응용 기능 개발에만 집중할 수 있습니다. 양산 가능한 수준의 설계이며, 최종 양산 제품에 적용 가능한 신뢰성과 안정성이 보장됩니다. 멀티 플랫폼으로 확장이 가능하며, Windows와 macOS를 추가 지원합니다. 임베디드 시스템으로 확장이 가능합니다. 모바일 로봇, 드론, 자율 주행, 우주 항공 등 다양한 분야로 확장이 가능합니다. 모듈화가 잘 되어 있어서 부분.. 더보기
ROS2 Humble Hawksbill 설치 ROS2 Humble Hawksbill 설치하기 우분투 22.04 에 ROS2 Humble Hawksbill 설치하는 과정을 정리한다. 이 과정은 Windows11 22H2 (OS build 22621.1555) 에서 테스트 했다. WSL2 ROS2 Humble 설치하기 터미널에서 locale 을 확인한다. 만약 UTF-8 이 포함되어 있지 않을 경우, 다음의 명령어로 locale 을 재설정 한다. sudo apt update && sudo apt install locales sudo locale-gen ko_KR ko_KR.UTF-8 sudo update-locale LC_ALL=ko_KR.UTF-8 LANG=ko_KR.UTF-8 ROS2 Humble 설치를 위한 사전 작업 우분투 apt 패키지 시스템.. 더보기
ROS2 완독 챌린지 Week1 (Ch.01~04) ROS2 완독 챌린지 Week1 2023년 4월 부터 12주 동안, "ROS2로 시작하는 로봇 프로그램"(표윤석, 임태훈 지음) 을 완독하는 챌린지 입니다. 1장. ROS2 소개 ROS 2는 로봇 개발을 위한 오픈 소스 툴킷으로, 이전 버전인 ROS와 달리 더 많은 기능과 개선된 성능을 제공합니다. ROS 2는 다양한 플랫폼을 지원하며, 로봇 개발자들이 시스템의 개발 및 관리를 쉽게 할 수 있도록 도와줍니다. 또한, ROS 2는 분산 시스템을 지원하며, 높은 신뢰성과 보안성을 제공합니다. ROS 는 Robot Operation System 의 약자 입니다. ROS 는 전통적인 운영체제가 아닙니다. ROS 는 메타 운영 체제라고 합니다. 기존 운영체제 위에서 동작하는 로봇 소프트웨어을 위한 미들웨어와 프레.. 더보기
ROS2 노드간 통신 인터페이스 ROS2 노드 간의 통신을 위한 인터페이스 ROS2 통신 인터페이스 ROS 애플리케이션은 메시지, 서비스 및 액션의 세가지 형태의 노드간의 통신을 지원한다. 노드 간의 통신을 위해 사용되는 인터페이스에 대해서 정리한다. 인터페이스는 IDL (interface definition language) 형식으로 작성할 수 있다. 기존 ROS Classic 처럼 msg, srv 등의 포멧을 지원한다. ROS2 메시지 인터페이스 ROS2 메시지 명세하는 방법 ROS 메시지의 필드를 설명하는 간단한 텍스트 파일의 형태로 작성한다. fieldtype1 fieldname1 fieldtype2 fieldname2 fieldtype3 fieldname3 예를 들어 GPS 측위 data 는 다음과 같이 작성할 수 있다. fl.. 더보기
ROS2 Node 와 Topic 기본 개념 ROS2 Node 와 Topic 기본 개념 정리 ROS 노드(Node) 는 무엇인가? Node 는 필요한 연산을 실행하는 최소 프로세스이다. Node 는 Graph 로 결합되고, Streaming Topic, RPC 서비스 및 매개 변수 서버를 사용하여 서로 통신한다. 로봇 제어 시스템은 일반적으로 많은 Node 로 구성된다. (예를 들어) 하나의 Node1 은 레이저 거리 측정기를 제어하고, Node2 는 로봇의 휠 모터를 제어하고, 또 다른 하나의 Node3 은 로컬라이제이션을 수행하고, Node4 는 경로 계획을 수행하고, Node5 는 시스템의 시각화 를 담당할 수 있습니다. Node 들을 묶어서 Pacakge 를 만들 수 있다. 아래는 turtlesim package 를 검색하고 하위 Node .. 더보기
ROS Classic 에서 ROS2 로 넘어가야 하는 이유 II ROS2 Migration ROS2 로 넘어가야 하는 이유 (두번째) 지난 포스팅에서 ROS1 이 산업에 적용되는 과정에서 제기된 문제점 들에 대해서 정리를 해보았다. [ROS2] ROS2 로 넘어가야 하는 이유 I History ROS1 2007년 5월 개발 시작 (STAIR, STanford AI Robot) 2020년 5월 13번째 Noetic Ninjemys 마지막 배포판으로 릴리즈 중단 ROS2 2014년 3월 부터 개발 시작되었고, 2015년 첫번째 알파 버전을 릴리즈 2.. makepluscode.tistory.com 2007년 5월, 스탠포드 대학교 연구실에서 시작된 ROS 는 로봇 소프트웨어의 플랫폼화, 기능구현에 큰 성과를 얻지만, 고성능 워크스테이션에서 연구용으로 만들어진 프레임워크의.. 더보기
ROS Classic 에서 ROS2 로 넘어가야 하는 이유 I ROS2 Migration ROS2 로 넘어가야 하는 이유 (첫번째) ROS1 2007년 5월 개발 시작 (STAIR, STanford AI Robot) 2020년 5월 13번째 Noetic Ninjemys 마지막 배포판으로 릴리즈 중단 ROS2 2014년 3월 부터 개발 시작되었고, 2015년 첫번째 알파 버전을 릴리즈 2021년 Galatic Geochelone 까지 총, 7개의 공식 배포판 2007년 5월 스탠포드 대학교 연구실에서 시작된 ROS 는 로봇 소프트웨어의 플랫폼화, 기능구현에 큰 성과를 얻었다. 하지만, 고성능 워크스테이션에서 연구용으로 만들어진 프레임워크는 실제 산업 현장에 적용하는 과정에서 아래와 같은 문제점이 제기되었다. 성능의 문제 - 임베디드 시스템 포팅의 어려움, 소프트웨어 .. 더보기
Ubuntu 20.04 에서 ROS2 Foxy Fitzroy설치하기 Background 오픈소스 기반의 ROS (Robot Operating System)는 로봇 애플리케이션을 만들기 위한 라이브러리 및 도구 모음 입니다. 디바이스 드라이버에서 알고리즘에 이르기까지 강력한 개발자 도구를 갖춘 ROS는 로봇 프로젝트에 필요한 많은 것을 갖추고 있습니다. 2007 년에 시작된 이후로 로봇 공학 및 커뮤니티에서 많은 변화와 개선이 있었고, ROS1 이 탄생했지만 여러가지 기술적인 제약으로 상용화 까지는 어렵게 되었습니다. ROS2 프로젝트의 목표는 ROS 1의 장점을 활용하고, 기존 버전의 문제점을 최대한 개선하는 것을 목표로 합니다. ROS2 releases 최근 배포판을 살펴보면, 2019.05 Dashing Diademata (~2021.05) - 2 years supp.. 더보기
로스백, Rosbag 을 이용한 메시지 로깅 및 재생 Backgroud 오픈소스 기반의 ROS (Robot Operating System)는 로봇 애플리케이션을 만들기 위한 라이브러리 및 도구 모음 입니다. 디바이스 드라이버에서 알고리즘에 이르기까지 강력한 개발자 도구를 갖춘 ROS는 로봇 프로젝트에 필요한 많은 것을 갖추고 있습니다. ROS 의 두 번째 버전 ROS2 에서는 기존 버전에서 문제를 많이 개선해서 실시간 (Realtime) 성이 보장된 로봇 애플리케이션 프레임워크를 제공합니다. Goal 지난 포스팅에서 (ROS 에서 가장 기본이 되는) turtlesim 예제를 빌드하고 실행했습니다. [ROS2 ] Turtlesim 실행하기 Backgroud 오픈소스 기반의 ROS (Robot Operating System)는 로봇 애플리케이션을 만들기 위한 .. 더보기
ROS2 기본예제 Turtlesim 실행하기 Backgroud 오픈소스 기반의 ROS (Robot Operating System)는 로봇 애플리케이션을 만들기 위한 라이브러리 및 도구 모음 입니다. 디바이스 드라이버에서 알고리즘에 이르기까지 강력한 개발자 도구를 갖춘 ROS는 로봇 프로젝트에 필요한 많은 것을 갖추고 있습니다. ROS 의 두 번째 버전 ROS2 에서는 기존 버전에서 문제를 많이 개선해서 실시간 (Realtime) 성이 보장된 로봇 애플리케이션 프레임워크를 제공합니다. Goal ROS 에서 가장 기본이 되는 turtlesim 예제를 빌드하고 실행한다. Turtlesim 이란? ros_tutorials repository 하위에 속해 있는 튜토리얼 ROS 패키지 간단한 Package, Node, Service, Action, Param.. 더보기
Ubuntu 18.04 에서 ROS2 Dashing Diademata 설치하기 Background 오픈소스 기반의 ROS (Robot Operating System)는 로봇 애플리케이션을 만들기 위한 라이브러리 및 도구 모음 입니다. 디바이스 드라이버에서 알고리즘에 이르기까지 강력한 개발자 도구를 갖춘 ROS는 로봇 프로젝트에 필요한 많은 것을 갖추고 있습니다. 2007 년에 시작된 이후로 로봇 공학 및 커뮤니티에서 많은 변화와 개선이 있었고, ROS1 이 탄생했지만 여러가지 기술적인 제약으로 상용화 까지는 어렵게 되었습니다. ROS 2 프로젝트의 목표는 ROS 1의 장점을 활용하고, 기존 버전의 문제점을 최대한 개선하는 것을 목표로 합니다. ROS2 releases 최근 배포판을 살펴보면, 2019.05 Dashing Diademata (~2021.05) - 2 years sup.. 더보기
로봇을 위한 소프트웨어 플랫폼, ROS What is ROS? 로봇을 위한 소프트웨어 플랫폼, ROS 스마트폰이 없으면 얼마나 불편하거나 심심할까요? 사실 지금과 비슷한 폼팩터의 피처폰은 나온지 꽤 오래되었습니다. 하지만 대중화에 여러번 실패를 하면서 여러번 시장에서 자취를 감췄습니다. 하지만 약 2010년 부터 스마트폰은 안드로이드 또는 iOS 와 같은 소프트웨어플랫폼 기반으로 응용프로그램의 생태계가 형성되고 점점 커지면서 빠르게 발전 해오고 있습니다. 소프트웨어 플랫폼 없이는 절대 불가능했던 결과였죠.​ 바야흐로 로봇 분야에서도 전용 운영체제와 같은 로봇을 위한 소프트웨어플랫폼 의 개발이 매우 활발하게 진행되고 있습니다. 그중 가장 눈에 띄는 결과는 로봇운영체제(Robot Operating System), 즉 ROS 라고 생각합니다. 로봇.. 더보기