Skip to content
ESOGU-ASRLABPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ROS 2 ile Endüstriyel Robot Programlama — Kitap Kodları

Bu depo, ROS 2 ile Endüstriyel Robot Programlama kitabının resmî kod deposudur. Her bölümün kodu, bölüm numarasıyla başlayan bir klasördedir (chNN_...).

Klasör Bölüm İçerik
ch04_ros2_communication 4 — Gelişmiş ROS 2 İletişim Yapıları ve Araçlar ROS 2 paketi: servis, eylem, parametre, başlatma dosyası, URDF/Xacro, TF2
ch05_simulation_visualization 5 — Simülasyon ve Görselleştirme Ortamları ROS 2 paketi: RViz2, Gazebo Harmonic, ros_gz köprüsü, ros2_control kipleri
ch07_bus_inspection 7 — Otobüs Şasesinin Kalite Kontrolü İçin Hareket Planlama ROS 2 paketleri: ch07_viewpoint_planner, ch07_multirobot_planner
ch08_door_inspection 8 — Doblo Kapısı Yüzey Kalite Kontrolü ROS 2 paketleri: ch08_door_inspection, ch08_door_inspection_ui
ch09_conveyor_pick_place 9 — Konveyör Al-Yerleştir Otomasyonu ROS 2 paketi: ch09_conveyor_pick_place
ch10_screwdriving 10 — İnsan–Robot İş Birlikli Hassas Vidalama ROS 2 paketi: ch10_screwdriving
common 7–10 Ortak kütüphane: book_pymoveit2 (MoveIt 2 Python arayüzü)

Bölüm 4 ve 5 kendi başına derlenip çalışan, donanım gerektirmeyen paketlerdir. Bölüm 7–10'da anlatılan kodlar da bu depodadır ve rosdep + colcon build ile derlenir. Ancak bu uygulamalar gerçek bir robot hücresinde (UR10e, Kawasaki RS005L, Festo doğrusal eksen, AGV, OnRobot ve VGC10 tutucular) ya da onun Gazebo ikizinde çalışır. Hücrenin robot tanımları (URDF ve mesh'ler), MoveIt 2 yapılandırmaları, Gazebo dünyası ve başlatma (bringup) paketleri ESOGU-ASRLAB/ESOGU-HILTest-DualRobot araştırma deposundadır. Bu yüzden Bölüm 7–10'u çalıştırmak için o depodaki paketlere de ihtiyaç vardır (bkz. Bölüm 7–10: araştırma deposunun eklenmesi).

Gereksinimler

  • Ubuntu 22.04
  • ROS 2 Humble
  • Gazebo Harmonic (yalnızca Bölüm 5'in Gazebo kipi için; kurulumu aşağıdaki Bölüm 5: Gazebo Harmonic kurulumu başlığındadır)

Kurulum

$ mkdir -p ~/ros2_ws/src
$ cd ~/ros2_ws/src
$ git clone https://github.com/ESOGU-ASRLAB/ROS2-Book.git
$ cd ~/ros2_ws
$ source /opt/ros/humble/setup.bash
$ rosdep install --from-paths src --ignore-src -r -y
$ colcon build --symlink-install
$ source install/setup.bash

Kurulumu sınamak için Bölüm 4'ün TF2 alıştırmasını çalıştırın (iki ayrı terminal):

# 1. terminal
$ ros2 launch ch04_ros2_communication manipulator_rsp.launch.py

# 2. terminal
$ ros2 run ch04_ros2_communication tcp_tf2_monitor
[INFO] [manipulator_tcp_monitor]: Flanş (tool0) [m]: X=0.515, Y=0.000, Z=0.900 | TCP (tcp_link) [m]: X=0.660, Y=0.000, Z=0.900 (Quat w=0.71)

Bölüm 7–10: araştırma deposunun eklenmesi

Bölüm 7–10 paketleri robot hücresini kendileri başlatmaz; hücreyi (MoveIt 2, denetleyiciler, Gazebo ikizi ya da gerçek robotlar) araştırma deposundaki başlatma dosyası ayağa kaldırır. Araştırma deposunu aynı çalışma alanına çekmek için research.repos dosyası kullanılır:

$ cd ~/ros2_ws
$ vcs import src < src/ROS2-Book/research.repos
$ rosdep install --from-paths src --ignore-src -r -y
$ colcon build --symlink-install
$ source install/setup.bash

vcs komutu yoksa: $ sudo apt install python3-vcstool

Kitap paketlerinin adları chNN_ ile başladığı için araştırma deposundaki paketlerle çakışmaz; iki depo aynı çalışma alanında birlikte derlenir.

Robot hücresi, gerçek robot olmadan sahte donanımla (fake hardware) başlatılır; her bölümün README dosyası, bölüme özgü ek argümanları verir:

$ ros2 launch my_robot_cell_control hil_test_whole_unified.launch.py \
    use_fake_hardware:=true use_mock_hardware:=true fake_sensor_commands:=true

Bölüm 7–10 düğümlerinin ürettiği dosyalar (planlar, nokta bulutları, yörünge önbellekleri, koşu kayıtları) kaynak klasörüne değil ~/ros2_book_output/chNN/ altına yazılır.

Bölüm 5: Gazebo Harmonic kurulumu

ROS 2 Humble'ın varsayılan Gazebo eşi Gazebo Fortress'tır; rosdep'in kurduğu ros-humble-ros-gz-* ve ros-humble-gz-ros2-control ikili paketleri Fortress'a bağlıdır. Bölüm 5'in Gazebo kipi Gazebo Harmonic ile çalışır. Bunun için Harmonic kurulur ve iki köprü deposu (gazebo_harmonic.repos: ros_gz ve gz_ros2_control, humble dalları) çalışma alanında Harmonic'e karşı derlenir. Aşağıdaki adımlar yukarıdaki Kurulum adımlarından sonra bir kez yapılır.

Bölüm 4 ve Bölüm 5'in mock (donanımsız) kipi Gazebo gerektirmez; yalnızca bunlarla çalışacaksanız bu bölümü atlayabilirsiniz.

1. Gazebo Harmonic'i kurun (OSRF paket deposu):

$ sudo apt install curl lsb-release gnupg
$ sudo curl https://packages.osrfoundation.org/gazebo.gpg \
    --output /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] \
http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | \
    sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null
$ sudo apt update
$ sudo apt install gz-harmonic

2. Köprü paketlerini çalışma alanına ekleyip Harmonic'e karşı derleyin:

$ cd ~/ros2_ws
$ vcs import src < src/ROS2-Book/gazebo_harmonic.repos

# GZ_VERSION, derlemenin hangi Gazebo sürümüne bağlanacağını belirler.
# Kalıcı olması için ~/.bashrc dosyasına eklenir.
$ echo "export GZ_VERSION=harmonic" >> ~/.bashrc
$ export GZ_VERSION=harmonic

$ source /opt/ros/humble/setup.bash
# gz-* kütüphaneleri 1. adımda gz-harmonic ile kuruldu; rosdep bu anahtarları
# tanımadığı için atlanır.
$ rosdep install --from-paths src --ignore-src -r -y \
    --skip-keys "gz-math7 gz-msgs10 gz-plugin2 gz-sim8 gz-transport13"
$ colcon build --symlink-install --packages-up-to ch05_simulation_visualization
$ source install/setup.bash

--packages-up-to, yalnızca Bölüm 5 paketinin ihtiyaç duyduğu paketleri (ros_gz_sim, ros_gz_bridge, ros_gz_interfaces, gz_ros2_control) derler.

3. Denetleyin:

$ ros2 launch ch05_simulation_visualization cell_bringup.launch.py
# 2. terminal: denetleyiciler 'active' görünmelidir
$ ros2 control list_controllers

Çalışma alanındaki ros_gz ve gz_ros2_control, /opt/ros/humble altındaki Fortress paketlerinin önüne geçer; Fortress paketlerinin kaldırılması gerekmez.

Kod standartları

  • Değişken, fonksiyon, dosya ve paket adları İngilizce; kod içi yorumlar Türkçedir.

  • Python kodları PEP 8 ve PEP 484 (tip ipuçları) kurallarına uyar. Her paket ament_flake8 ve ament_pep257 denetimlerinden geçer:

    $ colcon test --base-paths src/ROS2-Book
    $ colcon test-result --verbose
  • Tüm bağımlılıklar package.xml içinde tanımlıdır; rosdep install hepsini kurar. Tek istisna, Bölüm 9'un kullandığı Gemini Python SDK'sıdır (google-genai): rosdep'te anahtarı olmadığı için pip ile kurulur (bkz. Bölüm 9 README).

Lisans

Apache License 2.0

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages