ROS基礎入門——實操教程

这可就有点麻烦了發表於2024-10-04

ROS基礎入門——實操教程


前言

本教程實操為主,少說書。可供參考的文件中詳細的記錄了ROS的實操和理論,只是過於詳細繁雜了,看得腦殼疼,於是做了這個筆記。


ROS基礎入門——實操教程
Ruby Rose,放在這裡相當合理

前言:本文初編輯於2024年10月24日

CSDN主頁:https://blog.csdn.net/rvdgdsva

部落格園主頁:https://www.cnblogs.com/hassle


一、安裝【virtualbox】【Ubuntu】【ROS】

前人栽樹,後人乘涼

安裝virtualbox教程

安裝Ubuntu教程

安裝ROS教程

測試ROS教程

二、檔案建立

2.1建立工作空間和初始化

此處參考(選看)

在ubuntu主介面按下(ctrl + alt + T)開啟命令列,然後依次輸入下面的命令

mkdir -p test(這是自定義空間名稱,愛叫什麼叫什麼)/src
cd test(這是自定義空間名稱,愛叫什麼叫什麼)
catkin_make

生成了下面的檔案樹

....    
└── test(資料夾,意為工作空間,第一行程式碼執行時被建立)
    ├── build(資料夾,意為編譯空間,第三行程式碼執行時被建立)
    │   ├── ...
    ├── devel(資料夾,意為開發空間,第三行程式碼執行時被建立)
    │   ├── setup.bash
    │   ├── setup.sh
    │   ├── ...
    └── src(資料夾,第一行程式碼執行時被建立)
        └── CMakeLists.txt (別動這個)

2.2匯入包

生成一個基於三個庫的ROS包,其中:roscpp是使用C++實現的庫,rospy是使用python實現的庫,std_msgs是標準訊息庫

cd src
catkin_create_pkg testpkg(這是ROS包名,愛叫什麼叫什麼) roscpp rospy std_msgs

此時src檔案樹變動

....    
└── test
    ├── build
    │   ├── ...
    ├── devel
    │   ├── setup.bash
    │   ├── setup.sh
    │   ├── ...
    └── src
		└── CMakeLists.txt (別動這個!!!動的是下面那個同名檔案,別搞錯了)
		└── testpkg
            ├── CMakeLists.txt(執行cpp和py程式碼需要修改此處)(2.4涉及此處)
            ├── include
            │   └── testpkg
            ├── package.xml
            └── src(此處存放cpp程式碼)(2.3涉及此處)

2.3 編寫Cpp與Py程式

Cpp詳細教程(教程濃縮成下面一句話了,看完教程感覺腦子很亂的話照著下面的話去做就行)

一句話概括:需要在src(原始檔空間)······> testpkg(ROS包名,愛叫什麼叫什麼)······> src資料夾(用於存放cpp檔案)中存放編寫好的cpp檔案

Py詳細教程(同上)

一句話概括:需要在src(原始檔空間)······> testpkg(ROS包名,愛叫什麼叫什麼)······> scripts資料夾(用於存放py檔案,需要手動建立該資料夾)中存放編寫好的py檔案

2.4 Cmakelist.txt檔案改寫

2.4.1Cpp程式:

在自定義命名包的 CMakeLists.txt(執行cpp和py程式碼需要修改此處)內修改第136行和第149-151行 為

具體行數因版本不同可能有所變動

注意對映名(對映名就是隨便寫的名,別寫test就行)可與cpp原始檔名相同

add_executable(對映名
  src/原始檔名.cpp
)
target_link_libraries(對映名
  ${catkin_LIBRARIES}
)

2.4.2python程式:

在自定義命名包的 CMakeLists.txt(執行cpp和py程式碼需要修改此處)內修改第162-165行 為

具體行數因版本不同可能有所變動

注意這裡Py程式是不需要對映名

catkin_install_python(PROGRAMS scripts/原始檔名.py
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

2.5編譯並執行程式

2.5.1Cpp程式:

在自定義空間名稱(2.1中建立的)中按下(ctrl + alt + T)開啟命令列,依次輸入

catkin_make
roscore

在自定義空間名稱(2.1中建立的)中按下(ctrl + alt + T)開啟另一個命令列,依次輸入

source ./devel/setup.bash
rosrun 包名(2.2中建立的) 對映名(2.4中建立的)
2.5.2Python程式:

在自定義空間名稱(2.1中建立的)中按下(ctrl + alt + T)開啟命令列,依次輸入

chmod +x 原始檔名.py
catkin_make
roscore

在自定義空間名稱(2.1中建立的)中按下(ctrl + alt + T)開啟另一個命令列,依次輸入

source ./devel/setup.bash
rosrun testpkg(ROS包名,愛叫什麼叫什麼,2.2中建立的) 原始檔名.py(2.4中建立的)

相關文章