본문 바로가기

Project/RIS

(19)
[RIS : 프로젝트 종료] Project 목적 : 자율주행 로봇 플랫폼 개발 Project 수행 기간 : 2022.09.01 ~ 2023.02.28 (6개월) 참여 인원 : Hardware 2명, Software 3명 - System 구성 OS : Ubuntu 20.04 - ROS Noetic Controller Board : Jetson Xavier NX 1) Hardware 구성 2개의 구동 Motor + 1개의 Caster Wheel의 2Wheel - Differential - Drive Mobile Robot의 형태 (3점 지지) Solid Works를 통해 Robot의 Hardware 설계 진행 알루미늄으로 밑바닥을 구성하고, 3D 프린터를 통해 외피 제작 2) 사용 센서, 부품 Motor : MDRobot - MDH10..
[RIS] 최종 정리 - System 구성 OS : Ubuntu 20.04 - ROS Noetic Controller Board : Jetson Xavier NX 초기엔 Jetson Nano를 사용했으나 성능이 떨어져 제약이 많아 Xavier로 변경 아래 과정을 거쳐 external memory 사용 https://youngseong.tistory.com/113 [RIS] 12/1 (sdkmanager USB, external memory 사용) SDK Manager에서 NVME가 아닌 USB로 설치 external memory 사용을 위한 명령어 $ get_jetson_files.sh $ install_dependencies.sh # install depedencies $ flash_jetson_external_storag..
[RIS] 2/5 Motor Encoder 값 수신 완료 MD200T의 Source Code 분석 후 Encoder값을 ROS Message로 Publish하는 코드 추가 1. main.cpp // Tick Value Publisher ros::Publisher rightPub; ros::Publisher leftPub; std_msgs::Int32 right_ticks; std_msgs::Int32 left_ticks; main문 전에 각 바퀴의 Encoder값을 Publish할 Publisher와 실제 Encoder 값을 저장할 Message 선언 다른 파일들에서 해당 변수들을 사용하기 위해 전역변수로 선언 // Declare left and right motor`s tick pulishers rightPub = nh.advertise("right_tick..
[RIS] Navigation 관련 문제 (2/24 해결) 2/24에 해당 문제 해결 (아랫 부분에 설명) - Navigation을 위한 Software 구성 https://youngseong.tistory.com/130 [RIS] 1/11 (전체 Sotfware 구성) - Robot의 전체적인 Software 구성 사용중인 모터 드라이버의 ROS Package clone https://github.com/YoungSeong98/md GitHub - YoungSeong98/md Contribute to YoungSeong98/md development by creating an account on GitHub. github.com - Sensor 전체 youngseong.tistory.com 위 과정을 통해 Navigation Stack 구성을 완료하고 SLAM..
[RIS] 1/11 (Navigation Stack 구성 완료) - 아래의 내용들을 토대로 Robot의 전체적인 Software 구성 https://youngseong.tistory.com/102 [KUSMO] 11/4 (Navigation Stack 구성법) 로봇의 ROS Navigaion Stack 구성 Navigation stack은 로봇을 시작점에서부터 목적지까지 안전하게 움직일 수 있게 하는 소프트웨어의 집합 http://wiki.ros.org/navigation/Tutorials/RobotSetup navigation/Tutorials/RobotSetup youngseong.tistory.com 사용중인 모터 드라이버의 ROS Package clone https://github.com/YoungSeong98/md GitHub - YoungSeong98/md..
[RIS] 1/10 (cv2를 통한 rviz map 생성) - 평면도(Floor Plan)나 청사진(Blueprint)를 이용하여 rviz에서 활용할 수 있는 map을 생성하는 방법 이 과정은 robot이 자동적으로 navigate를 하도록 만들기 위해 중요한 과정 보통 Lidar를 통해 mapping을 수행하나, 미리 만들어놓은 평면도나 청사진이 있다면 더 정확한 map을 생성할 수 있음 이 과정을 수행하기 위해선 3.7 버전 이상의 Python이 필요함 우선 floor plan이나 blueprint가 .png format인지 확인한다 import cv2 # Import OpenCV # read the image file img = cv2.imread('test.png') ret, bw_img = cv2.threshold(img, 220, 255, cv2.TH..
[RIS] CURT 작성 초안 - Robot의 odometry(Encoder + IMU), TF, 와 Lidar(RPLidar)로 scan한 data를 토대로 Map 작성 Odometry : 주행기록계라는 뜻으로 시간에 따른 위치 변화를 추정하는 개념으로, GPS와 같은 절대적 위치가 아닌 출발 지점으로부터의 상대적인 위치를 추정한다. Motor의 Encoder의 회전수를 통해 거리를 측정하고, IMU센서를 통해 기울기를 측정하여 로봇의 위치 추정 IMU(Inertial Measurement Unit) Sensor : 관성을 측정하여 물체가 기울어진 각도를 측정함 TF(Transform) : 좌표변환이라는 뜻으로 scan data 변환을 위해 사용됨. Extended Kalman Filter를 사용하여 더 정확한 robot의 자세 추..
[RIS] 1/9 (initial pose/goal, odometry publisher, ekf) - ROS를 통한 Robot의 Initial Pose / Goal에 대한 Publisher 생성법 $ cd ~/catkin_ws/src/kusmo_bot $ catkin_create_pkg localization_data_pub rospy roscpp std_msgs tf tf2_ros geometry_msgs sensor_msgs nav_msgs $ cd ~/catkin_ws $ catkin_make --only-pkg-with-deps localization_data_pub kusmo_bot 폴더에 localization_data_pub package 생성 후 compile $ cd /src/kusmo_bot/localization_data_pub $ geit CMakeLists.txt Package..