日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

ROS系统 创建工作空间与功能包

發布時間:2025/5/22 windows 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ROS系统 创建工作空间与功能包 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ROS

  • 學習目標:
  • 學習內容:
        • 使用環境
  • 操作步驟:
        • 基本命令
  • 二、使用步驟
        • 創建工作空間
        • 編譯工作空間
        • 創建功能包
      • 使用C++執行程序
        • 編寫源文件
        • 編輯功能包下的 Cmakelist.txt文件
            • 修改目標鏈接庫
        • 編譯編寫源碼文件
        • 設置環境變量
        • 執行ROS功能包
      • 使用Python執行程序
        • 編寫源文件
        • 編輯功能包下的 Cmakelist.txt文件
        • 編譯編寫源碼文件
        • 執行ROS功能包
  • 總結
          • 創建功能包
          • 工作空間的覆蓋
          • 配置變量環境
          • 設置Python文件可執行權限

學習目標:

ROS 工作空間與功能包的創建

學習內容:

1、 創建工作空間
2、 創建功能包
3、 配置功能包
4、 編譯功能包

使用環境

  • VMware Workstation Pro:15.5.0
  • ubuntu:18.04.5
  • ROS:melodic
  • Python:3.6.9
  • gcc:7.5.0

操作步驟:

ROS中的程序即使使用不同的編程語言,實現流程大致如下:

  • 創建工作空間
  • 編譯工作空間
  • 創建ROS功能包
  • 進入ROS包的src目錄編輯源文件
  • 編輯功能包下的Cmakelist.txt文件
  • 進入工作空間目錄并編譯(Python無需編譯)
  • 配置環境變量
  • 啟動ROS Master 和 執行編寫的源文件

  • 基本命令

    • cd [file_name]:進入某一文件路徑
    • cd … :返回上一級目錄
    • ls:列出當前路徑下的所有文件
    • rospack find [package_name]:返回所要找的包的路徑
    • roscd:將當前路徑設置為某一個 ROS 包或棧的路徑或其子路徑
    • pwd:顯示出當前
    • roscd log:將路徑設置為 ROS 存儲日志文件的路徑。
    • rosls [locationname[/subdir]]:直接將路徑改為某個包下的某個子目錄
    • TAB鍵,相當于Eclipse里面的 ALT+/。但沒有ALT+/ 功能那么強大,只能在路徑唯一時才會自動出來。

    二、使用步驟

    創建工作空間

    mkdir -p ~/工作空間名稱/src

    例如:創建一個名稱為 catkin_ws 的工作空間

    mkdir -p ~/catkin_ws/src


    進入到創建的 catkin_ws 工程目錄中

    cd ~/catkin_ws/src

    初始化了工作空間,創建了一個 catkin_ws 空間,在該空間下有一個 src 文件夾

    catkin_init_workspace

    初始化工作空間后,會在src目錄中生成一個 CMakeLists.txt 文件,生成這個文件說明當前路徑已經是ROS的工作空間了。

    編譯工作空間

    注:在編譯工作空間時,需要在工作空間的根目錄執行編譯命令。

    cd ~/catkin_ws/

    編譯工作空間下所有功能包的源碼。

    catkin_make


    編譯完成后會生成 build 和 devel文件夾。

    build文件夾中的內容,存放編譯的二進制文件。

    devel文件夾中的內容,存放開發中的可執行文件和庫

    此時還缺少一個 install 文件夾,需要執行以下指令,便可自動生一個 install 文件夾。

    catkin_make install

    install 文件夾中的內容,用來存放著編譯后的可執行文件。

    catkin_create_pkg<package_name>[depend1][depend2][depend3]

    工作空間是一個存放工程開發相關文件的文件夾。

    • src:代碼空間
    • build:編譯空間
    • devel:開發空間
    • install:安裝空間

    創建功能包

    cd ~/catkin_ws/src

    catkin_create_pkg test_pkg std_msgs rospy roscpp

    上述命令,會在工作空間下生成一個功能包,該功能包依賴于 rospy 、roscpp與std_msgs

    • roscpp:使用C++實現的庫
    • rospy:使用Python實現的庫
    • std_msgs :標準消息庫
      創建ROS功能包時,一般都會依賴這三個庫實現。

      test_pkg中的內容
    • src:存放自己寫的源碼。
    • include:C++代碼頭文件,可以存放在這里

    使用C++執行程序

    編寫C++文件放在 test_pkg 功能包的 src目錄下

    編寫源文件

    helloworld_c.cpp文件內容

    // 1.包含 ros 的頭文件 #include "ros/ros.h"//2.編寫 main 函數 int main(int argc, char *argv[]){// 3.初始化ros節點ros::init(argc, argv, "hello_node"); // 定義節點名稱// 4.輸出日志ROS_INFO("hello world");// 4.輸出日志return 0; }

    編輯功能包下的 Cmakelist.txt文件

    # add_executable(${PROJECT_NAME}_node src/test_pkg_node.cpp)

    修改為

    add_executable(hello src/helloworld_c.cpp)
    • 第一個參數:自定義名稱
    • 第二參數:指定src目下的cpp文件
    修改目標鏈接庫


    把以下代碼

    # target_link_libraries(${PROJECT_NAME}_node # ${catkin_LIBRARIES} # )

    改為這樣

    target_link_libraries(hello${catkin_LIBRARIES} )

    注:hello 為 add_executable()第一個參數映射的名稱。


    注:如果實在找不到這兩個地方,可以從上面把配置信息 粘貼到 CMakeLists.txt文件中的任意空白位置。

    修改完這兩步以后,保存配置文件。

    編譯編寫源碼文件

    cd ~/catkin_ws

    再次編譯工作空間。

    catkin_make

    設置環境變量

    讓系統能夠找到該工作空間,需要設置環境變量。

    source devel/setup.bash

    source ~/catkin_ws/devel/setup.bash

    以上兩種方式都可以設置環境變量

    檢查環境變量

    echo $ROS_PACKAGE_PATH

    執行ROS功能包

    啟動ROS Master

    roscore


    執行編寫的源文件

    rosrun test_pkg hello
    • test_pkg:為剛創建的功能包名
    • hello:為CMakeLists.txt文件下配置的 add_executable() 映射的cpp文件名

    執行成功后輸出 hello world

    使用Python執行程序

    創建存放Python代碼的目錄

    cd ~/catkin_ws/src/test_pkg

    創建 scripts 文件夾

    mkdir scripts

    編寫Python文件放在 test_pkg 功能包的 scripts 目錄下

    cd scripts

    編寫源文件

    創建 helloworld_p.py Python文件

    touch helloworld_p.py #!/usr/bin/env python # -*- coding: utf-8 -*- ##指定解釋器#1.導包 import rospy#2.編寫主入口 if __name__ == '__main__':#3.初始化ROS節點rospy.init_node("hello_world");# 4.輸出日志rospy.loginfo("Hello Python!")


    通過以下命令查看Python文件的權限

    ls -l


    為 Python文件 添加執行權限

    chmod +x helloworld_p.py

    添加權限后,Python文件可以被執行。

    編輯功能包下的 Cmakelist.txt文件

    # catkin_install_python(PROGRAMS # scripts/my_python_script # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} # )

    修改為

    catkin_install_python(PROGRAMSscripts/helloworld_p.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )


    設置環境變量

    source ~/catkin_ws/devel/setup.bash

    編譯編寫源碼文件

    cd ~/catkin_ws

    再次編譯工作空間。

    catkin_make

    執行ROS功能包

    啟動ROS Master

    roscore

    執行編寫的源文件

    cd ~/catkin_ws rosrun test_pkg helloworld_p.py rosrun 包名 自定義文件名.py

    執行成功后輸出 hello Python!

    總結

    創建功能包
    • 同一個工作空間下,不允許存在同名功能包
    • 不同工作空間下,允許存在同名功能包。
    工作空間的覆蓋
    • 工作空間的路徑依次在ROS_PACKAGE_PATH環境變量中記錄
    • 新設置的路徑在ROS_PACKAGE_PATH中會自動放置在最前端
    • 運行時,ROS會有限查找最前端的工作空間中是否存在指定的功能包
    • 如果不存在,就順序向后查找其他工作空間
    配置變量環境

    source ~/工作空間/devel/setup.bash 可以添加進 .bashrc 文件

    • 添加方式1:直接使用gedit或vi編輯.bashrc 文件,文件末尾添加該內容。
    • 添加方式2:echo “source ~/工作空間/devel/setup.bash” >> ~/.bashrc
    設置Python文件可執行權限
    • 第一種方式:chmod +x helloworld_p.py
    • 第二種方式:
      打開文件的屬性,找到 權限 一欄,然后勾選
    • 允許將文件作為程序執行


    總結

    以上是生活随笔為你收集整理的ROS系统 创建工作空间与功能包的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。