.. Cover Letter

ㅇ 프로젝트/TEAM_실내외배송로봇 13

ROS 패키지 상에서 작동하는지 확인해보자. (패키지 설계) 실제로봇 주행..

이 글은 잠을 참고 정리하는 글이므로, 정리가 대충되어있습니다. ROS package 설계 ㅇ 요약 현재 진행상황 요약 : 가제보상에서 토픽으로 이동요청시 이동함. 2개의 패키지를 제작했습니다. minibot_indoor 패키지 (실내 경로생성 알고리즘이 들어있는 패키지 입니다.) minibot_msg 패키지 (메시지의 모음입니다) 1. 각 패키지에 대한 설명 minibot_indoor 는 실내 경로생성 알고리즘이 들어 있는 패키지 입니다. 해당 패키지에 대한 설명을 하면서, 메시지 타입은 msg에 작성되어 있습니다. 해당 패키지에는 현재 두 알고리즘이 들어가있습니다. 라이다에서 전방 물체를 판단하는 방법 (tistory.com) 라이다에서 전방 물체를 판단하는 방법 실제로봇의 경우 YDLidar를 사용..

라이다에서 전방 물체를 판단하는 방법

실제로봇의 경우 YDLidar를 사용하는데 이번 프로젝트에서 Lidar의 값을 구독하여 전처리하고, 다시 발행하는 과정에서 문제가 생겼다. 오류의 내용은 QoS (데이터 통신) 문제로 발행하는 부분과 구독하는 부분이 서로 합이 맞지 않는다는 이야기였다. 우리가 짠 코드는 라이다의 전방영역의 가장 작은 값이 0.35 이내라면 장애물이 판별되었다는 Topic을 발행하라는 코드이다. import rclpy as rp from rclpy.node import Node from sensor_msgs.msg import LaserScan from minibot_msgs.msg import IsObstacle class ObstacleDetect(Node): # /scan topic을 구독하고 장애물이 가까이 있는지..

실내 경로생성 알고리즘의 아이디어 및 코드 설명

팀원에게 설명해주기 위해 작성한 글을 블로그에 그대로 올리는 글입니다. 초기 설정 및 파리미터 설명 노트북이 없어서 rviz는 스크린샷을 찍을 수 없는 상태입니다. 들어가기 전 minibot 패키지를 설치하는 곳은 노트북과 로봇입니다. 그래서 만약에 노트북으로 gazebo 시뮬레이션만 돌릴 예정이라면 Nav2 패키지를 노트북에서 실행하는 것이므로 노트북의 minibot 패키지에서 파라미터를 수정해야합니다. 실제 로봇의 경우는 Nav2 패키지는 실제 로봇에서 실행하는 것이므로 Na2 패키지를 로봇에서 파라미터를 수정해야합니다. 충돌 파라미터 설명 충돌 파라미터는 Nav2 패키지에 있는 파라미터로 2가지로 나누어집니다.1 global collision 과 local collision 입니다. 이 파라미터 수..

실내 경로 생성 파이썬으로 해보자 (Nav2를 이용한)

우선 가제보 실행 코드 ros2 launch minibot_gazebo bringup_gazebo.launch.py world_name:=simple_building.world 네비게이션 실행코드 ros2 launch minibot_navigation2 map_building.launch.py use_sim_time:=true 시뮬레이션 ros2 launch minibot_navigation2 rviz_launch.py 로봇을 돌리기 ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r cmd_vel:=base_controller/cmd_vel_unstamped 맵을 잘 만들었으니까 ros2 run nav2_map_server map_sa..

도로의 차선을 검출해보자. (image segmentation 활용)

팀원의 결과물을 올리는 글로써 기술적인 설명은 없습니다. Visual SLAM 팀에서는 차선을 인식해서 달리게 하는 것을 목표로 하고 있습니다. OpenCV도 사용할 수 있겠지만 경험에 초점을 맞춘 프로젝트이니 만큼 Image Segmentation을 활용하고 싶다는 의견이 있었습니다. 그래서 Image Segmentation을 활용하는 방안으로 진행을 하게 되었습니다. 처음에는 Roboflow라는 놈을 사용해서 라벨링을 하려고 했는데 라벨링까지는 쉬운데, 모델을 뱉어주는 방식이 API를 통한 방식이기 때문에 바로 버렸습니다. 그래서 YOLOv8을 사용하게 되었고 YOLOv8부터는 segmentation까지 지원을 하게 되었습니다. https://youtu.be/DMRlOWfRBKU 해당 영상을 참고하면..

Visual SLAM 구역, SLAM구 ROS 패키지 설계 및 FSM 설계

FSM은 정의와 다를 수 있습니다. 회의록 Visual SLAM 부분 ROS 패키지 설계 하나의 센서가 정보를 topic 발행 (input) → 그 정보를 구독을 해서 가공 (output) 비쥬얼슬램이 안된다는 가정하에 만들어지고 있습니다. -된다면 가능한 것은 SLAM 맵이 생성됩니다. 그 전까지는 미리 만들어진 MAP을 참고하여 진행합니다. (global map) 토픽으로 해야합니다. 움직임이 스무스하지않다. (스무스한 움직임을 위해 토픽을 해야함) 목적지 설정 → 경로 생성 → image정보 토대로 경로 수정 → 경로따라 가기 이 사이에 object detection으로 장애물 검출시 회피. ROS 설계를 위한 input output 정의 센서 Input RGB-d (영상정보) (유선연결이라 ROS..

7. 비상회의를 소집하다.

모든 문제를 정리하자면 기획을 1주간 진행했고 (중간에 강의실이 바뀌는 이슈가 있었다.) 유비쿼티와 터틀봇에 가져다 버린 시간이 1주가 되어버렸다. 그래서 결국 남은 시간은 14일정도 그 중에서도 3일은 수업이 예정되어 있는 상태이다. 그렇게 비상회의를 소집하고 나서 팀원들과 제작을 위해서 어떻게 할 것인지 다시 정리하고 빨리 구현가능한 것부터 진행하고자 하였다. 솔직히 터틀봇을 만지는 팀원들과 나도 그렇고, 완벽한 ROS 패키지를 만들기 위해 노력하는 팀원도 있었고 RtabMap을 통해 Visual SLAM을 구현하고자 하는 팀원도 그렇고, 관제를 구현하는 팀원도 그렇고 이 모든 것이 완성되려면 2주도 안되는 시간은 너무나도 부족한 시간이 되어버렸다. 그래서 서로간의 진행상황을 확인하고, 버릴 것은 버..

6. 터틀봇 4도 포기하게 되었다. / 핑크봇을 위한 맵을 만들었다.

도큐먼트를 아무리 따라해도 SLAM이 안되는 문제가 있었다. 당장 문제는 robot_description 토픽을 발행하지 않아서 아무리 해도 Rviz에서 터틀봇을 띄울 수가 없었다. 이전에 사용한 사람 때문과의 설정차이때문에 문제가 생긴거 아닐까? 그러니까 bashrc에 들어가야할 어떤 소스코드 하나를 삭제했다거나 하는 문제가 아닐까 하는 생각이였다. 그래서 도큐먼트 상에서 터틀봇4용 라즈베리파이의 이미지 파일을 구할 수 있었고 분해방법은 다음과 같았다. 우선 육각렌치로 위의 4개의 나사를 풀어준다. 그리고나서 원판을 들어내고 기둥을 풀면 다음처럼 위에 기판이 들리게 된다. 라즈베리파이가 보이며 손을 잘이용하여 SD카드를 분리한다. SD카드를 분리하고 도큐먼트에서 시키는대로 터틀봇4를 초기화했다. 초기화..

5. 터틀봇 4를 움직여보자

연결이 완료된 상태에서 진행하는 글입니다. 네트워크 설정은 이전글을 참고하셔야합니다. 단순하게 로봇을 작동시키는 일을 적고자합니다. 혹시 패드로 진행할 예정이라면 다음을 참고하시면 약간의 도움은 됩니다만.. 일단 ssh로 접속한 상태에서 다음을 입력합시다. sudo bluetoothctl --agent=NoInputNoOutput 그리고 다음처럼 버튼을 누릅니다. 근데 혹시 wating bluetooth가 나온다면 다음을 입력하고 비밀번호를 입력합니다. systemctl start bluetooth 이상태에서 scan on 을 입력한다. systemctl start hciuart 일단 이것도 넣어보자 오 뜬다 뜬다.. 여기서 MAC를 스캔하고 다음을 입력한다. trust E4:5F:01:78:18:77 ..

4. 터틀봇 4 초기 구동하기

유비쿼티 로봇이 고장으로 판별되고 터틀봇 4를 받아왔습니다. 그래서 유비쿼티 대신에 터틀봇 4를 사용하게되었습니다. 20.04 갈라틱이 필요합니다 https://turtlebot.github.io/turtlebot4-user-manual/software/turtlebot4_packages.html TurtleBot 4 Packages · User Manual TurtleBot 4 Packages The TurtleBot 4 has 4 main repositories for software: turtlebot4, turtlebot4_robot, turtlebot4_desktop, and turtlebot4_simulat... turtlebot.github.io https://turtlebot.github...

3. 프로젝트 진행 1일차 진행상황 정리

https://learn.ubiquityrobotics.com/ Ubiquity Robotics Documentation - Magni Documentation Ubiquity Robotics Documentation Warning The Magni robot is strong, fast, and heavy. Initially, use lumber, bricks, or whatever you have to lift the wheels free of the floor, or run it somewhere where it can’t hurt anyone or anything if it surprises you. learn.ubiquityrobotics.com 이번프로젝트의 시작을 위해서 가장 중요한 것은 로..

2. 프로젝트 요구사항 설계 및 소프트웨어적 해석

프로젝트를 진행하면서 예상되는 문제점은 팀 내부적으로 실내와 실외로 나눌 경우 발생할 문제가 걱정이였고 그냥 한 번 에 다같이 할 경우 발표를 어떻게 해야할지 문제가 생겼다. UML 실전에서는 이것만 쓴다 - YES24 UML 실전에서는 이것만 쓴다 - YES24 프로젝트를 진행하려면 UML을 사용해야 하지만, UML은 너무 복잡하고 난해하다. 현업 개발자에게 맞춰 실무 실제 프로젝트에 사용되는, 알아야 하는 UML을 다루었다. UML과 객체지향 설계를 동시에 www.yes24.com UML에 관한 책을 하나 읽었는데 여기서 소프트웨어 개발에 대한 내용 중에서 고객에 어떤 요구사항을 제시하면, 이를 소프트웨어적으로 번역한다. 이 상태에서 UML을 통해서 큰 흐름을 한 번 그려본다. 여기서 설계를 해야할 ..

1. 실내와 실외 배송로봇 구상

팀 프로젝트 #4 (자율주행로봇) 개발 개요서 팀 번호 / 팀 명 2팀 / 로봇 가족 프로젝트 주제 실내와 실외 자율주행 배송로봇 프로젝트 기간 2023년 2월 14일 ~ 2023년 3월 3일 ( 일) 프로젝트 목표 Part 1. 자율주행 실외 배송로봇 구현 (엄마로봇) Part 2. 자율주행 실내 배송로봇(아기로봇) 구현과 fleet management 구현 Part 3. (통합) 실내외 통합 인터페이스 구현 소요 기술 딥러닝, ROS2, VIO SLAM, YOLOv5, Fleet Management, Sensor Fusion, Camera Calibration, Robot Control, Unity, AWS MySQL, OpenCV, SLAM ■ 프로젝트 목표 및 주요 기능 ➢ 프로젝트 목표 - AI..