Not: Bu makale Dmitry Maslov tarafından yazılmıştır ve ilk olarak Instructables‘da yayınlanmıştır.
Bu makalede, en son Debian Buster’ı çalıştıran Raspberry Pi 4’e ROS Melodic Morenia’nın nasıl yükleneceği ve RPLIDAR AIM8‘in yüklememizle nasıl kullanılacağı ele alınacaktır.
Debian Buster resmi olarak bu makalenin yazıldığı tarihten sadece birkaç hafta önce yayınlandığı için, apt-get ile yüklemek için önceden derlenmiş ROS paketleri yoktur; bu, tercih edilen yükleme yöntemidir. Bu nedenle, kaynaktan derlememiz gerekecek. Bana güvenin, göründüğü kadar korkutucu değil. Süreç bu resmi eğitimde açıklanmıştır, ancak Raspberry Pi’de ROS Melodic’i derlemek için birkaç değişiklik yapmamız gerekecek.
Adım 1: Bağımlılıkları Yükleyin ve Paketleri İndirin
Gerekli bağımlılıkları yüklemek ve depoları ayarlamakla başlayalım.
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-get update
sudo apt-get install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
Sonra rosdep’i başlatın ve güncelleyin.
sudo rosdep init
rosdep update
Bu tamamlandığında, ROS’u derlemek için özel bir catkin çalışma alanı oluşturalım ve o dizine geçelim.
mkdir ~/ros_catkin_ws
cd ~/ros_catkin_ws
Artık iki seçeneğiniz var:
ROS-Comm: (Temel Yükleme) Raspberry Pi için tercih edilen seçenek olabilir, çünkü muhtemelen robot için kullanıyorsanız başsız çalıştıracaksınız. Yükleme sürecini daha kısa ve daha az zahmetli hale getiren RVIZ’i içermez.
Desktop Install: rqt, rviz ve robot-genel kütüphaneler gibi GUI araçlarını içerir.
Burada Desktop Install yüklemeyi tercih edeceğim.
rosinstall_generator desktop --rosdistro melodic --deps --wet-only --tar > melodic-desktop-wet.rosinstall
wstool init -j8 src melodic-desktop-wet.rosinstall
Bu komut, tüm temel ROS paketlerini src klasörüne indirmek için birkaç dakika alacaktır.
eğer wstool init başarısız olursa veya kesilirse, indirmeyi şu komutla devam ettirebilirsiniz:
wstool update -j 4 -t src
Adım 2: Sorunları Giderin

Collada_urdf bağımlılık sorununu gidermek için uyumlu bir Assimp (Open Asset Import Library) sürümünü yükleyelim.
mkdir -p ~/ros_catkin_ws/external_src
cd ~/ros_catkin_ws/external_src
wget http://sourceforge.net/projects/assimp/files/assimp-3.1/assimp-3.1.1_no_test_models.zip/download -O assimp-3.1.1_no_test_models.zip
unzip assimp-3.1.1_no_test_models.zip
cd assimp-3.1.1
cmake .
make
sudo make install
Ayrıca rviz için OGRE’yi yükleyelim.
sudo apt-get install libogre-1.9-dev
Son olarak, libboost ile ilgili sorunları gidermemiz gerekecek. Bu konuda stackoverflow’daki bu gönderiden çözümü kullanıyorum:
“Derleme sırasında oluşan hatalar, ‘boost::posix_time::milliseconds’ fonksiyonundan kaynaklanmaktadır; çünkü yeni boost sürümlerinde yalnızca bir tamsayı argümanı kabul etmektedir, ancak ROS’taki actionlib paketi birçok yerde bir float vermektedir. Bu fonksiyonu kullanan tüm dosyaları listeleyebilirsiniz:
find -type f -print0 | xargs -0 grep ‘boost::posix_time::milliseconds’ | cut -d: -f1 | sort -u
Onları metin düzenleyicinizde açın ve
‘boost::posix_time::milliseconds’ fonksiyon çağrısını arayın.
ve bu tür çağrıları şu şekilde değiştirin:
boost::posix_time::milliseconds(loop_duration.toSec() * 1000.0f));
şu şekilde:
boost::posix_time::milliseconds(int(loop_duration.toSec() * 1000.0f)));
ve bunları:
boost::posix_time::milliseconds(1000.0f)
şu şekilde:
boost::posix_time::milliseconds(1000)
nano metin düzenleyicisini kullanmanızı öneririm, VIM’den daha basittir 😉 Ctrl+O kaydetme, Ctrl+X çıkma ve Ctrl+W arama yapma.
Sonraki adımda, tüm diğer bağımlılıkları yüklemek için rosdep aracını kullanıyoruz:
rosdep install --from-paths src --ignore-src --rosdistro melodic -y
İpucu Ekle Soru Sor Yorum Yap İndir
Adım 3: Yüklemeyi Derleyin ve Kaynağını Belirleyin
Paketleri indirme ve bağımlılıkları çözme işlemi tamamlandığında, catkin paketlerini derlemeye hazırsınız.
sudo ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic -j2
Derleme süreci donarsa (çok muhtemel, eğer masaüstü sürümünü yüklüyorsanız), mevcut takas alanını artırmanız gerekir. Varsayılan olarak 100 MB’dir, bunu 2048 MB’a artırmayı deneyin.
Bol şans! Tüm derleme süreci yaklaşık 1 saat sürer, bu yüzden biraz çay yapın.
Artık ROS Melodic Raspberry Pi 4’ünüze yüklenmiş olmalıdır. Yeni yüklemeyi aşağıdaki komutla kaynaklayalım:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
Her şeyin başarılı olup olmadığını kontrol etmek için roscore’u başlatmayı deneyin. İpucu Ekle Soru Sor Yorum Yap İndir
Adım 4: RPLIDAR ROS Paketini Yükleyin

Temel ROS’un parçası olmayan diğer paketler için ayrı bir çalışma alanı oluşturalım.
Ev klasörünüzden şunu yapın:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
ve bunu bashrc’ye kaynaklayın:
echo "source $HOME/catkin_ws/devel/setup.bash" >> ~/.bashrc
Tamam, RPLIDAR ROS paketini yüklemeye hazırız.
cd src
sudo git clone https://github.com/Slamtec/rplidar_ros.git
catkin_make
Paket derlemesi tamamlanana kadar bekleyin. Derlemenin başarılı olup olmadığını görmek için paketi başlatmayı deneyin:
roslaunch rplidar_ros rplidar.launch
Herhangi bir hata çıkmazsa, hızlı bir kutlama dansı yapabilirsiniz (*isteğe bağlı).
Şimdi yalnızca son parça eksik – muhtemelen Raspberry Pi 4’ü başsız modda çalıştırdığınız için, lidar mesajlarını görselleştiremiyoruz. Bunun için ROS’u birden fazla makinede çalışacak şekilde ayarlamamız gerekecek. İpucu Ekle Soru Sor Yorum Yap İndir
Adım 5: ROS’u Birden Fazla Makinede Çalışacak Şekilde Ayarlayın

Bu bölüm için, ROS Melodic yüklü bir Ubuntu 18.04 bilgisayarına ihtiyacınız olacak. Ubuntu olduğu için, ROS’u basitçe apt-get kullanarak yükleyebilirsiniz; bu eğitimde açıklandığı gibi.
Raspberry Pi ve masaüstü bilgisayarınızda çalışan bir ROS yüklemesine sahip olduktan sonra, her iki makinenin IP adreslerini kontrol edin. Aynı ağda olmaları gerekiyor!
Masaüstü bilgisayarınızda roscore’u çalıştırın ve ROS_MASTER_URI’yi dışa aktarın.
roscore
export ROS_MASTER_URI=http://[masaüstü-bilgisayar-ipiniz]:11311
Sonra Raspberry Pi’de şunu çalıştırın:
export ROS_MASTER_URI=http://[masaüstü-bilgisayar-ipiniz]:11311
export ROS_IP=[masaüstü-bilgisayar-ipiniz]
ve RPILIDAR başlatma dosyasını çalıştırın.
roslaunch rplidar_ros rplidar.launch
Başarıyla başlatılırsa, masaüstü bilgisayarınızdaki konuları rostopic list ile kontrol edin.
/scan mesajlarını görebiliyorsanız, her şey olması gerektiği gibi çalışıyor. Ardından masaüstü bilgisayarınızda RVIZ’i başlatın, Laser Scan mesajlarını ekleyin ve /scan konusunu seçin. Ayrıca sabit çerçeveyi /laser olarak değiştirmeniz gerekecek.
İşte bu kadar! İpucu Ekle Soru Sor Yorum Yap İndir
Adım 6: Tamam!


Bu kılavuz, yeni Raspberry Pi 4 üzerinde ROS robotu inşa etmenin ilk adımı olabilir. ROS Melodic’i yükledik ve başsız çalışacak şekilde yüklemeyi hazırladık ve uzaktan kontrol için kablosuz ağ üzerinden masaüstü bilgisayarımıza bağlandık.
Sonraki adımlar, hangi tür robot inşa etmek istediğinize bağlıdır. Odometri için motorlar ve enkoderler, Görsel SLAM için stereo kamera ve her türlü heyecan verici ve faydalı şeyler ekleyebilirsiniz.
Özellikle RPLIDAR A1M8 için Global Ücretsiz Kargo sunuyoruz. Lidar ile başlamanın en iyi zamanı, Raspberry Pi 4 ve ROS Programlama.

