콘텐츠로 건너뛰기
쿼드(QUAD) 드론연구소

쿼드(QUAD) 드론연구소

  • 👨‍✈️ 초보 파일럿
  • 🎖️ 개발자
  • 🥇 전문가
  • 💎 다이아몬드
  • 🛠️ Tech-Tip
  • 📝 블로그
  • ⚠️ 저작권
login
쿼드(QUAD) 드론연구소
쿼드(QUAD) 드론연구소

🕰️PX4와 ArduPilot의 개발 배경

4
  • ArduPilot 주요 개발자
  • ArduPilot
  • PX4 주요 개발자
  • PX4

📚드론 개발 라이브러리

10
  • 1.드론 개발자 로드맵(Load-Map)
  • 2.드론 개발 소프트웨어 개요
  • 3.MAVLINK
  • 4.PyMAVLink
  • 5.MavProxy
  • 6.MAVSDK
  • 7.MAVROS
  • 8.PX4 uORB with ROS 2
  • 9.자율주행드론 개발 프로세스
  • 10.학습 로드맵(Road-map)

🧩자율주행드론 시스템 아키텍처

4
  • Smart UAV is Robot!
  • PX4 System 아키텍쳐
  • PX4 Software 아키텍쳐
  • 쿼드(QUAD) 자율주행드론 UAV 시스템 아키텍처

🐧Linux (Ubuntu) 기초

14
  • Ubuntu 22.04 설치 (PC에 직접 설치)
  • Windows 10/11 WSL2 설치
  • Linux 개요
  • 리눅스 쉘 기본 명령어
  • 자주쓰는 명령어 정리 (Ubuntu 사용)
  • 자주 사용하는 터미널 명령어
  • Linux Package 에 대한 이해
  • su와 sudo 명령어 활용법
  • 리눅스 파일 시스템 이해하기
  • 리눅스 권한에 대한 이해
  • 빌드 시스템에 대한 이해
  • Make(Makefile) 사용 가이드
  • CMake 의 이해
  • CMake 사용 가이드

픽스호크(Pixhawk) 기초

29
  • 쿼드(QUAD) 자율주행 드론(UAV) 개발 키트
  • 픽스호크 드론의 기초 개요
  • 드론에 사용되는 물리학
  • 멀티콥터의 동작 원리
  • ArduPilot vs. PX4 선택
  • PX4 시스템 아키텍처
  • 지상국(Ground Control System) 선택
  • Pixhawk 6C 비행 컨트롤러
  • Pixhawk 6X 비행 컨트롤러
  • 드론에서 사용되는 센서간 통신제어 방식
  • Pixhawk 배선
  • Pixhawk 전원 공급
  • GPS/나침반
  • 거리 측정기 (LiDAR)
  • 고도(Altitude) 이해
  • 컴패니언 컴퓨터
  • 오프보드(Offboard) 제어
  • 컴패니언 컴퓨터 GPIO를 이용한 FC 제어
  • ESC(전자속도제어기)
    • ESC (전자속도제어기)
    • BLHeli32 및 BLHeli_S ESC
    • DShot ESC
    • DroneCAN ESC
    • PWM, OneShot 및 OneShot125 ESC
  • 무선제어시스템(Radio)
    • 무선 제어 시스템 (Radio)
    • 조종기/수신기
    • 수신기 RSSI 강도 표시
  • Telemetry 라디오
    • Telemetry 라디오
    • SiK Radio 설정
    • 다중 Point-to-Point 설정

Q250 사용 가이드

17
  • Q250 빠른 시작 가이드
  • QGroundControl 설치
  • Q250 펌웨어 재설치 (선택)
  • Q250 파라메터 설정
  • FS-i6x 조종기와 수신기 설정
  • 비행 모드
  • 전원 설정
  • Actuators (모터) 설정
  • Flight Behavior 설정
  • 텔레메트리 연결
  • GPS 연결
  • 컴패니언컴퓨터 전원 공급장치(UBEC) 사용 가이드
  • LED 컨트롤러 사용 가이드
  • 컴패니언 컴퓨터와 FC의 UART 케이블 연결
  • Optical-Flow & LiDAR 설정
  • 지자계 간섭 문제 해결
  • fake_gps (가상 GPS)

Q500 사용 가이드

10
  • Q500 사용 가이드 개요
  • QGroundControl 설치
  • Q500 펌웨어 설정
  • Q500 파라메터 설정
  • Radiomaster 조종기 설정
  • 수신기의 전파 수신 강도(RSSI) 설정
  • Pixhawk 6X Ethernet 설정
  • 컴패니언 컴퓨터와 FC 연결 설정
  • 시뮬레이터 사용 가이드
  • fake_gps (가상 GPS)

Q650 사용 가이드

9
  • Q650 사용 가이드 개요
  • QGroundControl 설치
  • Q650 펌웨어 설정
  • Q650 파라메터 설정
  • 조종기 설정
  • 수신기의 전파 수신 강도(RSSI) 설정
  • Pixhawk 6X Ethernet 설정
  • 컴패니언 컴퓨터와 FC 연결 설정
  • H-Flow 설정 가이드

첫 비행 및 튜닝

12
  • 첫 비행 및 튜닝 개요
  • 첫 비행 지침
  • 수동비행 지침
  • 임무 비행
  • 지오펜스
  • 안전지점(Rally Points)
  • 비행 모드
  • 지형 추적/유지
  • PID 튜닝
  • 비행 기록 분석
    • 비행 기록 분석
    • Flight Review를 이용한 로그 분석
    • 비행기록 분석 실습

PX4-Toolchain 개발환경 구성

4
  • Windows 10/11 WSL2 설치
  • ROS(1) + PX4 Toolchain 구성
  • Gazebo Classic 시뮬레이터 사용하기
  • ROS2 + PX4 Toolchain 구성

MAVLink-Python 프로그래밍

17
  • MAVLINK 개요
  • Python MAVLink 라이브러리 사용
  • 드론에 연결하기(Connect)
  • MAVLINK 메시지 주고받기
  • 비행 모드 (PX4 멀티콥터)
  • MAV_CMD
  • PX4 ‘OFFBOARD” 와 Ardupilot ‘GUIDED’ 모드 차이
  • PX4 Offboard 모드에서만 유효한 주요 MAV_CMD
  • 드론에 시동걸기(MAV_CMD_COMPONENT_ARM_DISARM)
  • 이륙하기(MAV_CMD_NAV_TAKEOFF)
  • 이동하기(SET_POSITION_TARGET_GLOBAL_INT)
  • 이동하기(SET_POSITION_TARGET_LOCAL_NED)
  • 기수 방향과 속도 변경
  • [별첨]참고 자료
  • MAVLINK 신뢰성 보장
    • MAVLINK 신뢰성 보장
    • MAVLINK 2 메시지 서명
    • [참고]HMAC-SHA256이란?

🛠️Tech-Tip

2
  • MAVLink Router
  • 쿼드(QUAD) 자율주행 드론용 컴패니언컴퓨터 소프트웨어 – Jetson Orin-Nano 용 (Ver.3.1-Ubuntu 22.04)
카테고리 보기
  • Home
  • Docs
  • 🐧Linux (Ubuntu) 기초
  • 리눅스 권한에 대한 이해

리눅스 권한에 대한 이해

1 min read

Permission Error

Linux OS에서 작업을 해 본 사람이라면 한 번쯤 아래 오류를 만나본 적이 있을 것이다.

Permission denied.

이는 현재 해당 쉘을 사용하고 있는 사용자가 해당 파일에 대한 해당 권한이 없기 때문에 발생하는 오류이다.

이 오류를 해결하기 위해서는 Linux의 권한 체계에 대한 이해가 필요하다.

Linux의 권한 체계

Linux에서는 파일별로, 사용자별로 권한의 종류별로 권한을 관리한다.

각 권한은 아래와 같이 사용자별(파일 오너, 오너가 속한 그룹, 나머지 사용자들)에 따라 3비트의 2진수로 부여되고 확인할 수 있다.

부여된 권한을 확인하고자 한다면 ls -l 명령을 이용하면 된다.

위의 파일들은 다음과 같은 권한을 소유한다.

  • rootexecfile: owner인 root는 읽고, 쓰고, 실행할 수 있으며 나머지는 읽고, 실행할 수는 있지만 쓸 수는(내용을 변경할 수는) 없다.
  • yhfile: owner인 yihyun은 읽고, 쓰고, 실행할 수 있으며 나머지는 읽을 수만 있다.

Super User인 root

root는 모든 권한을 무시할 수 있다. 예를 들어, 아래와 같이 동작한다.

  • 다른 사용자로 로그인하기 위해서는 해당 사용자의 비밀번호를 입력해야 한다. 그러나 root는 비밀번호를 입력하지 않고도 해당 사용자로 로그인할 수 있다.
  • root는 owner 이외에 부여되지 않은 permission이 있어도 이와 상관 없이 파일을 읽고, 변경하고, 실행할 수 있다.

때문에 root 권한을 관리하는 것은 아주 중요하다. root 권한이 아무에게나 주어지지 않도록 유의해야 한다.

권한 부여 명령어 chmod

파일의 권한을 변경하기 위해 chmod 명령을 사용할 수 있다.

숫자로 부여

chmod 755 {filename} // rwx r-x r-x
chmod 744 {filename} // rwx r-- r--

모든 사용자의 모든 권한을 한 번에 설정할 수 있기 때문에 전체 권한을 설정할 때에 용이하다.

문자로 부여

chmod u+w {filename}
chmod g+r {filename}

일부 권한을 설정하는 경우 용이하다.

  • u/g/o/a: 각각 user(owner), group, other, all을 뜻한다.
  • +/=/-: 각각 권한의 추가, 지정, 삭제를 뜻한다.
  • r/w/x: 읽기, 쓰기, 실행 권한을 뜻한다. (뒤에서 나올 특수 권한도 이 자리에 올 수 있다.)

특별한 모드

User(Owner), Group, Other에 대한 권한 비트 이외에도 특별한 모드를 위한 비트가 존재한다.

이 비트는 4, 2, 1의 값을 가질 수 있으며 각각은 다음을 의미한다.

  • 4: 해당 파일을 setuid 파일로 선언한다.
  • 2: 해당 파일을 setgid 파일로 선언한다.
  • 1: 해당 디렉토리에 sticky bit를 적용한다.

setuid

해당 파일의 실행 도중 owner 권한이 필요한 동작을 수행하기 위해 실행자에게 owner 권한을 부여하는 기능이다.

setuid 프로그램은 실행 중에는 EUID(Effective User ID)가 파일의 owner로 변경된다. 즉, 파일 실행 중에는 파일 소유자의 권한을 얻는 것이다.

때문에 root 소유의 파일을 setuid 프로그램으로 만드는 것은 매우 주의해야 한다.

setgid

해당 파일의 실행자에게 해당 파일의 group 권한을 부여하는 기능이다.

sticky bit

공용 디렉토리를 선언하기 위한 비트. 디렉토리에만 적용 가능하며 나머지에 적용할 시 무시된다.

해당 특수 권한 비트가 적용된 디렉토리는 누구든 상관없이 파일/디렉토리를 생성할 수 있으나 해당 파일/디렉토리의 소유자 또는 root가 아니라면 수정과 삭제는 불가능하다.

아래와 같이 Others의 실행 권한이 표기되는 위치에 소문자 t가 표기되는 경우 sticky bit가 적용된 것이다.

업데이트된 날짜 2025년 11월 22일

당신의 감정은 어떤가요?

  • Happy
  • 보통
  • 슬픈

이 문서 공유 :

  • Facebook
  • X
  • LinkedIn
  • Pinterest

제공 BetterDocs

답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

© 2025 쿼드(QUAD) 드론연구소 - Kadence WP의 워드프레스 테마

  • 👨‍✈️ 초보 파일럿
  • 🎖️ 개발자
  • 🥇 전문가
  • 💎 다이아몬드
  • 🛠️ Tech-Tip
  • 📝 블로그
  • ⚠️ 저작권
Korean
English