분류 전체보기

    빅데이터 첫걸음 시작하기 : 데이터분석 인강 3주차

    3주차 수업 3주차부터는 데이터 관리를 편리하게 해주는 pandas 라이브러리와 데이터 시각화 라이브러리인 seaborn을 간단히 배우고 난 뒤, 본격적으로 지금까지 배웠던 파이썬 언어를 바탕으로 데이터 분석 실습이 진행하였다. pandas는 데이터 프레임 형태의 단위로 데이터를 저장하며, 정형화되고 수치형인 데이터에 특화되어 있다. 엑셀의 경우에는 방대한 양의 데이터를 처리할 수가 없다. 그러나 pandas의 데이터프레임은 numpy array를 베이스로 지원하고, 파이썬과 함께 쓰이기 때문에 아주 많은 양의 데이터를 처리하는데 상당한 퍼포먼스를 보인다. 지금은 빅데이터가 일상화가 된 세상에 적합한 데이터 분석 라이브러리라고 생각된다. 본 강의에서는 pandas를 이용한 인덱싱과 파일 I/O 등 기본적..

    ROS 프로그래밍 실습(이동, 회전)

    만약 ROS 시뮬레이션 관련 패키지들을 다운받지 못했다면 다음 사이트로 넘어가서 클론하도록 하자. https://emanual.robotis.com/docs/en/platform/turtlebot3/autonomous_driving/#getting-started ROBOTIS e-Manual emanual.robotis.com Wanderbot red_light_green_light.py 3초간 멈춰 있다가 3초 전진을 반복 1. 패키지 생성 cd ~/catkin_ws/src catkin_create_pkg wanderbot rospy geometry_msgs sensor_msgs mkdir scripts 2. python 파일 생성, 권한부여 및 코드 작성 chmod +x red_light_green_..

    ROS 프로그래밍

    ROS 프로그래밍 전에 알아둬야 할 사항 표준 단위: SI 단위 사용 좌표 표현 방식: x(forwoard), y(left), z(up) - 오른손 법칙 프로그래밍 규칙: 패키지, 토픽, 파일, 네임스페이스 명명 규칙을 따라야 한다. (구글링으로 확인) ROS 메시지 통신 이전에 설명했기 때문에 넘어가겠다. 파라미터 서버는 매개변수의 마스터 역할을 한다. 유저가 정해놓은 파라미터를 저장하고 있고, 임의의 명령을 통해 파라미터 값을 바꿀 수 있다. 해당 파라미터에 관련된 노드가 그 값을 참조하게 된다. Topic / Publisher / Subscriber 1) 패키지 생성 ROS에서는 단방향 통신일 때 'Topic'이라는 메시지 통신을 사용한다. 이때 송신 측을 'Publisher', 수신 측을 'Sub..

    ROS 도구

    RVIZ(ROS Visualization Tool) ROS의 3D 시각화툴 - 레이저, 카메라 등 여러 센서 데이터의 시각화 툴 로봇 외형의 표시와 계획된 동작을 표현 Navigation Manipulation 원격 제어 매우 다양한 형태의 데이터를 RVIZ tool에서 시각화가 가능하다. RQT 플러그인 방식의 ROS의 종합 GUI 툴 rqt는 Qt로 개발되어 있기 때문에 유저들이 자유롭게 플러그인을 개발하여 추가할 수 있다. 대표적인 플러그인으로 rqt_image_view, rqt_graph, rqt_plot, rqt_bag 등이 있다. 위 사진은 rqt_graph 플러그인을 실행했을 때이다. 노드 간 통신이 어떤 식으로 이루어지는지를 쉽게 알 수 있다. Gazebo 로봇 개발에 필요한 3차원 시뮬레..

    ROS 명령어

    Commend-Line Tools ROS 셸 명령어 별표는 명령어의 중요도를 나타냄 roscd(★★★) : ros+cd(changes directory) - 지정한 ROS 패키지의 디렉터리로 이동 rosls(★☆☆): ros+ls(list files) - ROS 패키지의 파일 목록 확인 rosed(★☆☆): ros+ed(editor) - ROS 패키지의 파일 편집 roscp(★☆☆): ros+cp(copies files) - ROS 패키지의 파일 복사 rospd(☆☆☆): ros+pushd) - ROS 디렉터리 인덱스에 디렉터리 추가 rosd(☆☆☆): ros+directory) - ROS 디렉터리 인덱스 확인 ROS 실행 명령어 roscore(★★★): ros+core - master(ROS 네임 서비..

    ROS 중요 컨셉

    ROS 용어 Node 최소 단위의 실행 가능한 프로세서 프로그램은 한 번에 짜는 것이 아니라 여러 개의 노드가 합쳐진 것임(카메라 노드, 라이다 노드 등) 각 노드는 메시지 통신으로 데이터를 주고 받는다. Package 하나 이상의 노드, 노드 실행을 위한 정보 등을 묶어 놓은 것 패키지의 묶음을 메타 패키지라 하여 따로 분리한다. Message 메시지를 통해 노드 간의 데이터를 주고 받게 된다. 메시지는 integer, floating point, boolean과 같은 변수 형태 Topic 단방향이고 연속적으로 이어지는 통신 형태 일방적으로 데이터를 보내는 상황에 사용된다. 예를 들어 거리 센서 등에서 보낼 때 토픽을 쓴다. 목적에 따라서 1:N, N:1, N:N 통신이 가능하다. 가장 많이 쓰인다. ..

    Photolithography

    Photolithography 반도체 웨이퍼 위에 감광 성질이 있는 포토레지스트를 얇게 바른 후, 원하는 마스크 패턴을 올려놓고 빛을 가해 사진을 직는 것과 같은 방법으로 회로를 형성하는 기술을 말한다. 위처럼 PR을 웨이퍼에 고르게 도포한다. 이후 Exposure(노광)을 통해 PR 막에 회로 패턴을 찍어내고, Development(현상) 과정을 통해 PR 막을 제거한다. 이때 빛을 받은 부분의 PR 막을 제거하는 것을 positive PR, 빛을 받지 않은 부분의 PR 막을 제거하는 것을 negative PR이라고 한다. positive PR: 빛을 받은 부분만 사라지고, 받지 않은 부분만 단단해서 남는다. negative PR: 빛을 받은 부분만 단단해져서 남고, 빛을 받지 않은 부분만 사라진다. ..

    [Python] 정렬(Sort)

    선택 정렬(Selection Sort) 데이터가 무작위로 여러 개 있을 때, 이 중 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그다음 작은 데이터를 선택해 앞에서 두 번째 데이터와 바꾸는 과정을 반복하는 정렬 방식 선택 정렬의 시간 복잡도는 O(N^2)으로 매우 크다. 데이터의 수가 적을 때만 사용할 수 있다. array = [7, 5, 9, 0, 3, 1, 6, 2, 4, 8] for i in range(len(array)): min_index = i # 가장 작은 원소의 인덱스 for j in range(i + 1, len(array)): if array[min_index] > array[j]: min_index = j array[i], array[min_index] = array[m..