古月居ROS入門21講學習筆記(編程基礎9-16課)(持續更新)

第九課 創建工作空間課功能包

工作空間

src:代碼空間。xml文件
build:編譯空間,基本不用關心
devel:開發空間,
install:安裝空間

  1. 創建工作空間
    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/src
    catkin_init_workspace

  2. 編譯工作空間
    cd ~/catkin_ws/
    catkin_make (產生devel 和build文件夾)
    catkin_make install (產生install文件夾)

  3. 設置環境變量
    source devel/setup.bash

  4. 檢查環境變量
    echo $ROS_PACKAGE_PATH

創建功能包

catkin_creat_pkg (功能包名) 【依賴1】【依賴2】【依賴3】

  1. 創建功能包
    cd ~/catkin_ws/src
    catkin_create_pkg test_pkg std_msgs rospy roscpp

  2. 編譯功能包
    cd ~/catkin_ws
    catkin_make
    source ~/catkin_ws/devel/setup.bash

同一個工作空間下,不允許有同名功能包,不同工作空間下可以有。

第十課 發佈者Publisher的編程實現

創建功能包

cd ~/catkin_ws/src
catkin_create_pkg learning_topic roscpp std_msgs geometry_msgs turtlesim

c++實現

1.編寫程序

參考資料裏的velocity_publisher.cpp文件。
在這裏插入圖片描述

2.在CMakelist.txt文件末尾加上

add_executable(velocity_publisher src/velocity_publisher.cpp)
target_link_libraries(velocity_publisher ${catkin_LIBRARIES})

3.編譯並運行

cd ~/catkin_ws
catkin_make
source devel/setup.bash
新開終端roscore
新開終端rosrun turtlesim turtlesim_node
新開終端rosrun learning_topic velocity_publisher

python實現

看課件代碼

第十一課 訂閱者Subscriber的編程實現

類似Publisher的過程

C++實現

1.編寫程序

在這裏插入圖片描述
回調函數很重要,類似於中斷,當有信息來了,先進入回調函數處理。所以回調函數處理數據要儘量簡潔,否則後續數據進不來。

2.在CMakelist.txt文件中加上

add_executable(pose_subscriber src/pose_subscriber.cpp)
target_link_libraries(pose_subscriber ${catkin_LIBRARIES})

3.編譯並運行

cd ~/catkin_ws
catkin_make
source devel/setup.bash
新開終端roscore
新開終端rosrun turtlesim turtlesim_node
新開終端rosrun learning_topic pose_subscriber
新開終端rosrun turtlesim turtle_teloop_key
就可以看到位置信息不斷在變了

python實現

看課件代碼

第十二課 話題消息的定義與使用

在這裏插入圖片描述

如何自定義話題消息

1. 定義msg文件

在工作空間的learning_topic功能包中創建msg文件夾,在其中創建person.msg文件。
在這裏插入圖片描述

2.在package.xml中添加功能包依賴

<build depend>message generation</build depend>
<exec_depend>message_runtime</exec_depend>

在這裏插入圖片描述

3.在CMakeLists.txt添加編譯選項

有三個地方要變
message_generation
在這裏插入圖片描述
add_message_files(FILES Person.msg)
generate_messages(DEPENDENCIES std_msgs)
在這裏插入圖片描述
在這裏插入圖片描述

4.編譯生成語言相關文件

回到工作空間目錄下,catkin_make

5.創建發佈者、訂閱者

在learning_topic/src下創建發佈者和訂閱者,程序在例程裏。

6.配置Cmakelist.txt文件

在這裏插入圖片描述

7.編譯

回到工作空間目錄下,catkin_make

8.實驗

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章