본문 바로가기

728x90
반응형

분류 전체보기

(33)
포인터를 써야하는 이유 - 스택메모리와 힙 메모리 측면에서. 🔎 스택 메모리와 동적 할당의 차이점 및 설계 원리스택 메모리는 자동으로 할당/해제되며, 이는 C++의 중요한 메모리 관리 특성입니다. 하지만 그렇다면 왜 모든 메모리를 스택 메모리에서 관리하지 않고, 별도로 힙 메모리(동적 할당)가 필요할까요?이 질문에 대한 해답을 이해하기 위해 다음 내용을 설명하겠습니다.스택 메모리란?스택 메모리의 자동 할당/해제 원리힙 메모리(동적 할당)란?스택과 힙의 차이왜 스택만 쓰지 않고 동적 할당을 사용할까?정리🚀 1. 스택 메모리 (Stack Memory)란?스택 메모리는 함수 호출 시 자동으로 생성되는 메모리 영역입니다.🔹 특징✅ 자동 할당/해제✅ 빠른 속도✅ 정적 크기 (Compile-time에 크기 결정)✅ 지역 변수 (Local Variable) 및 매개변수 ..
C++에서 왜 포인트를 써야할까? 포인트를 쓰지 않으면 어떤 장단점이 있을까? 🔎 포인터를 사용한 객체 접근 vs 포인터 없이 객체 접근C++에서 객체에 접근하는 방법은 크게 두 가지입니다.포인터를 사용한 접근 (ptr->data)포인터 없이 직접 접근 (obj.data)각 방법에는 명확한 장단점이 있으며, 상황에 따라 적절한 방식을 선택하는 것이 중요합니다. 아래에서는 두 접근 방법을 구체적으로 비교 분석합니다.🚀 1. 포인터를 사용한 객체 접근 (ptr->data)🔹 장점✅ 동적 할당 (Dynamic Allocation) 가능객체를 런타임에 생성하여 사용할 수 있어, 유연한 메모리 관리가 가능합니다.대규모 데이터 처리나 메모리 사용 최적화에 유리합니다.MyClass* ptr = new MyClass();ptr->data = 30; // 포인터 접근delete ptr;..
ROS2 launch 파일 구조를 carter_navigation 파일로 파헤쳐보기 ROS2 launch 파일은 어떤 역할을 수행하는지 IsaacSim 예제중에 하나인  multiple_robot_carter_navigation_hospital.launch.py 파일 분석을 통해 구체적으로 알아보자.  전체 코드는 아래와 같다. ## Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved.## NVIDIA CORPORATION and its licensors retain all intellectual property## and proprietary rights in and to this software, related documentation## and any modifications thereto. Any use, reproduct..
Isaac Sim의 QoS node property 파헤치기 1. QoS란?ROS2에서는 네트워크 상태가 불안정하거나 여러 로봇이 동시에 통신할 때, 데이터 손실을 줄이거나 전송 방식을 최적화하기 위해 QoS (Quality of Service) 설정을 제공합니다.QoS는 퍼블리셔(Publisher)와 서브스크라이버(Subscriber) 간의 데이터 전달 방식을 조절하는 역할을 합니다.  2. 각 QoS 설정 옵션 및 의미아래는 Isaac Sim의 ROS2 QoS Profile Node에서 볼 수 있는 속성과 각각의 설정 옵션들입니다.(1) createProfileQoS 프로파일을 미리 정의된 설정으로 선택할 수 있습니다.선택한 프로파일에 따라 deadline, reliability, durability 등의 QoS 값이 자동으로 변경됩니다.Default for ..
ROS 2의 통신 및 구조 개요 ROS 2의 통신 및 구조 개요ROS 2는 Data Distribution Service(DDS) 프로토콜을 기반으로 통신을 수행합니다. ROS 2의 통신 메커니즘과 구조는 ROS 1과는 많은 차이점을 보이며, 아래에서 주요 특징과 각 계층별 작동 원리에 대해 설명드리겠습니다.1. ROS 2의 주요 통신 방식 ROS 2는 Data Distribution Service(DDS) 프로토콜을 통신에 활용하며, 이는 주로 OSI 7계층 모델의 **전송 계층(Transport Layer)**과 **세션 계층(Session Layer)**에서 동작합니다. 이 미들웨어는 **RTPS(Real-Time Publish-Subscribe)**를 사용하여 실시간 데이터 교환을 지원하며, 이를 통해 퍼블리셔와 서브스크라이버 ..
NVIDIA Isaac Sim: Colab vs AWS - 종합 가이드 이 글에서는 Google Colab을 이용해 NVIDIA Isaac Sim을 실행하는 방법과, 더 안정적인 대안으로 AWS를 사용하는 것을 비교합니다. 실행 과정, 문제점, 그리고 최종적으로 Isaac Sim을 효과적으로 활용하기 위한 권장 사항을 정리했습니다.1단계: Google Colab에서 Python 환경 설정Isaac Sim은 Python 3.10을 요구합니다. 하지만 기본적으로 Colab에서는 최신 버전인 Python 3.11(2025년 1월 기준)이 실행됩니다. Python 3.10으로 다운그레이드하려면 다음 명령어를 실행하세요:!sudo apt-get update!sudo apt-get install -y python3.10!sudo apt-get install -y python3.10-d..
복잡한 시스템을 이해하고 설계하는 방법: 계층적 모듈 구조와 통신 프로토콜의 역할 1. 복잡한 시스템을 간단하게: 계층적 모듈화의 필요성현대 IT 시스템은 점점 더 복잡해지고 있습니다. 이러한 시스템을 설계하거나 유지보수할 때 **'모듈화'**가 핵심적인 역할을 합니다. 복잡한 기능을 작은 단위로 나눠 각각의 모듈로 관리하면, 시스템 구조가 단순해지고 전체를 이해하기 쉬워지죠.소프트웨어 설계에서는 함수라는 개념이 이를 실현하는 도구로 사용됩니다. 각 함수는 특정 기능만 독립적으로 수행하도록 설계되며, 함수 간의 상호작용은 매개변수를 통해 이루어집니다. 덕분에 전체 시스템을 분석하거나 오류를 수정할 때 필요한 범위를 좁힐 수 있습니다.예를 들어, 자동차를 생각해봅시다. 자동차의 속도를 줄이고 싶다면 운전자가 브레이크를 밟으면 됩니다. 이때 운전자는 '상위 계층', 브레이크를 통해 작동되..
교환(switching) 시스템 교환 시스템의 모든 것: 종류, 특징, 그리고 라우터의 구조1. 교환 시스템이란?교환 시스템은 네트워크에서 데이터를 효과적으로 전달하기 위한 핵심적인 역할을 합니다.다양한 기기(호스트)들이 연결된 환경에서 데이터를 주고받을 때, 데이터를 최적의 경로로 전달해주는 시스템이 바로 교환 시스템입니다.이 글에서는 교환 시스템의 종류, 라우팅 과정, 라우터 구조까지 알아보겠습니다.2. 교환 시스템의 종류교환 시스템은 데이터 전송 방식에 따라 크게 회선 교환 방식, 메시지 교환 방식, 패킷 교환 방식으로 나뉩니다. 각 방식은 고유한 특징과 장단점을 가지고 있습니다.2.1 회선 교환 (Circuit Switching) 방식회선 교환 방식은 데이터를 전송하기 전에 고정된 경로를 먼저 설정하는 방식입니다.대표적인 예로 ..
UART 종류 한번 보니까 계속 빠져드는 이 박사님... 계속 구독해서 보고 있다. UART 쪽의 정말 박사님.. 추천드립니다 ㅎㅎ https://www.youtube.com/watch?v=7KX257FZVpw&list=PLTp_ZhmNQUh4txz2LQdK-vXIHou5NiWad&index=3           왼쪽의 Host 가 바로 Southbridge 이다.    JTAG 을 컴퓨터에 연결할 때 보통 이런 구조를 쓴다. USB를 시리얼 통신으로 보낼때 쓴다.
UART 구성도 임베디드를 공부하다 보니 통신 인터페이스가 UART , SPI , DAC,등등이 있는 건 알았는데 보통 UART 라고 하면 TXD, RXD 밖에 안나와서 답답했다. 그 안의 동작들이 궁금했기 때문이다. 그런데 더 찾아보니 역시나 설명해주신 고마운 분이 있었다. 이분의 유튜브를 많이 참고해보자.   https://www.youtube.com/watch?v=TKEogEILANY   참고로 이것을 알아야 하는 이유가 마지막에 나오는데 , 놀라운 것은 오히려 하드웨어 개발자가 아닌 소프트웨어 개발자가 이런 타이밍 신호들의 시간을 알아야 한다고 한다. 예를 들어, 칩셋에 애초부터 내장된 UART 모듈이 아니라 , 별도의 CPU 와 별도의 UART 모듈을 연결해서 쓴다고 할 때 , 이때 CPU 안에 IO 버스들 관..

728x90
반응형