본문 바로가기

분류 전체보기

우분투 22.04 gcc-arm-none-eabi-gdb 설치 방법 우분투 22.04 에서 gcc-arm-none-eabi-gdb 설치 방법 ARM 아키텍처는 현대의 스마트폰부터 IoT 디바이스, 임베디드 시스템에 이르기까지 다양한 기기에서 널리 사용되고 있습니다. 이러한 기기들에 소프트웨어를 개발하려면, 대부분의 개발자는 자신의 PC에서 코드를 작성하고 해당 코드를 ARM 기반의 타겟 하드웨어에서 실행할 수 있는 형태로 변환해야 합니다. 이 과정에서 필수적인 도구가 바로 '크로스 컴파일러'입니다. gcc-arm-none-eabi는 ARM Cortex-M 및 Cortex-R 프로세서용 코드를 컴파일하기 위한 GNU 툴체인의 일부입니다. 이 툴체인은 개발자가 PC 환경에서 코드를 작성하고, 그 코드를 ARM 기반의 하드웨어에서 실행할 수 있는 바이너리로 변환하는 데 필요한.. 더보기
Ninja 빌드 시스템의 소개와 hello 예제 Ninja 빌드 시스템 빠르고 효율적인 빌드 시스템인 Ninja에 대해 알아보고, 우분투에서 어떻게 설치하는지 알아보겠습니다. Ninja 빌드 시스템: 소개 및 우분투에서의 설치 Ninja는 빠른 빌드를 목표로 설계된 작고 초점을 맞춘 빌드 시스템입니다. 주로 다른 빌드 시스템 (예: CMake, Meson)에서 중간 표현으로 사용되며, 주어진 빌드 규칙을 효율적으로 실행하여 소프트웨어를 빌드하는 데 사용됩니다. 우분투에서 Ninja 설치하기 우분투에서 Ninja를 설치하는 과정은 매우 간단합니다. 아래의 단계를 따라 설치를 진행할 수 있습니다. 우선, 최신 패키지 정보를 가져오기 위해 다음 명령을 실행합니다 sudo apt update Ninja 설치: 다음 명령을 사용하여 Ninja를 설치합니다: s.. 더보기
안드로이드 앱 개발을 쉽게 시작해보기 2 안드로이드 앱 개발을 쉽게 시작해보기 2 저는 예전에 안드로이드 스마트폰의 BSP와 Framework 개발했던 경험이 있습니다. 최근에 스마트폰 앱 개발에 관심이 생겨, 새롭게 공부하며 최신 트렌드를 반영한 앱 개발 과정을 포스팅으로 정리하려고 합니다. 이 포스팅이 앱 개발을 처음 시작하는 분들에게 도움이 되길 바랍니다. 이전 포스팅에서는 개발 환경을 구축하는 방법을 다루었습니다. 이번 포스팅에서는 그 환경을 활용하여 간단한 앱을 만들어 보겠습니다. 스플래시 화면 안드로이드 어플리케이션의 인트로 화면을 만들어보자! "스마트폰에서 앱을 처음 실행하면 대게 보이는 것은 인트로 화면입니다. 안드로이드에서는 이 화면을 '스플래시 액티비티'라고 부릅니다. 앱이 시작될 때 잠깐 번쩍이는 화면 특성 때문에 이렇게 불.. 더보기
안드로이드 앱 개발을 쉽게 시작해보기 1 안드로이드 앱 개발을 쉽게 시작해보기 저는 예전에 안드로이드 스마트폰의 BSP와 Framework 개발했던 경험이 있습니다. 최근에 스마트폰 앱 개발에 관심이 생겨, 새롭게 공부하며 최신 트렌드를 반영한 앱 개발 과정을 포스팅으로 정리하려고 합니다. 이 포스팅이 앱 개발을 처음 시작하는 분들에게 도움이 되길 바랍니다. 앱 개발, 어디서 부터 시작할까? 만약 우리가 앱을 개발한다면 어떤 순서로 진행해야 할까요? '앱'이라고만 하면 너무 광범위하니, 주소록 앱처럼 데이터가 저장되고, 리스트 형태로 조회되며, 데이터를 추가하거나 삭제할 수 있는 애플리케이션을 예로 들겠습니다. 이러한 앱을 만들기 위해서라면, 저는 다음과 같은 순서로 진행할 것입니다. 개발을 시작하기 전에는 필요한 도구와 환경을 설정해야 합니다.. 더보기
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++) 이제까지 배.. 더보기
morden C++ 바인드, std::bind morden C++ std::bind 바인드 std::bind 는 C++ 11 에서 추가 되었다. bind는 함수를 변수처럼 사용하거나, 함수의 특정 파라미터를 고정시킨 새로운 함수를 만드는데 사용된다. 간단한 std::bind 코드 예제 std::bind 예제 코드 #include #include void plus(int a, int b) { std::cout 더보기
ROS2 완독 챌린지 Week8 (2부 Ch.5~11) ROS2 개발서적 완독 챌린지 Week8 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 5장. 토픽, 서비스, 액션 인터페이스 ROS2에서 .. 더보기
ROS2 완독 챌린지 Week7 (2부 Ch.01~04) ROS2 개발서적 완독 챌린지 Week7 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 1장. ROS 프로그래밍 규칙 (코드 스타일) 로봇 .. 더보기
ROS2 완독 챌린지 Week6 (Ch.21~24) ROS2 개발서적 완독 챌린지 Week6 2023년 4월 부터 12주 동안, 판교오로카 회원님들과 "ROS2로 시작하는 로봇 프로그램"(표윤석, 임태훈 지음) 을 완독하는 챌린지 입니다. 매주 4개의 Chapter 를 읽고 책의 내용을 블로그에 정리합니다. ROS2로 시작하는 로봇 프로그램 http://www.yes24.com/Product/Goods/102949767 ROS 2로 시작하는 로봇 프로그래밍 - YES24 이 책은 ROS 공식 플랫폼인 TurtleBot3의 개발자이자 10여 년간 ROS 기반 프로젝트를 진행한 로보틱스 엔지니어인 필자들이 실무에서 얻은 경험과 커뮤니티 활동을 바탕으로 작성한 ROS 로봇 프로그래 www.yes24.com 21장. ROS2의 시간 다수의 노드로 구성된 로봇의 .. 더보기
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은 개발 환경, 빌드,.. 더보기
이미지 신호 프로세서 - ISP 이미지 신호 프로세서(Image Signal Processor) 이미지 센서는 렌즈를 통해 빛을 받아 신호로 저장합니다. 저장된 신호는 이미지 신호 프로세서(Image Signal Processor, 이하 ISP)에 의해 고품질의 디지털 이미지로 변환됩니다. 아래의 왼쪽 그림과 같이 빛은 컬러 필터 어레이(Color Filter Array, CFA)를 통해 이미지 센서에 Bayer 패턴으로 저장됩니다. 이 Bayer 패턴은 ISP를 통해 오른쪽 그림과 같은 우리 눈에 익숙한 디지털 이미지로 변환됩니다. ISP 의 세부과정 아래 그림은 이미지 신호 프로세서(ISP)가 이미지 센서에서 수집한 데이터를 고품질의 이미지로 변환하는 일반적인 과정을 나타냅니다. 블랙 레벨 보정 (Black level Correct.. 더보기
카메라 이미지 센서 - Image Sensor 카메라 이미지 센서 카메라는 렌즈를 통해 빛을 받아 디지털 이미지를 생성하는 장치입니다. 카메라에는 렌즈, 이미지 센서, ISP 등이 포함되며 USB 또는 MIPI를 통해 호스트 머신과 연결됩니다. 이중 이미지 센서는 렌즈를 통해 빛을 받아 전기 신호로 변환하는 반도체입니다. 대표적으로 CMOS와 CCD 방식이 있습니다. 최근 임베디드 분야에서는 대부분 CMOS (Complementary Metal-Oxide Semiconductor) 방식의 센서를 사용합니다. 이미지 센서의 동작 원리 이미지 센서는 컬러필터어레이(Color Filter Array, CFA)의 집합입니다. 아래 그림처럼 R, G, B 색상의 빛을 받을 수 있는 필터가 있습니다. 필터를 통해 각 색상이 빛의 세기에 따라 베이어 어레이(Ba.. 더보기
엣지 컴퓨팅과 카메라 - edge computing 엣지 컴퓨팅과 카메라 엣지 컴퓨팅 응용 분야에서는 다양한 카메라가 사용됩니다. 각 응용 분야에 적합한 카메라를 선택하기 위해서는 기술적인 내용을 이해해야 합니다. 이를 몇 개의 글로 정리해 보았습니다. 엣지 컴퓨팅이란? 클라우드 컴퓨팅 vs 엣지 컴퓨팅 클라우드 컴퓨팅이라는 용어를 들어보셨나요? 이 기술은 로컬 디바이스에서 데이터를 클라우드에 전송하고, 중앙에 있는 클라우드에서 데이터를 처리하고 서비스합니다. 대표적인 예가 OpenAI의 ChatGPT입니다. 이 시스템은 사용자 브라우저를 통해 데이터를 입력 받고, 인터넷으로 연결된 클라우드 서버에서 처리하고 연산하여, 다시 브라우저를 통해 사용자에게 답변을 제공합니다. 엣지 컴퓨팅은 다양한 산업 분야에서 적용됩니다. 예를 들어, 휴머노이드 로봇, 얼굴 .. 더보기
ROS2 완독 챌린지 Week4 (Ch.13~16) ROS2 개발서적 완독 챌린지 Week4 2023년 4월 부터 12주 동안, 판교오로카 회원님들과 "ROS2로 시작하는 로봇 프로그램"(표윤석, 임태훈 지음) 을 완독하는 챌린지 입니다. 매주 4개의 Chapter 를 읽고 책의 내용을 블로그에 정리합니다. 서적링크 http://www.yes24.com/Product/Goods/102949767 ROS 2로 시작하는 로봇 프로그래밍 - YES24 이 책은 ROS 공식 플랫폼인 TurtleBot3의 개발자이자 10여 년간 ROS 기반 프로젝트를 진행한 로보틱스 엔지니어인 필자들이 실무에서 얻은 경험과 커뮤니티 활동을 바탕으로 작성한 ROS 로봇 프로그래 www.yes24.com 13장 ROS2 액션 지난 11장, 12장에서 토픽과 서비스에 대해서 배웠습니다.. 더보기
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를 추가 지원합니다. 임베디드 시스템으로 확장이 가능합니다. 모바일 로봇, 드론, 자율 주행, 우주 항공 등 다양한 분야로 확장이 가능합니다. 모듈화가 잘 되어 있어서 부분.. 더보기