전체 글
-
데브코스 자율주행_TIL_23.10.10데브코스 자율주행 Perception/_TIL(Today I Learned) 2023. 10. 27. 22:48
오늘 배운 내용 1. Arduino & Ultrasonic - 초음파 센서 확장 2. rviz - 주어진 센서 패키지 통합 3. 회피 주행 과제 1. 초음파 센서 확장 이전에 1개만 사용한 초음파 센서를 4개로 확장한 방법에 대해 알려준다. 크게 어려운 것은 없으며 추가된 센서의 데이터를 받아오고 Int32MultiArray로 한번에 데이터를 주고 받게 해준다. 2. 주어진 센서 패키지 통합 이전에 만든 뷰어 패키지를 하나로 통합하였으며, URDF파일 수정과 모든 패키지를 하나의 launch 파일에서 실행하는 방법을 진행하였다. 3. 회피 주행 과제 라이다 센서 및 초음파 센서의 회피 주행 과제의 팁을 알려주셨다. 이번주 남은 3일은 실제 자이카를 다루며 실습을 진행하는데, 기존에 다뤄본 로봇들과 어떤 ..
-
데브코스 자율주행_TIL_23.10.09데브코스 자율주행 Perception/_TIL(Today I Learned) 2023. 10. 27. 22:47
오늘 배운 내용 1. rviz - Lidar 2. Arduino & Ultrasonic - Ultrasonic 1. rviz_Lidar sensor Lidar 센서는 laser를 쏴서 주변에 어떤 장애물들이 있는지 감지하는 센서이다. xycar에서 제공하는 센서의 스펙은 다음과 같다. 주어진 rosbag 파일을 활용하여 Lidar 뷰어 프로그램 실습을 하였으며, rviz상에서 감지되는 lidar 값을 원뿔 형태로 시각화 하였다. 2. rviz_Ultrasonic sensor xycar의 Ultrasonic 센서는 아두이노 MEGA board와 의 HC-SR04센서로 실험을 하였으며 구성은 다음과 같다. 센서 데이터를 받는 프로그램은 Arduino IDE로 작성하였고, ROS에서 usb port를 지정하여..
-
_ROS1_ultrasonicROS/ROS1 2023. 10. 27. 22:40
이번에는 초음파 센서 ROS 패키지를 만들어보려고 한다. 필요한 것은 Linux computer, Arduino, HC-SR04 초음파센서이다. 소리의 속도는 초속 340m로 1cm 이동에 약 29us 소요가 된다면 다음과 같은 수식을 얻을 수 있다. $$ x=\frac{t(us) \div 2}{29(us)}(cm) $$ x: 물체까지의 거리 t: 송신과 수신의 시간차 이제 아두이노와 초음파 센서를 연결하고 아두이노 IDE에 프로그램을 작성했다. 초음파 센서와의 연결은 다음과 같다. (D는 Digital pin을 의미한다.) Vcc: 5v pin Trig: D2 pin Echo: D3 pin Gnd: GND pin 소스코드는 다음과 같다. Arduino //핀 지정 #define trig 2 #defin..
-
_ROS1_LidarROS/ROS1 2023. 10. 24. 23:37
이번에는 Lidar센서를 활용하여 rviz에 시각화를 하려고 한다. 이번에는 이전에 사용했던 jackal gazebo 시뮬레이션으로 라이다 데이터를 만들어 사용할 것이다. 사용하는 라이다의 스펙에 맞춰서 설정하여 사용하였다. 0.1m ~ 12m, 그리고 360도 전방위 스캔을 할 수 있는 시뮬레이션이다. /front/scan으로 시뮬레이션 상의 topic을 받고 있으며 해당 데이터를 rviz에 실행을 해보려고 한다. rviz에 시각하기 위해 다음과 같이 장애물을 놓고 시작하였다. 시각화 프로그램인 rviz를 실행하고 By topic의 laserscan을 추가하면 다음과 같이 붉은 점을 볼 수 있다. 하지만, 데이터가 잘 보이지 않으므로 size(m)을 잘 조정한다면 데이터를 크게 볼 수 있다. rviz기..
-
_ROS1_sensors & IMUROS/ROS1 2023. 10. 24. 16:25
자율주행 기술을 구현하기 위해 기본적으로 다음의 센서들을 사용한다. Depth Camera Mono Camera Lidar Rader Ultrasonic IMU(Inertial Measurement Unit) Mono Camera sensor 단안 카메라 센서는 로봇에게 이미지 또는 영상데이터를 주며 받은 데이터를 OpenCV로 처리하여 차선을 인식하거나 물체를 검출하는 용도등 다양하게 사용할 수 있는 센서이다. 전통적인 방법으로는 특징점을 추출하는 방법들이 있으며, 아직도 AI와 함께 사용되는 경우가 있다. Depth Camera sensor Depth카메라는 두 카메라에서 얻은 이미지를 사용하고, 두 이미지의 거리차를 계산하여 물체의 거리 데이터를 얻을 수 있다. 대표적으로 Intel realsens..
-
_ROS1_rvizROS/ROS1 2023. 10. 23. 23:02
rviz는 ROS의 시각화 툴로 토픽들을 시각화 할 수 있는 도구이다. 이번에는 URDF(Unified Robot Description Format)제공 파일을 가지고 rviz에서 토픽들을 시각화 해보려고 한다. 주어진 rviz_xycar 패키지 내부의 urdf를 rviz에서 구현하고 joint states gui로 구동을 확인해보려고 한다. 우선적으로 joint states publisher패키지를 다음 명령어로 설치할 수 있다. $ sudo apt install ros-melodic-joint-state-publisher $ roslaunch rviz_xycar xycar_3d.launch 설치 및 실행후 joint_state_publisher로 rviz 상의 자동차를 제어할 수 있다. 이번에는 mo..
-
자율주행Self driving 2023. 10. 22. 21:38
인공지능, 빅데이터등 4차 산업혁명이 진행되었으며, 이 기술들을 기반으로 자율주행 자동차 기술이 발전하고 있다. 미국 자동차 기술 학회(SAE)는 자율주행 자동차 기술을 6단계로 나눠서 설명을 한다. 하지만 아직 3단계까지 온 차량들은 많지 않으며 3단계까지는 고속도로, 4단계부터는 도시 자율주행도 가능하다고 한다. 현대, 테슬라, 웨이모 등 다양한 기업에서 자율주행기술을 개발하고 있으며, 각 기업마다 개발 방향과 목적이 다를 수 있다. 자율주행 요소 기술 자율주행은 인지, 판단, 제어로 크게 분류할 수 있다. 이는 사람의 운전 방식과 비슷하다고 볼 수 있다. 자율주행을 하기 위해 개발된 다음의 기술들이 있으며 이외에 다양한 기술들이 있다. 고정밀 지도 제작(벡터맵, 포인트맵 등) Localization..
-
_ROS1_노드 실습(2)ROS/ROS1 2023. 10. 17. 19:34
1. 타임 슬롯 만약 데이터를 주기적으로 발송하다가 타임슬롯을 오버하면 어떻게 될까?? 주로 rospy.Rate()와 rospy.sleep()으로 이 주기를 조절하는데 이를 그림으로 표현하면 다음과 같이 볼 수 있다. Rate(5)는 1초에 하는 일의 양을 이야기하며 0.2초씩 1번 일을 수행한다. rate.sleep()은 0.2초안에 일을 하고 남은 시간은 쉰다는 의미이다. 이번에는 일을 수행하는 양이 많아져서 0.2초를 넘는다면 어떻게 되는지 보자. - Python - sender_job.py #!/usr/bin/env python import rospy import time from std_msgs.msg import Int32 def do_job(count): for i in range(0, co..