2024.9.26 計劃

Laurance發表於2024-09-26

專案

學習

總結

ROS學習-程序通訊(接昨天)

遇到了問題:Invoking "make cmake_check_build_system" failed
解決方式:功能包裡不能有重複名稱的節點,檢查工作區中是否有其他 CMakeLists.txt 檔案定義了相同的目標
檢查是否開始釋出訊息:工作區下用命令列rostopic echo 話題名稱

程序通訊第一種方式-釋出訂閱模式

自定義訊息:

1.需要解除package.xml中的<build_depend>message_generation</build_depend><exec_depend>message_runtime</exec_depend>
2.修改cmakelist.txt中的find package,新增message_generation,接著找到add_messages_files,改為

add_message_files(
  FILES
  Person.msg
)

然後解開generate_messages的註釋,再將catkin_package項中改為CATKIN_DEPENDS roscpp rospy std_msgs message_runtime
3.自定義msg格式如下:

string name
int32 age
float32 height

4.此時編譯就會生成一些中間檔案,類似於建立了一些"類"可供使用
5.c_cpp_properies.json配置路徑,可以程式碼補全,導包,在includePath中新增類似/home/lausaku/demo02_ws/devel/include/**就可以一次將所有include的包匯入,不用多次新增路徑

程序通訊第二種方式-客戶服務模式圖解

image

自定義訊息:和第一種通訊方式幾乎一樣,只有修改的位置稍有不同,照貓畫虎即可。

自定義srv格式如下:

int32 num1
int32 num2
---   #回傳用---隔開
int32 sum

看到P68,明天繼續