습관형성 (9) 썸네일형 리스트형 패스트캠퍼스 환급챌린지 9일차 : 자율주행 로봇을 위한 ROS 2 & SLAM & Nav2 한번에 끝내기 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. PAL Robotics라는 로봇 전문 기업과 그들이 개발한 TIAGo 로봇, 그리고 이를 활용한 Gazebo 시뮬레이션 환경 구성에 대해 학습했다. 실제 산업 현장이나 연구 환경에서 많이 사용되는 실무형 로봇을 직접 다뤄보는 첫 단계였기에 흥미로운 점이 많았다. 먼저 PAL Robotics는 2004년 스페인 바르셀로나에서 설립된 로봇 전문 기업으로, 주로 자율 주행이 가능한 휴머노이드 및 서비스 로봇을 개발한다. 단순히 로봇을 만들기보다는 의료, 물류, 연구 등 다양한 산업에 바로 적용 가능한 현장 중심의 솔루션을 제공하는 것이 인상 깊었다. 그중에서도 오늘 집중적으로 살펴본 로봇은 TIAGo라는 이름의 다목적 모바일 조작 로봇.. 패스트캠퍼스 환급챌린지 8일차 : 자율주행 로봇을 위한 ROS 2 & SLAM & Nav2 한번에 끝내기 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 로봇 개발에서 필수로 사용되는 ROS(Robot Operating System)의 개념과 필요성, 그리고 ROS 1과 ROS 2의 차이점에 대해 배웠다. 로봇을 움직이게 하는 건 단순한 코드 몇 줄이 아니라, 하드웨어와 소프트웨어를 유기적으로 연결하고, 이를 안정적으로 통신시키는 구조 전체라는 걸 이번 학습을 통해 더 실감하게 됐다. 우선, 기존 방식으로 로봇을 개발하면 하드웨어 제어, 비전, 내비게이션 등 각 기능을 전부 따로 개발해야 하고, 사용하는 API도 다 달라서 매번 새로 학습해야 하는 부담이 크다는 점을 알게 됐다. 특히 하드웨어가 바뀌면 소프트웨어도 대거 수정해야 하고, 디버깅도 직접 도구를 만들어야 하는 등 전체 .. 패스트캠퍼스 환급챌린지 7일차 : 자율주행 로봇을 위한 ROS 2 & SLAM & Nav2 한번에 끝내기 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 오늘은 ROS 2 설치 이후의 필수 과정인 환경 설정과 워크스페이스(workspace) 구축, 그리고 개발 편의성을 위한 셸 설정(shell configuration)에 대해 배웠다. 단순히 코드를 짜기 전에, 개발 환경을 어떻게 효율적으로 구성하느냐에 따라 생산성과 실수가 크게 달라질 수 있다는 걸 체감했다. ROS 2를 설치한 후, 가장 먼저 한 작업은 환경 변수와 경로 설정을 셸 초기화 파일(.bashrc, .zshrc)에 등록하는 작업이었다. 그동안은 ROS를 실행할 때마다 source ~/ros2_ws/install/setup.bash 같은 명령어를 수동으로 입력했는데, 이번엔 이를 .bashrc에 넣어서 터미널을 열자마자 .. 패스트캠퍼스 환급챌린지 6일차 : 자율주행 로봇을 위한 ROS 2 & SLAM & Nav2 한번에 끝내기 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 본격적으로 ROS 2를 설치하면서, 로봇 개발 환경을 준비하는 기본적인 과정을 배웠다. 설치는 생각보다 복잡했지만, 단계별로 어떤 작업을 왜 하는지 함께 배워서 조금씩 이해가 되기 시작했다. 먼저, APT 저장소를 추가하는 과정부터 시작했다. 쉽게 말하면, ROS 2를 설치하기 위해 우리 컴퓨터가 어디에서 소프트웨어를 다운로드할지 알려주는 설정이다. software-properties-common 같은 패키지는 필요한 명령어를 쓰기 위해 설치했고, universe 저장소는 ROS가 사용하는 다양한 외부 패키지를 포함하고 있어서 반드시 활성화해야 했다. curl 명령어를 사용해서 저장소 주소를 자동으로 받아오고, .deb 파일을 설.. 패스트캠퍼스 환급챌린지 5일차 : 자율주행 로봇을 위한 ROS 2 & SLAM & Nav2 한번에 끝내기 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 로봇 소프트웨어 개발을 위한 기본 환경을 Debian에서 본격적으로 구축했다. 주된 목적은 C++와 Python 기반의 개발을 안정적으로 진행할 수 있도록 하고, ROS 프로젝트와도 연동 가능한 개발 환경을 준비하는 것이었다. Visual Studio Code를 중심으로 여러 확장 기능과 도구들을 설치했고, 각 구성 요소의 역할을 개념적으로 파악해보았다. 먼저 핵심 프로그래밍 언어인 C++과 Python을 위한 환경을 셋업했다. VS Code 확장 기능을 통해 자동 완성, 디버깅, 코드 탐색 등이 가능해졌고, 특히 C++ 프로젝트에서 실시간 오류 검출 기능은 앞으로 디버깅 효율을 높이는 데 크게 기여할 것 같다. Python 확장.. 패스트캠퍼스 환급챌린지 4일차 : 자율주행 로봇을 위한 ROS 2 & SLAM & Nav2 한번에 끝내기 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 오늘은 효율적인 터미널 환경 구성과 시스템 모니터링, 고급 쉘 설정에 관련된 유틸리티 도구들을 개념 위주로 정리했다. 앞으로 리눅스 환경을 적극적으로 활용하기 위해 꼭 필요한 도구들이라는 인상을 받았다. 우선 Terminator는 하나의 터미널 창 안에서 화면을 자유롭게 분할할 수 있는 도구다. 여러 작업을 동시에 실행하거나 로그와 실행 결과를 나란히 확인할 때 유용하다고 한다. Ctrl+Shift+O와 Ctrl+Shift+E 단축키로 각각 수평, 수직 분할이 가능하고, 탭 추가(Ctrl+Shift+T)나 전체화면 전환(F11)도 지원된다. 기존 터미널에서 여러 창을 띄우고 전환하는 게 번거롭다고 느꼈던 적이 있었기 때문에, 이 .. 패스트캠퍼스 환급챌린지 3일차 : 자율주행 로봇을 위한 ROS 2 & SLAM & Nav2 한번에 끝내기 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 오늘은 리눅스 명령어 중 자주 쓰이는 기본 명령어들을 개념 중심으로 정리했다. 대부분 짧고 단순한 구조지만, 옵션과 인자의 조합에 따라 동작이 달라지는 점이 있어서 명확한 구조 이해가 중요하다는 걸 느꼈다. 기본 구조는 명령어 [옵션] [인자] 형식이고, 옵션은 -a, -l 같은 짧은 형태와 --all, --help 같은 긴 형태가 존재한다. 특히 --help는 어떤 명령어든 사용법을 빠르게 확인할 수 있어서 익숙하지 않은 명령어를 다룰 때 유용할 것 같다. 경로 관련 명령어는 단순하지만 실수하기 쉬운 부분이라 익숙해질 필요가 있다. pwd는 현재 작업 중인 디렉토리의 절대 경로를 출력하고, cd는 디렉토리를 이동하는 데 사용된다.. 패스트캠퍼스 환급챌린지 2일차 : 자율주행 로봇을 위한 ROS 2 & SLAM & Nav2 한번에 끝내기 강의 후기 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. 리눅스를 본격적으로 다뤄본 건 이번이 처음은 아니지만, 지금까지는 필요한 명령어를 그때그때 찾아 쓰는 정도에 그쳤다. 이번 수업을 통해 리눅스를 구성하는 시스템적인 요소들을 처음부터 차근히 정리할 수 있었다. 스마트폰(Android), 서버, 클라우드 인프라, 심지어 로봇 시스템(ROS)까지 다양한 환경에 리눅스가 쓰이고 있다는 사실은 이미 알고 있었지만, 그것이 실제로 얼마나 구조적으로 연결되어 있는지는 체계적으로 생각해 본 적이 없었다. 하나의 운영체제가 이처럼 범용적으로 확장될 수 있다는 건, 결국 커널 기반 설계가 얼마나 유연하게 설계되어 있는지를 보여주는 사례라고 느꼈다. 배포판에 대한 개념도 정리할 수 있었다. 우분투,.. 이전 1 2 다음