일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- turtlesim
- C++
- U-blox
- WSL
- Qt5.15LTS
- 터틀심
- GUI
- 젯슨
- ROS
- 자율주행
- LIDAR
- Visual SLAM
- ROS2
- RTK
- SLAM
- Gazebo
- WSL2
- 강화학습
- Puck LITE
- turtlebot3
- 파이썬
- Simulation
- QT
- 아두이노
- 인공지능
- 로봇
- Jetson
- ubuntu
- ZED2
- GPS
- Today
- Total
목록전체 글 (119)
직관적인느낌
- USB Hub IC power control command ※권한이 거절될수도있다. 그럴때는, "su -" 로 사용자 변경 1. Reset echo reset > /sys/devices/platform/gpio-reset/reset-usb_hub/control 2. Power Off echo assert > /sys/devices/platform/gpio-reset/reset-usb_hub/control 3. Power On echo deassert > /sys/devices/platform/gpio-reset/reset-usb_hub/control -참고 common:troubleshooting:hub_reset [ODROID Wiki] common:troubleshooting:hub_reset [..
단축키 - I - B - Alt + 9: synth Rack - D : 독 - Alt + 0(숫) : 가상 키보드 - Alt + 3 : Piano Roll 출처: https://www.youtube.com/watch?v=IQwEnvSMRUA
미디, 제일 먼저 떠오르고 많이 들어본건 ''로직" 일 것이다. '로직'은 맥에서 돌아가기에 Mac을 사용하지 않는 사용자에겐, 시작하는 것을 늦추게 한다. ( 역시 온갖 핑계로 미뤘다.) 모토 : 일단 있는 장비/환경에서 시작하자. 그래서 윈도우 & 무료 프로그램 부터 시작하자. 그리고 그 다음에 다음 환경 / 버전으로 넘어가자. 무엇이든 첫 술에 만족 할 수 없다. 그리고 무엇이든, 자신의 처음 작업물을 다시 해야겠다는 생각이든다. '다음 버전에서는 이렇게 해야겠다, 이랬으면 좋겠다' 라는 생각이 분명 든다. 그럼 그때 다시 하고, 지금은 빠르게 시작하자. "이제 소개할 프로그램은 모두 윈도우& 무료" (다른 장비도 필요없다. 일단 PC 한 대만 있으면 된다.) +) 오다시티(audacity) htt..
STL(Standard Template Library)은 C++ 표준 라이브러리의 일부로, 프로그래머가 효율적으로 데이터를 관리하고 조작할 수 있도록 다양한 데이터 구조와 알고리즘을 제공합니다. STL은 크게 네 가지 주요 구성 요소로 이루어져 있습니다. 1. 컨테이너 (Containers): 이들은 다양한 데이터 구조를 의미하며, 벡터(vector), 리스트(list), 큐(queue), 스택(stack), 맵(map) 등의 데이터 저장 및 관리를 위한 클래스를 제공합니다. 2. 알고리즘 (Algorithms): STL은 정렬(sort), 검색(search), 복사(copy), 변환(transform) 등의 일반적인 프로그래밍 작업을 수행하는 함수들을 제공합니다. 이러한 알고리즘은 대부분의 STL 컨테..
공유 메모리와 분산 메모리는 컴퓨터 시스템에서 메모리를 구성하고 접근하는 두 가지 기본적인 방법입니다. 이 두 가지 방식은 아래와 같은 차이점을 가지고 있습니다. 1. 공유 메모리 (Shared Memory) 공유 메모리 시스템에서는 모든 프로세서가 메모리를 공유합니다. 프로세서들은 동일한 메모리 주소 공간에 접근할 수 있으며, 한 프로세서가 저장한 데이터를 다른 프로세서가 읽을 수 있습니다. 이런 특성 덕분에 공유 메모리 시스템에서는 데이터의 동기화와 통신이 상대적으로 쉽고 빠릅니다. 하지만, 이런 시스템에서는 여러 프로세서가 동시에 같은 메모리에 접근하려고 할 때 발생하는 동기화 문제를 해결하기 위한 복잡한 메커니즘이 필요합니다. 2. 분산 메모리 (Distributed Memory) 분산 메모리 시..
OpenMP(Open Multi-Processing)는 병렬 프로그래밍을 위한 API(Application Programming Interface)입니다. C, C++, 그리고 Fortran 언어를 위해 설계되었으며, 공유 메모리 병렬 프로그래밍을 위한 쉽고 유연한 인터페이스를 제공합니다. OpenMP는 다음과 같은 특징을 가지고 있습니다: 1. 간편함: OpenMP는 주로 컴파일러 지시문(directive)의 형태로 제공되므로, 프로그래머가 복잡한 병렬화 코드를 작성할 필요 없이, 간단한 지시문만으로 병렬화를 적용할 수 있습니다. 2. 유연성: OpenMP는 루프 또는 섹션 단위로 병렬화를 적용할 수 있으며, 프로그래머가 원하는 만큼 세부적인 제어를 할 수 있습니다. 또한, 동적 스레딩을 지원하여 실행..
Eigen과 Sophus는 모두 로보틱스와 컴퓨터 비전 분야에서 많이 사용되는 라이브러리입니다. 1. Eigen: 이것은 C++로 작성된 고성능의 선형 대수학 라이브러리입니다. 벡터와 행렬 연산을 위한 다양한 클래스와 함수를 제공하며, 고정 크기 또는 동적 크기의 벡터와 행렬을 모두 지원합니다. 또한, Eigen은 특이값 분해(SVD), 고유값 및 고유 벡터 계산과 같은 고급 선형 대수학 연산도 지원하며, 이는 로보틱스와 컴퓨터 비전에서 유용하게 사용됩니다. 2. Sophus: 이것은 Lie 그룹에 대한 연산을 지원하는 C++ 라이브러리입니다. 로보틱스와 컴퓨터 비전에서는 3차원 공간의 회전과 변환을 다루는 것이 일반적인데, 이러한 연산을 수월하게 처리하기 위해 Lie 그룹과 관련된 수학적 도구가 필요합..
TBB(Threading Building Blocks)는 C++을 위한 병렬 프로그래밍 라이브러리로, Intel에서 개발하였습니다. TBB는 고성능 컴퓨팅을 위한 병렬 알고리즘, 병렬 태스크, 동기화 프리미티브, 메모리 할당 등을 제공합니다. TBB는 효율적인 멀티코어 프로그래밍을 위해 고안되었으며, 개발자가 직접 스레드를 관리하는 대신 고수준의 추상화를 제공함으로써 병렬 프로그래밍을 간소화합니다. 또한, TBB는 동적 스케줄링을 사용하여 태스크를 코어에 분배하므로, 높은 성능과 확장성을 달성할 수 있습니다. TBB의 concurrent_queue와 concurrent_vector에 대해 설명하겠습니다. concurrent_queue: TBB의 concurrent_queue는 여러 스레드에서 동시에 안전..
"std::mutex"는 C++ 표준 라이브러리의 일부로서, 동시에 여러 스레드가 공유 자원에 접근하는 것을 방지하는 데 사용되는 동기화 프리미티브입니다. 여러 스레드가 공유 자원에 동시에 접근하려고 하면 데이터 경쟁 상황이 발생할 수 있으며, 이는 데이터의 일관성을 해칠 수 있습니다. " std::mutex"는 이러한 상황을 방지하기 위해 사용됩니다. 공유 자원에 접근하기 전에 뮤텍스를 잠급니다(lock). 공유 자원을 안전하게 사용합니다. 공유 자원의 사용이 끝나면 뮤텍스를 해제합니다(unlock). "std::mutex"의 주요 메서드에는 "lock"과 "unlock"이 있습니다. lock(): 이 메서드는 뮤텍스를 잠그는데 사용됩니다. 뮤텍스가 이미 잠겨 있으면, 호출 스레드는 뮤텍스가 해제될 때..
std::priority_queue: 힙 구조를 사용하여 항상 가장 높은 (또는 낮은) 우선순위를 가진 요소에 빠르게 접근할 수 있습니다. 일반적으로, 요소를 추가하거나 제거하는 연산은 로그 시간에 가능하며, 가장 높은 우선순위를 가진 요소에 접근하는 연산은 상수 시간에 가능합니다. std::stack: LIFO(Last In, First Out) 방식의 데이터 구조로, 데이터가 추가되고 제거되는 위치가 동일합니다. 즉, 가장 마지막에 들어온 요소가 먼저 나가게 됩니다. 랜덤 액세스는 지원하지 않으며, 요소를 추가하거나 제거하는 연산은 상수 시간에 가능합니다. std::queue: FIFO(First In, First Out) 방식의 데이터 구조로, 데이터가 추가되는 위치(백)와 제거되는 위치(프론트)가..