Giter Club home page Giter Club logo

behavior_controller's Introduction

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

behavior_controller's People

Contributors

dongiks avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.