로봇에 카메라를 부착하고 A에서 B지점으로 찍는 실내 네비게이션 로봇을 만들어라.
AR마커를 이용한 도킹스테이션을 기점으로 도착지점을 찍고 다시 돌아오게 설계해야한다.
주차 | 기간 | 실습 시간 |
실습주제 | 필요장비 | 담당 |
---|---|---|---|---|---|
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 |
도구공간 |
- 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
- 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/
- Remote PC에서
-
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
- Remote PC에서
-
맵 제작
-
- Remote PC에서
roscore
- ROBOT(turtlebot3에서)
roslaunch turtlebot3_bringup turtlebot3_robot.launch roslaunch turtlebot3_bringup turtlebot3_rpicamera.launch
- Remote PC에서
roslaunch behavior_controller execute.launch
+하드웨어 블록다이어그램
+소프트웨어 블록다이어그램
+동작 알고리즘 블록다이어그램
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