본문 바로가기

분류 전체보기66

시리얼 통신 : UART Universal Asynchronous Reciever-TransmitterUART는 총 4개의 연결선(VCC, GND, RX, TX)으로 구성된 full-duplex communication의 종류이다. 가장 일반적인 데이터 구조는 10bit로 8bit 데이터와 start bit(0), stop bit(1)로 구성된다. 이 경우 parity bit를 추가하지 않는 8N1(8-bit, no parity bit, 1 stop bit)의 구조를 가진다.통신을 위해 reciever와 transmittor는 아래 세 가지 사항을 동기화하여야 한다.transmission speed(baud rate) : 9600, 115200 등...data length : 몇 비트의 데이터를 보내/받는가START(0) and.. 2022. 9. 2.
시리얼 통신 : I2C(IIC) Inter-Integrated Circuit I2C 통신은 총 4개의 연결선(VCC, GND, SCL, SDA)으로 구성된 half-duplex communication의 종류이다. 한 개의 마스터(Master)에 여러 개의 슬레이브(Slave)를 연결하여 신호를 송수신할 수 있으며 각 Slave는 특정한 주소로 구분하게 된다. 이 때의 주소를 I2C 주소라고 부르게 된다. UART처럼 통신을 위해서는 2개의 선을 사용하지만 SCL은 Serial Clock을 의미하며 SDA는 Serial Data로 SCL선은 clock 동기화를 위해 사용되어 실제 데이터를 송수신하는 것은 하나의 SDA 선이다. SCL : 마스터와 슬레이브의 데이터 통신을 위한 클럭을 맞춘다. SCL은 기본적으로 풀업 저항에 의해 HIG.. 2022. 9. 2.
Mapping with hector_slam Hector Slam 패키지를 이용하여 지역을 mapping하는 작업을 해보겠다. 패키지 설명은 아래에서 볼 수 있다. Wiki 이제 패키지를 설치하고 테스트를 돌려본다. 온라인에 많은 가이드들은 RPi Lidar나 YDLidar X4 모델을 기반으로 하나 본인은 앞서 사용한 YDLidar G4 모델을 이용한다. # YDLidar package 있는 ros workspace에서 git clone 패키지를 빌드하기 전 일부 설정을 수정해주어야 한다. mapping_default launch file 수정 cd ~/ydlidar_ws/src/hector_slam/hector_mapping/launch sudo nano mapping_default.launch아래 두 줄을 # line no 5,6 #line .. 2022. 9. 2.
시리얼 통신 (개요) 시리얼 통신(Serial Communication)은 직렬 통신이다. 비트마다 회선을 연결하고 한 번에 모든 비트 정보를 송수신하는 병렬 통신(Parallel Communication)은 케이블이 많이 필요하다는 단점이 존재한다. 8비트의 데이터를 보내고자 할 경우 비트마다 하나씩 총 8개에 common ground 1개 총 9개의 케이블이 필요하게 된다. 시리얼 통신은 이런 회선 문제를 단일 회선만 사용하며 전송하는 정보를 순서대로(serial하게) 전송하는 방식으로 해결한다. 시리얼 통신은 비트 수에 맞는 clock이 필요하므로 병렬 통신에 비해 매우 느리다.(병렬 통신은 각자 회선이 있으므로 1clock에 모든 데이터가 전달된다.) 다만 병렬 통신의 경우 선마다 전달하는 데이터가 정해져 있기에 구별.. 2022. 8. 31.
RaspberryPi4 + G4 LiDAR Setting 사조기가 걷기 시작함에 따라 안정적인 보행과 추가 기능 구현의 영역을 분리하기로 하였다. 본 페이지는 LiDAR 센서를 이용하여 이동하는 영역을 mapping하기 위한 소프트웨어를 개발한다. ROS Noetic 기반으로 진행한다. RaspberryPi를 서버로 사용하며 파이에 ssh로 접속하여 화면은 MSI 랩탑 화면에 띄울 수 있도록 한다. Hardware RaspberryPi4 4Gb (server) : Ubuntu20.04 YDLidar model G4 MSI ubuntu laptop (client) : Ubuntu20.04 Setting 가장 먼저 ROS가 설치된 ubuntu 이미지를 입힌 sd카드가 라즈베리파이에 장착되었다는 전제 하에 진행한다. 만약 아니라면 아래 링크를 타고 들어가서 설치하고.. 2022. 8. 30.
Turtlebot Simulation : Navigation 아까 SLAM으로 만든 map을 이용해 Navigation을 시행해본다. 다 끄고 다시 켜준다. export TURTLEBOT3_MODEL=burger # 이거는 어차피 계속 쓸거면 bashrc파일에 저장하는게 편하다 roslaunch turtlebot3_gazebo turtlebot3_world.launch 여기부터는 아까 만들어둔 map.yaml파일이 필요하다. 다른 터미널에서 navigation node를 켜준다. sample map.yaml roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml 이런 화면이 뜰거다. 이 또한 RVIZ에서 돌아간다. 제대로 navigation을 하려면 Initial P.. 2022. 8. 23.
반응형