테크

테크/OSEK ⁄ VDX

OSEK Real-Time OS : 특징2(Event, Alarm, Hook) 및 실습

1. Event 다른 task가 발생시킴, Interrupt일 수도 있음 extended tasks일때만 제공 실행순서를 정해줄때 사용 preemptible 와 non-preemptible 일때 서로 스케줄링 behavior가 달라짐 1) preemptable(priority : T1 > T2) T2가 수행중인 상태에서 이벤트를 발생시키면 스케줄러가 활성화된다. T1은 waiting 상태에서 ready상태로 변경된다. T1의 우선순위가 T2보다 높고 preemptive이기 때문에 작업이 전환된다. 2) non-preemptable(priority : T1 > T2) non-preemptive스케줄링일때 이벤트가 발생하고 스케줄러가 rescheduling을 해도 T2의 작업을 중간에 끝내지 않고 작업을 마..

테크/OSEK ⁄ VDX

OSEK Real-Time OS : 특징1(Task, 스케줄링, 인터럽트)

1. Task 일반적인 OS에서의 process생성과정은(생성, 준비, 실행, 대기, 종료) 5가지 방식으로 나뉘지만 OSEK OS에서는 조금 다르다. Task는 크게 2가지 방식으로 나뉜다. 1) Basic task state model running : task가 CPU를 할당받아 작업하는 상태. 한 번에 한 작업만이 이 상태에 있을 수 있으며, 다른 모든 상태는 여러 작업이 동시에 적용될 수 있다. suspend : running 상태인 직업이 “terminate(종료)”명령을 받으면 일시중지인 상태로 작업이 비활성화 된다. “activate”명령을 받으면 ready상태로 돌아간다. ready : running상태의 작업이 preemptive스케줄링에 의해 우선순위가 밀릴때 ready상태로 들어온다..

테크/OSEK ⁄ VDX

OSEK/VDX 개요

1) OSEK/VDX 개요 OSEK는 OS가 아닌 표준 스펙이다. Real Time 임베디드 시스템을 제작하기 위해 고안해냄 OSEK는 독일계통 차량 회사에서 만들었고 VDX는 프랑스계통 차량회사가 만들어 내서 둘이 합쳐서 하나의 표준스펙이 되었다. 이를 근간으로 해서 OSEK RTOS OS가 만들어 짐. 2) OSEK 목적 재사용성과 이식성을 높이기 위함 이전에 차량 제조사별로 중구난방식으로 제작해서 표준화된 인터페이스를 만들었어야 함. 용이한 확장성 디버깅 및 에러체크 Figure1-1에서 module1, 2, 3을 각각 하나의 task 및 process라고 볼 수 있다. OSEK operation system에 ERIKA, EB, Vector와 같은 OSEK OS kernal이 들어간다. 3) OS..

테크/OSEK ⁄ VDX

범용운영체제

일반적인 범용운영체제는 노션에 기록해 놓았다. 해당 카테고리는 차량용 OS를 중점적으로 작성하기 때문에 아래는 참고용으로 확인하자. 운영체제 A new tool for teams & individuals that blends everyday work apps into one. www.notion.so

테크/ROS

[ROS] 로봇팔 시뮬레이션 제어 및 통신

1. 개발환경 OS : Ubuntu 20.04 ROS : Noetic OpenSource : OpenMANIPULATOR-X 2. 로봇팔 시뮬레이션 하기 ※주의※ 모든 개발환경이 구성되어 있어야 하며 자세한 사항은 다음 링크를 참고할것 https://emanual.robotis.com/docs/en/platform/openmanipulator_x/quick_start_guide/#install-ros-on-pc 1) 오픈매니퓰레이터 가제보 실행 roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch - 가제보가 open되면 플레이버튼 누르기 2) 컨트롤러도 시뮬레이션으로 진행하기 위해 use_platform설정 false로 바꿔주기 roslau..

테크

[m1] 삽질일기

usb장비 확인하기 /dev 경로에서 확인할 수 있는 usb장비 잡기 ls /dev | grep usb dpkg 패키지 꼬일경우 sudo apt-get -o Dpkg::Options::="--force-overwrite" install --fix-broken .gitignore 적용 안될때 git rm -r --cached . git add . git commit -m "removed cached"

테크/Network

허브 / 스위치 / 라우터 / 공유기

1. 허브(Hub) - 여러대의 컴퓨터를 연결해서 네트워크를 만들어주는 장치 - 데이터패킷을 받으면 연결된 모든 장치들에게 모두 전송 - 모든 장치들이 데이터 패킷을 받고 자신에게 온 데이터 패킷인지 확인하고 필요하면 취득 - 즉, 단순 분배를 하는 중계장치 - 물리계층에서 사용 cf) 허브는 모든 연결된 장치들에게 패킷을 뿌리기 때문에, 데이터 전송대역을 분리해서 사용한다. 예를들어 원래 허브의 데이터 전송속도가 500Mbps라고 하고 장치 5대가 연결되어 있으면 대역폭은 100Mbps 로 나눠지게 된다. 2. 스위치 - 연결된 장치들의 IP와 MAC주소를 모두 테이블형태로 가진다. - 원하는 목적지에 데이터 패킷을 전송하는 장치 -> 허브와 달리 스위치는 무작정 데이터 패킷을 뿌리는 것이 아니라 IP..

테크/Network

OSI 7계층, TCP/IP 4계층

OSI 7Layer 국제표준화기구(ISO)에서 개발한 모델 컴퓨터 네트워크 프로토콜 디자인과 통신 계층을 나누어 설명한 것 1계층 : 물리계층 - 데이터링크계층의 프레임을 받고, 다음 장치에 구리나 광섬유, 무선통신매체를 통해 전송하기 위한 신호로 바꾸어준다. - 물리적인 매체를 통해 데이터(bit)를 전송하기 위해 요구되는 기능들을 정의 - 데이터 전송단위 : bit(1:on/0:off) - 프로토콜 : RS-232, RS-485등의 케이블 - 장비 : 허브, 리피터 2계층 : 데이터링크 계층 - 물리계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할 - MAC주소를 통해 통신, 프레임에 MAC주소를 부여하고 에러검출, 재전송, 흐름제어 진행 - 장비 : 브릿지, 스위치 등 허브 한 ..

테크/ML | DL

[ML] 선형회귀와 경사하강법

회귀(Regression) 여러개의 독립변수와 한개의 종속변수간의 상관관계를 모델링하는 기법 1. 선형회귀 : 선형조합으로 모델링하는 회귀 기법 1) 단순선형회귀 2) 다중선형회귀 ※여러개의 input데이터를 갖고 어떤 모델이 가장 적합한지 weight를 찾는것이 목적※ 2. 비용함수(Cost Function) - 모든 input에 대해 예측값과 실제값의 차이를 나타낸 함수 → Cost Function을 최소화 하는 것이 목적 - 선형회귀에서의 Cost Function은 MSE(Mean Square Error)를 사용한다. 3. 경사하강법(Gradient Decent Method) - 반복을 통해 미분계수(기울기)가 '0'이 되는 지점을 찾는다. 1) w0, w1에 대해서 임의의 값을 설정한다(initi..

테크/[verilog | VHDL]

[VHDL] MUX, DEMUX, 4비트 비교기 설계

MUX(Multiplexer) - 여러개 입력 중 제어신호에 의해 선택된 입력을 출력한다. - 4x1 mux이라고 가정하면 input으로 4비트가 들어오고 제어신호에 의해 선택된 부분을 출력한다. 시뮬레이션 결과를 보면 input 4비트와 S라는 선택신호에 의해 00이면 0번비트, 01은 1번비트, 10은 2번, 11은 4번비트를 출력시키는 동작을 보여준다. 1) mux를 if문으로 작성하면 다음과 같다. //if문 library ieee; use ieee.std_logic_1164.all; entity mux_4x1_vhdl is port( I : in std_logic_vector(3 downto 0); S : in std_logic_vector(1 downto 0); Y : out std_logic..

테크/[verilog | VHDL]

[VHDL] 4비트 병렬 가감산기(4-bit Full adder / subtractor)

4비트 가산기(4-bit Full Adder) 4비트 가산기는 말 그대로 1비트 4개를 더할 수 있는 회로를 의미한다. 회로에서 사용된는 구성요소는 1비트자리 반가산기1개, 전가산기 3개만 적용하면 된다. 처음 LSB연산할때는 하위자리에서 받는 캐리가 없기 때문에 반가산기를 이용하며 나머지 3비트는 전부 캐리를 고려해야 하기 때문에 전가산기를 이용한다. 이러한 동작의 논리회로는 다음과 같다. 최종 결과는 a와b를 더한 결과와 MSB에서 나오는 캐리까지 포함하여 총 5비트가 나오게 된다. 위의 동작을 VHDL 구조적 모델링으로 구현하면 다음과 같다. library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std..

테크/[verilog | VHDL]

[VHDL] 1비트 가감산기 설계(half / full, adder / subtractor)

반가산기(Half adder) 한자리 2진수 2개를 입력해 합(sum)과 올림수(carry)를 계산하는 덧셈 회로이다. 진리표와 논리회로는 다음과 같다. and게이트와 xor게이트를 사용하기 때문에 구조적모델링을 이용하여 컴포넌트를 불러오는 방식으로 코드를 작성하면 다음과 같다. (현재 작업중인 디렉토리에 and, xor게이트에 대한 .vhd파일을 저장해야 한다.) library IEEE; use IEEE.STD_LOGIC_1164.all; entity half_adder is Port (X : in STD_LOGIC; Y : in STD_LOGIC; S : out STD_LOGIC; C : out STD_LOGIC); end half_adder; architecture Structural of half..

테크/[verilog | VHDL]

[VHDL] 병렬문(Concurrent Statement)

회로도의 동작이나 구조 서술을 위한 프로세스나 블록간 연결상태를 서술하는 용도로 사용한다. 보통 아키텍처 본체 내부의 문장 부분을 구성하게 되며 프로세스문 내부는 순차문, 프로세스문 자체는 병렬문이다. 병렬분의 종류는 프로세스문, 블록문, 병렬주장문, 병렬신호배정문 등이 있다. 1. 프로세스문(Process statement) - 기본적으로 동시처리인 VHDL에서 순차적 처리를 가능하게 해주는 문법이다. - 감지리스트(sensitivity list)에 들어가는 신호는 process내에서 선언 불가능하다. - 모듈 내부는 순차적으로 이루어지므로 순차문을 사용한다.(if, case) - 프로세스문 자체는 병렬문이며 여러개의 프로세스문이 있으면 서로 병행적으로 수행한다. - 프로세스문은 일종의 무한루프처럼 동..

테크/[verilog | VHDL]

[VHDL] 순차문

VHDL의 아키텍처를 설계할때는 크게 병렬문과 순차문으로 나뉜다. 일반적으로 아키텍처는 문장부 서술은 병렬문으로 서술하지만 병렬문 내부 혹은 부프로그램(프로시저, 함수)은 순차문으로 동작을 하기 때문에 두가지 동작을 명확히 이해한 상태에서 설계를 진행해야 한다. 이번 포스팅에서는 순차문에 대해 알아보자. 순차문(Sequential Statement) • 병렬문의 부프로그램이나 프로세스문 수행을 위한 알고리즘 서술 용도로 사용 • 반드시 앞의 문장이 진행되어야 뒤에 문장이 진행할 수 있다. • 순차문 종류 : 대기문, 주장문, 신호배정문, 변수배정문, 프로시저 호출문, if문, case문, next문 등.. 1. 대기문(wait statement) - process문이나 procedure의 동작을 주어진 ..

테크/[verilog | VHDL]

[VHDL] 기본 문법

1. 기본 구성 // AND_VHDL code // package 부분 library ieee; use ieee.std_logic_1164.all; // entity 부분 entity AND_VHDL is port(A, B : in std_logic; c : out std_logic); end AND_VHDL; // architecture 부분 architecture Behavioral of and_VHDL is begin process(A, B) begin if(A='1' and B ='1')then C 대형 설계를 쉽게 할 수 있다) - 컴포넌트의 연결관게는 port map이라는 예약어를 이용하여 이루어짐 architecture behav of half_add is component and_2 por..

테크/ROS

[ROS] 기본 용어 및 컨셉

Node - 각 프로세스들을 Node의 단위로 관리 - 노드들끼리 데이터를 주고받기 위해서는 어떤 노드가 생겼고, id는 볓번이고 등의 정보가 공유되어야 함. - 이를 관리해주는 것이 ROS Master rosrun & roslaunch Node를 실행시키는 방식 1) roslaunch : launch파일을 통해 한번에 여러개의 Node를 동시에 실행 roslaunch 2) rosrun : 단 하나의 Node를 실행 rosrun launch file - .launch 파일은 xml형식으로 구성 1) line의 시작과 끝, 태그 or ... 2. tag 종류 : launch 파일임을 알려주는 tag : launch 파일에서 다른 launch파일을 가져올 수 있음 : 단일 node를 추가하고자 하는 경우에 ..

테크/ML | DL

[ML/DL] Cross-Entropy를 이용한 MNIST

Entropy / Cross-Entropy 엔트로피란 물리에서 '무질서도'를 가리키는 용어이지만 확률, 딥러닝분야에선 정보를 표현하는데 필요한 최소 평균 자원량(bit수)를 의미한다. 엔트로피를 통해서 알 수 있는 정보는 1. 엔트로피는 가장 최적의 방식으로 코딩했을 때 비트수를 나타낸다. 2. 엔트로피보다 더 짧게 코딩할 수 없다. 일반적인 엔트로피 수식은 다음과 같다. 여기서 pk는 '실제확률'를 의미하며 확률이 크면 짧게 코딩하고, 확률이 작으면 길게 코딩하는것이 효율적이라고 한다. 표본 샘플의 확률이 전부 동일하면 엔트로피가 최대값이 나오게된다. 이는 곧 비트수가 최대가 된다는 의미이며 결국 최악의 경우가 된다는 뜻이다. 반면, 샘플의 확률이 각각 달라서 특정 확률에 치우쳐져 있다면 엔트로피는 작..

테크/ML | DL

[ML / DL] MNIST 학습모델

MNIST (Modified National Institute of Standards and Technology) MNIST란 손으로 쓴 숫자를 기계학습을 통해서 인식하도록 하는 모델이다. MNIST데이터 베이스에 60,000개의 트레이닝 이미지와 10,000개의 테스트 이미지가 있어서 이를 활용하면서 기계학습을 시켜나갈 수 있다. MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges yann.lecun.com 신경망 구성 MNIST데이터셋을 이용한 기계학습은 input layer와..

테크/ML | DL

[ML/DL] 경사 하강법 SGD 실습(with.python)

딥러닝 학습 초기 a지점에서의 x값을 W0라고 하자. 해당 지점에서의 y값은 L이다. 이 때, a의 접선 즉 a의 순간 기울기(dL/dW0)는 음수가 나타나고 a'에서의 기울기는 양수가 나타난다. 기울기가 가장 작은값, 즉 기울기가 0에 수렴하도록 W의 값을 조절해야 가장 최적의 추세선을 그릴 수 있게 된다. 이를 수식으로 나타내면 다음과 같으며 이런 작업을 '경사하강법' 이라고 한다. 딥러닝관점에서 볼때 W를 가중치라고 부르며 가중치의 비중에 따라 신경망이 어떤 데이터에 더 중요도를 줄것인지 조절한다. 위와같은 알고리즘을 통해서 에러를 최소한으로 수렴하도록 최적의 기울기를 찾아내는것이 딥러닝의 목적이다. SGD(Stochastic Gradient Descent) 확률적 경사 하강법 - 오차가 더 이상 ..

테크/ML | DL

[ML/DL] 딥러닝 기본 개념

딥러닝을 배울때 기본적으로 알고있어야 하는 지식이 상당히 많다. 2학년을 마치고 딥러닝을 배우고 나서야 대학에서 배운 수학이 인공지능에서 어떻게 쓰이는지 알게 되었다. AI를 배우기 위해 선형대수(행렬), 확률과통계, 미적분은 필수로 알고있어야 한다. error == loss == 오차 == 손실 != 오류 딥러닝에서 사용하는 error라는 용어는 우리가 일반적으로 아는 오류 라는 의미가 아닌 오차라는 뜻을 갖는다. 오차는 다른말로 error, loss, 손실이라고도 부른다. 가중치 숫자를 인식하는 신경망을 예로 들어보자. 8이라는 숫자 이미지는 28x28=784개의 픽셀로 구성되어 있다고 가정하자. 그러면 input으로 784개의 데이터를 입력해 주어야 한다. input layer에 784개의 뉴런이 ..

시그널보내
'테크' 카테고리의 글 목록