0. 개요 앞서 OpenCV가 어떤방면에서 사용되는지 , 특징은 어떠한지 알아보았다. 직접 OpenCV를 활용하기 위해서 기초적인 사용법에 대해서 알아보자. 1. 도형그리기 OpenCV에서는 선, 사각형, 원, Text 와 같은 도형을 그리는 기능을 제공한다 아래의
OpenCV란 컴퓨터 비전 (Computer Vision)을 위해 만들어진 오픈소스로 이미지 및 비디오 처리를 위한 라이브러리이다.컴퓨터 비전 및 머신러닝, 의료분야, 로봇 및 자율주행 차량, 인공지능, 딥러닝 등과 같이 다양한 방면에서 사용되고 있다.예를들면 공장에서
👀0.개요 💡0.1 데이터 만들기 두가지 데이터를 사용하였는데, 첫번째 데이터는 y = (x-10)(x-20) 두번째 데이터는 y = (x-10)(x-20)(x-30) 데이터를 x범위 0~50 으로 세팅하여 csv파일을 각각 만들었다. 아래의 코드를 통해 쉽게 c
이 세상에 존재하는 로봇을 컨트롤 하기 위해서는 컨트롤러가 필요하다.로봇이 어떤 좌표에 도달하고자 할 때, 어떻게 제어해야 원하는 좌표를 찾아 갈 수 있을까?이번시간에는 여러가지 컨트롤러들을 통해 로봇을 컨트롤 하는 값을 제어하여 원하는 좌표로 도달할 수 있게끔 하는
우선 rviz에 여러가지 토픽을 추가하자.추가한 토픽에 대해서 설명하자면,기존에 사용하였던 Map, LaserScan, RobotModel , PoseArray 을 제외하고Global Cost Map, Local Cost Map, Global Plan, Local Pl
지난번에 로봇이 자율주행 하기 위해서 필요한 Mapping 이라는 요소를 알아보았다.이번에는 Localization에 대해서 알아보고 어떤식으로 동작하는지 알아보자.아래의 사진은 이번에 사용할 로봇 모델 husky.rviz 에서 depth 카메라 및 AMCL을 사용해서
자율주행에서 mapping은 아주 중요한 요소이다.로봇이 SLAM을 이용하여 Mapping을 어떻게 하여 Map 파일을 만드는지 아래의 과정을 통해 알아보자목차1\. Rviz에서 Mapping 과정 시각화 하기2\. Map 파일 다루기3\. Transforms4\. S
지금까지 ROS의 시뮬레이션 기초에 대해서 강의를 들으면서 배운내용들을 확인하기 위한 과제를 수행해보자.아래의 목차의 순서대로 진행하면서 배운내용들을 다시 돌아보자!1.🚖모델 및 월드생성2.🔌플러그인 생성3.🤖gazebo 차량 수정4.🎮회피 알고리즘 설계🗿mo
population을 이용하여 World를 제작해 보았다.population의 다양한 패턴을 사용하여 물체를 배치해보았다.random , grid , linear 과 같은 패턴이 존재하는데,각각의 tag의 사용법을 좀더 익힐 수 있었다.만든 world에 robot을 소
앞에서 시뮬레이션 환경의 기본편을 알아보았다.이번시간에는 자율주행을 위한 네비게이션 요소에 대해서 알아보고 실용적인 실습도 진행해본다.예제코드를 통해 자율주행에 무엇이 필요한지 간단하게 알아보고, 자세한 활용방법에 대한 것은 차후 알아보도록 하겠다.위 모델링 파일이 이
Gazebo Plugin이란? Gazebo 시뮬레이션 환경에서 다양한 사물의 움직임을 구현하거나, 기능을 구현하는데 사용된다.로봇의 센서,엑추에이터, 컨트롤러를 구현하는데 활용할 수 있다. Python이나 C++로 작성 될 수 있으며,이번시간에서 C++로 Plugin을
지난 시간에 Gazebo에서 사용할 수 있는 Tag 및 Plugin, 적용방법에 대해서 학습하였다. 그리고 world 파일 tag population에 대해서 학습하면서 규칙을 생성하여 월드를 만드는 방법에 대해서 학습하였다.이번 시간에는 카메라 모듈을 적용한 로봇 모
world를 생성할때 population tag를 사용하면 오브젝트를 하나씩 배치하지 않고 일정한 규칙을 지정하여 생성하거나 랜덤으로 배치 할 수 있는 기능을 가진다. 실습을 통해 population의 사용법을 알아보자.population tag를 이용하여 world
Gazebo에서 사용할 3D모델을 직접 구성하여 여러가지 속성의 동작에 대해서 알아보자.박스형태의 간단한 모델을 제작해보자.🚖model.sdfsdf파일에는 urdf와 비슷하게 물체의 속성 (무게, 크기, 재질 등)을 결정하는 코드를 작성 할 수 있다.위 코드 같은 경
목차1\. Gazebo의 Ros 노드2\.Gazebo에서 여러가지동작을 하는 명령어를 터미널을 이용 할 수 있다.아래의 코드에 추가로 덧붙혀서 사용할 수 있으며 각각의 기능에 대해서 알아보자.gazebo의 모든 객체들이 멈추게 된다.일시정지가 해제된다.모든 오브젝트의
지난 시간에 로봇을 만드는 실습을 진행하였다.이번시간에는 Gazebo에서 로봇을 스폰하는 방법에 대해서 알아보겠다.🚀empty_world.launch월드를 생성하는 launch 파일.월드의 속성을 정의할 수 있다.🚀spawn_robot.launch로봇을 스폰할 위치
Rviz 및 urdf를 활용하여 자동차 모델링을 해보자.🤖robot.urdflaunch 파일은 생략한다.Rviz를 통해 위 코드를 동작시켜보면 아래의 그림과 같은 모형이 나타난다.각각의 코드가 어떤역할을 하길래 위와 같은 동작을 수행 할 수 있는 것일까?위 코드는 l
0.URDF란? URDF (Unified Robot Description Format)은 직역하면 통합 로봇 설명 형식으로 로봇의 3D 형상 및 외관, 관성 등 물리적 특성 등을 XML 언어로 정의한 로봇 모델링 언어이다. URDF로 정의된 로봇은 RVIZ 및 Gaze
지난시간에는 RViz에 3D모델링 된 자동차를 띄우고, 바퀴를 제어하는 프로그래밍을 진행하였다. 이번 시간에는 odom이라는 토픽을 만들어, RViz 오도메트리 프로그램에 전송하여 자동차를 가상공간에서 직접 움직여보고, 궤적을 남기는것을 추가하여 주행하는 프로그램을 작