두 가지 노드가 통신을 할 때 받은 토픽을 가공하여 다시 토픽으로 보내는 실습을 진행한다.student_remote 및 teacher_remote 노드는 서로 Publisher, Subscriber 두가지 역할을 모두 가지고 있다.student_remote 에서 자신의
⌨️sender_serial.py⌨️reciever_serial.py위와 같이 publisher와 Subscriber 의 코드를 작성하고 실행해보자!실행화면은 아래와 같다.실행화면Publisher는 첫번째로 1을 보냈는데,데이터가 누락되었고, 두번째 데이터부터 받기 시
ROS에서 노드끼리 통신을 할 때 메세지 타입을 Int32,String ,Bool 과 같은 자료형으로 지정할 수 있지만, 커스텀 메세지를 만들어서 보낼 수도 있다. 여러가지 자료형을 담을 수 있어서 필요할 때 만들어서 사용하면 용이하게 쓸 수 있다. 예를들어 아래와 같
ROS의 Rviz 프로그램을 이용하면 3D자동차 모델을 조작하는 시뮬레이션이 가능하다. 이번시간에는 Rviz를 통해 자동차를 제어하는 시뮬레이션 프로그래밍을 진행한다. RViz위의 사진은 RViz 단독 실행 화면이다. 지금은 아무것도 보이지 않지만 코드를 작성하여 자동
지난시간에는 RViz에 3D모델링 된 자동차를 띄우고, 바퀴를 제어하는 프로그래밍을 진행하였다. 이번 시간에는 odom이라는 토픽을 만들어, RViz 오도메트리 프로그램에 전송하여 자동차를 가상공간에서 직접 움직여보고, 궤적을 남기는것을 추가하여 주행하는 프로그램을 작
0.URDF란? URDF (Unified Robot Description Format)은 직역하면 통합 로봇 설명 형식으로 로봇의 3D 형상 및 외관, 관성 등 물리적 특성 등을 XML 언어로 정의한 로봇 모델링 언어이다. URDF로 정의된 로봇은 RVIZ 및 Gaze
Rviz 및 urdf를 활용하여 자동차 모델링을 해보자.🤖robot.urdflaunch 파일은 생략한다.Rviz를 통해 위 코드를 동작시켜보면 아래의 그림과 같은 모형이 나타난다.각각의 코드가 어떤역할을 하길래 위와 같은 동작을 수행 할 수 있는 것일까?위 코드는 l
지난 시간에 로봇을 만드는 실습을 진행하였다.이번시간에는 Gazebo에서 로봇을 스폰하는 방법에 대해서 알아보겠다.🚀empty_world.launch월드를 생성하는 launch 파일.월드의 속성을 정의할 수 있다.🚀spawn_robot.launch로봇을 스폰할 위치
목차1\. Gazebo의 Ros 노드2\.Gazebo에서 여러가지동작을 하는 명령어를 터미널을 이용 할 수 있다.아래의 코드에 추가로 덧붙혀서 사용할 수 있으며 각각의 기능에 대해서 알아보자.gazebo의 모든 객체들이 멈추게 된다.일시정지가 해제된다.모든 오브젝트의
업로드중.. 0.개요 자이카를 조작하기 위해서는 모터를 제어하는 코드를 작성해야한다. 자이카에는 아래의 그림과 같이 2개의 모터가 내장되어 있다. 그리고 VESC 장치가 내장되어 있으며, 모터에 신호를 보내 모터를 조작할 수 있다. 두 가지 모터를 적절히 제어하여 자
Gazebo에서 사용할 3D모델을 직접 구성하여 여러가지 속성의 동작에 대해서 알아보자.박스형태의 간단한 모델을 제작해보자.🚖model.sdfsdf파일에는 urdf와 비슷하게 물체의 속성 (무게, 크기, 재질 등)을 결정하는 코드를 작성 할 수 있다.위 코드 같은 경
world를 생성할때 population tag를 사용하면 오브젝트를 하나씩 배치하지 않고 일정한 규칙을 지정하여 생성하거나 랜덤으로 배치 할 수 있는 기능을 가진다. 실습을 통해 population의 사용법을 알아보자.population tag를 이용하여 world
지난 시간에 Gazebo에서 사용할 수 있는 Tag 및 Plugin, 적용방법에 대해서 학습하였다. 그리고 world 파일 tag population에 대해서 학습하면서 규칙을 생성하여 월드를 만드는 방법에 대해서 학습하였다.이번 시간에는 카메라 모듈을 적용한 로봇 모
0.개요 ROS 개발을 하면서 자주 깜빡하거나 알아두면 좋은 내용들을 순서 상관없이 정리하는 글이다. >
Gazebo Plugin이란? Gazebo 시뮬레이션 환경에서 다양한 사물의 움직임을 구현하거나, 기능을 구현하는데 사용된다.로봇의 센서,엑추에이터, 컨트롤러를 구현하는데 활용할 수 있다. Python이나 C++로 작성 될 수 있으며,이번시간에서 C++로 Plugin을
앞에서 시뮬레이션 환경의 기본편을 알아보았다.이번시간에는 자율주행을 위한 네비게이션 요소에 대해서 알아보고 실용적인 실습도 진행해본다.예제코드를 통해 자율주행에 무엇이 필요한지 간단하게 알아보고, 자세한 활용방법에 대한 것은 차후 알아보도록 하겠다.위 모델링 파일이 이
population을 이용하여 World를 제작해 보았다.population의 다양한 패턴을 사용하여 물체를 배치해보았다.random , grid , linear 과 같은 패턴이 존재하는데,각각의 tag의 사용법을 좀더 익힐 수 있었다.만든 world에 robot을 소
지금까지 ROS의 시뮬레이션 기초에 대해서 강의를 들으면서 배운내용들을 확인하기 위한 과제를 수행해보자.아래의 목차의 순서대로 진행하면서 배운내용들을 다시 돌아보자!1.🚖모델 및 월드생성2.🔌플러그인 생성3.🤖gazebo 차량 수정4.🎮회피 알고리즘 설계🗿mo
자율주행에서 mapping은 아주 중요한 요소이다.로봇이 SLAM을 이용하여 Mapping을 어떻게 하여 Map 파일을 만드는지 아래의 과정을 통해 알아보자목차1\. Rviz에서 Mapping 과정 시각화 하기2\. Map 파일 다루기3\. Transforms4\. S
지난번에 로봇이 자율주행 하기 위해서 필요한 Mapping 이라는 요소를 알아보았다.이번에는 Localization에 대해서 알아보고 어떤식으로 동작하는지 알아보자.아래의 사진은 이번에 사용할 로봇 모델 husky.rviz 에서 depth 카메라 및 AMCL을 사용해서
우선 rviz에 여러가지 토픽을 추가하자.추가한 토픽에 대해서 설명하자면,기존에 사용하였던 Map, LaserScan, RobotModel , PoseArray 을 제외하고Global Cost Map, Local Cost Map, Global Plan, Local Pl