welcom ! Handel home

2025年3月6日 星期四

(Robot_arm)執行 package 裡的 Python 程式碼

 在 ROS (Robot Operating System) 中執行 package 裡的 Python 程式碼,主要有以下幾個步驟:

1. 確認 Python 程式碼的準備

  • Shebang 行:
    • Python 程式碼的第一行必須包含 #!/usr/bin/env python,這行稱為 Shebang,它告訴系統使用 Python 解釋器來執行這個檔案。
  • ROS 函式庫:
    • 如果你的 Python 程式碼需要使用 ROS 的功能,例如發布/訂閱主題或呼叫服務,你需要匯入 rospy 函式庫。
  • 執行權限:
    • Python 程式碼檔案需要有執行權限。你可以使用 chmod +x your_python_script.py 指令來給予執行權限。

2. 將 Python 程式碼放入 package 中

  • scripts 資料夾:
    • 通常,ROS package 會在根目錄下建立一個 scripts 資料夾,用於存放 Python 程式碼。
    • 將你的 python 檔案放入此資料夾中。

3. 編譯 package

  • catkin_make:
    • 在終端機中,切換到你的 ROS 工作區(workspace)的根目錄,然後執行 catkin_make 指令來編譯 package。
    • python 的node 基本上不需要在 CMakeLists.txt 做額外修改,但要確認package.xml 內有加入 python 的相依性。

4. 執行 Python 程式碼

  • rosrun 指令:
    • 使用 rosrun <package_name> <python_script_name.py> 指令來執行 Python 程式碼。
    • <package_name> 替換為你的 package 名稱,<python_script_name.py> 替換為你的 Python 程式碼檔案名稱。
    • 例如:rosrun my_package my_node.py

範例

假設你有一個名為 my_package 的 package,並且在 scripts 資料夾下有一個名為 my_node.py 的 Python 程式碼檔案。以下是一個簡單的範例:

  • my_node.py:
Python
#!/usr/bin/env python
import rospy

def main():
    rospy.init_node('my_node')
    rospy.loginfo('Hello, ROS!')
    rospy.spin()

if __name__ == '__main__':
    main()
  • 執行步驟:
    1. 給予執行權限:chmod +x my_node.py
    2. 編譯 package:catkin_make
    3. 執行程式碼:rosrun my_package my_node.py

注意事項

  • 確保你的 ROS 環境已經正確設定。
  • 如果你的 Python 程式碼需要使用 ROS 的功能,請確保已經正確初始化 ROS 節點(使用 rospy.init_node())。
  • 如果你的 python 程式碼有使用到其他python的package,請確認該package有安裝在你的環境中。

沒有留言: