2025年2月5日 星期三

在 ROS package 中建立 Python node 的方法

 在 ROS package 中建立 Python node 的方法,可以參考以下步驟:

1.建立 ROS Package: 首先,你需要建立一個 ROS package。你可以使用 catkin_create_pkg 指令來創建一個新的 package,並指定相依套件。例如,創建一個名為 my_tutorial 的 package,相依於 rospy 和 std_msgs:

2.

3.建立 Python 節點檔案: 在 package 的 src 資料夾中,建立一個新的 Python 節點檔案,例如 hello_ros.py [你]。

4.撰寫 Python 節點程式碼: 使用文字編輯器打開 hello_ros.py 檔案,並加入以下程式碼:

◦第一行 #!/usr/bin/env python3 指定此腳本使用 Python3 執行。

◦import rospy 導入 ROS Python 函式庫.

◦rospy.init_node('hello_ros_node', anonymous=True) 初始化 ROS 節點,並命名為 hello_ros_node。

◦rospy.loginfo("Hello ROS from Python!") 輸出訊息到 ROS logger。


5.設定執行權限: 確保你的 Python 腳本具有執行權限。你可以使用以下指令:

6.設定 CMakeLists.txt: 打開 package 中的 CMakeLists.txt 檔案,加入以下程式碼來定義如何編譯節點:

◦find_package 尋找 catkin 以及其相依的套件,例如 rospy 和 std_msgs。

◦catkin_package() 宣告此 package 是一個 catkin package。

◦install(PROGRAMS ...) 安裝你的 Python 節點腳本。

7.加入相依套件: 如果你的節點有使用到其他 ROS 套件,你需要在 package.xml 檔案中加入相依套件的宣告。例如,如果你的節點有使用到 rospy,你需要加入:

8.編譯 Package: 回到工作空間的最上層目錄,使用 catkin_make 指令來編譯 package:

9.設定環境變數: 每次開啟新的終端機時,需要設定 ROS 環境變數,讓系統知道你的工作空間位置。你可以執行以下指令:

10.或者,你可以將此指令加入 ~/.bashrc 檔案,使其在每次開啟終端機時自動執行。

11.執行節點: 使用 rosrun 指令來執行你的 Python 節點:

12.注意: 在執行任何節點之前,你需要先啟動 roscore (ROS Master)。

13.或者, 如果你使用 roslaunch 來啟動節點,roslaunch 會自動啟動 roscore,你就不必手動啟動它。


其他注意事項:

•節點名稱: 在 rospy.init_node() 中,你需要指定一個節點名稱。確保這個名稱在你的 ROS 系統中是唯一的。

如果你不希望節點名稱重複,可以加入 anonymous=True 參數,ROS 會自動為節點產生唯一的名稱。

•使用 rostopic: 你可以使用 rostopic 指令來查看節點發佈或訂閱的話題,以及訊息內容。

•訊息 (Messages):ROS 節點之間透過訊息進行溝通。

你可以使用 std_msgs 等套件中定義的標準訊息類型,也可以自定義訊息類型。

•多個回呼函式 (Callback function): 如果你想讓同一個訂閱的 Topic 給多個函式使用,你可以宣告多個 rospy.Subscriber 物件,

  並為每個物件指定不同的回呼函式 [你]。

•參數化: 你可以使用 rospy.get_param() 來讀取 ROS 參數伺服器中的參數值,從而在程式中實現參數化。

•使用 launch 檔案: 你可以使用 launch 檔案來啟動多個節點,並設定它們的參數和 remap 設定。


總結來說,建立 Python ROS 節點需要創建一個 ROS package、編寫 Python 腳本、設定執行權限、

設定 CMakeLists.txt、加入相依套件、編譯 package,最後使用 rosrun 來執行節點。

沒有留言:

張貼留言