Skip to content

터틀봇3를 활용한 모바일 실내로봇 자율주행 프로젝트

Notifications You must be signed in to change notification settings

DonGikS/behavior_controller

Repository files navigation

indoor [Youtube Link(Click)]

Indoor_Robot_Project

프로젝트 목차

1. 프로젝트 목적

2. 프로젝트 계획표

3. 사용된 장비

4. 설치(installing)

5. 실행(operating)

6. 블록다이어그램

7. 참고자료

1. 프로젝트 목적

로봇에 카메라를 부착하고 A에서 B지점으로 찍는 실내 네비게이션 로봇을 만들어라.
AR마커를 이용한 도킹스테이션을 기점으로 도착지점을 찍고 다시 돌아오게 설계해야한다.

2. 프로젝트 계획표

주차 기간 실습
시간
실습주제 필요장비 담당
1주 8/3~7 40 Introduction to ROS Linux PC
ROS robot programming (책
저자 표윤석)
권지욱
2주 8/10~14 40 Introduction to Robotics Linux PC 권지욱
3주 8/17~21 40 ROS navi-stack AtoB
장애물 지도 생성 및
장애물 감지
Linux PC 권지욱
4주 8/24~28 40 SLAM & Localization
ROS navi-stack +
google(카토그래퍼)
(Localiztion)
Linux PC
Robot
권지욱
5주 8/31~9/4 40 Path planner (global &
local)
ROS navi-stack +
google(카토그래퍼)
(Localiztion) +
(A*/DWA/TEB/(Timed
Elastic Band)
Linux PC
Robot
2D LiDAR
도구공간
6주 9/7~11 40 Docking control
(April marker detection)
(Visual servo control)
Linux PC
Robot
2D LiDAR
rgb camera
도구공간
7주 9/14~18 40 A to B mission
(behavior control)
(docking station에서
출발 후 목적지 도달 이후
다시 출발 도킹 스테이션에
도킹)
Linux PC
Robot
2D LiDAR
rgb camera
도구공간

3.사용된 장비

  • 터틀봇3(Turtlebot3)
    turtlebot3
  • raspberry pi camera
    raspicamera
  • Linux PC(OS : ubuntu 18.04)
    ubuntu
  • ROS 1(melodic)
    melodic

4.설치(installing)

  • remote PC
    • ROS 1 설치Link를 통해 설치한다.

    • 필요한 Depandancy 설치

          
              sudo apt-get install ros-melodic-joy ros-melodic-teleop-twist-joy ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan ros-melodic-rosserial-arduino ros-melodic-rosserial-python ros-melodic-rosserial-server ros-melodic-rosserial-client ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro ros-melodic-compressed-image-transport ros-melodic-rqt-image-view ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers
          
      
    • Turtlebot3 패키지 설치(melodic version)
          
              cd ~/catkin_ws/src/
              git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
              git clone -b melodic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git
              cd ~/catkin_ws && catkin_make
          
      
    • Turtlebot3 application 패키지 설치(melodic version)
          
              cd ~/catkin_ws/src
              git clone https://github.com/ros-perception/ar_track_alvar.git
              git clone https://github.com/ROBOTIS-GIT/turtlebot3_applications.git
              git clone https://github.com/ROBOTIS-GIT/turtlebot3_applications_msgs.git
              cd ~/catkin_ws && catkin_make
          
      
    • 통합 launch 파일 패키지 설치
          
              cd ~/catkin_ws/src
              git clone https://github.com/DonGikS/behavior_controller.git
              cd behavior_controller/turtlebot3_navigation/launch
              mv move_base.launch ../../../turtlebot3/turtlebot3_navigation/launch
              cd ~/catkin_ws/src/behavior_controller/turtlebot3_description/urdf
              mv turtlebot3_burger.urdf.xacro ../../../turtlebot3/turtlebot3_description/urdf
              cd ~/catkin_ws && catkin_make
          
      
    • ROBOT(turtlebot3에서)
      터틀봇 라즈베리파이 활성화Link참고

      • turtlebot3_bringup/launch/turtlebot3_rpicamera.launch 파일 수정
            <param name="framerate" type="int" value="30" />
            <param name="exposure_mode" value="antishake" />
            <param name="shutter_speed" value="0" />
            <param name="quality" type="int" value="10" />
            <param name="width" type="int" value="320" />
            <param name="height" type="int" value="240" />
            <!--뒤집혀있으면 넣는다
            <param name="hFlip" type="int" value="true" />
            <param name="vFlip" type="int" value="true" />
            -->
      
            <param name="camera_frame_id" value="camera" />
            <!--이거 있으면 카메라전송 속도가 빨라짐-->
            <param name="/raspicam_node/quality"  value="9"/>
        </node>
      
    • Calibration with raspicam_node

      • Remote PC에서
            
                roscore
            
        
      • ROBOT(turtlebot3에서)
            
                roslaunch turtlebot3_bringup turtlebot3_rpicamera.launch
            
        
      • Remote PC에서
            
                rosrun image_transport republish compressed in:=/raspicam_node/image raw out:=/raspicam_node/image
                rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/raspicam_node/image camera:=/raspicam_node
            
        

      camera_calibration

      • calibration 저장하고나서
            
                cd /tmp
                tar -xvzf calibrationdata.tar.gz 
                mv ost.txt ost.ini
                rosrun camera_calibration_parsers convert ost.ini camera.yaml
                mv camera.yaml ~/.ros/camera_info/
            
        
    • AR 마커 트래커

      • Remote PC에서
            
                roscore
            
        
      • ROBOT(turtlebot3에서)
            
                roslaunch turtlebot3_bringup turtlebot3_rpicamera.launch
            
        
      • Remote PC에서
            
                roslaunch ar_track_alvar pr2_indiv_no_kinetic.launch
                rviz rviz
            
        

      fixed frame을 카메라 이름으로 한다. ar_marker_tracking

    • 맵 제작

      • Remote PC에서
              
                  roscore
              
          
      • ROBOT(turtlebot3에서)
          
              roslaunch turtlebot3_bringup turtlebot3_robot.launch
              
          
        
      • Remote PC에서
              
                  roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer
              
          
        (mapping...)
        map_design
              
                  rosrun map_server map_saver -f ~/map_my_kiro
              
          
        Screenshot from 2020-09-29 01-47-44

5.실행(operating)

  • Remote PC에서
          
              roscore
          
      
  • ROBOT(turtlebot3에서)
      
          roslaunch turtlebot3_bringup turtlebot3_robot.launch
          roslaunch turtlebot3_bringup turtlebot3_rpicamera.launch
      
    
  • Remote PC에서
          
              roslaunch behavior_controller execute.launch
          
      

6.블록다이어그램

+하드웨어 블록다이어그램
하드
+소프트웨어 블록다이어그램
소프
+동작 알고리즘 블록다이어그램
알고

7.참고자료

raspberry_pi_camera_with_turtlebot3 ar_track_alvar
teb_local_planner_tutorials
turtlebot3_application_auto_parking_vision
turtlebot3_slam
ros_melodic_cartographer
raspicam_node_too_slow
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=cartographer configuration_basename:=turtlebot3_lds_2d_gazebo.lua

About

터틀봇3를 활용한 모바일 실내로봇 자율주행 프로젝트

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published