ROS學習記錄 三

2021-10-09 07:40:51 字數 3969 閱讀 7607

進入~/catkin_ws/src:cd ~/catkin_ws/src

建立乙個ros包:catkin_create_pkg my_pcl_tutorial pcl_conversions pcl_ros roscpp sensor_msgs

進入my_pcl_tutorial:cd my_pcl_tutorial

開啟package.xml增加

libpcl-all-dev<

/build_depend>

libpcl-all<

/exec_depend>

在src檔案下新建檔案example.cpp

輸入以下**:(建立**框架)

#include

// pcl specific includes

#include

#include

#include

#include

ros::publisher pub;

void cloud_cb (

const sensor_msgs::pointcloud2constptr& input)

int main (

int argc,

char

** ar**)

開啟my_pcl_tutorial包下的cmakelists.txt檔案,增加:

add_executable(example src/example.cpp)

target_link_libraries(example $)

pcl主要有四種點雲結構:

sensor_msgs::pointcloud — ros message (deprecated)

sensor_msgs::pointcloud2 — ros message

pcl::pclpointcloud2 — pcl data structure mostly for compatibility with ros (i think)

pcl::pointcloud — standard pcl data structure

我實驗等等的只關注標準的點雲結構(ps:使用過pcl)

複製貼上以下**到example.cpp中:

#include

// pcl specific includes

#include

#include

#include

#include

#include

#include

#include

#include

ros::publisher pub;

void

cloud_cb (

const sensor_msgs::pointcloud2constptr& input)

intmain (

int argc,

char

** ar**)

突然發現沒有連線雷射雷達。

想個辦法測試下這段時間學的東西。

1、設計乙個節點輸入雷射雷達資料(從pcd檔案中輸入)。

2、設計乙個節點作為視覺化。

3、設計乙個節點分割地面點。

早已安裝了pcl-conversions,但是沒有pcl/ros/conversions.**件???

經過一系列的踩坑、查資料、摸索,乙個簡單的讀取pcd資料、並發布的節點完成。

)刪除example.cpp中的

#include

新建乙個pcl_pcd.cpp檔案

複製貼上(用絕對路徑,相對路徑搞不懂):

#include

#include

#include

#include

#include

#include

#include

#include

ros::publisher pub;

intmain (

int argc,

char

** ar**)

return0;

}

進入資料夾:cd ~/catkin_ws

執行 catkin_make

執行rosrun my_pcl_tutorial pcl_pcd

在pcl_pcd.cpp同目錄下新建visual_pcl.cpp

輸入以下**:

#include

#include

#include

#include

#include

#include

#include

#include

#include

void cloud_cb (

const sensor_msgs::pointcloud2constptr& pcd_data)

}int

main

(int argc,

char

** ar**)

在cmakelist.txt上增加:

add_executable

(visual_pcl src/visual_pcl.cpp)

target_link_libraries

(visual_pcl $ $

)

cd ~/catkin_ws(返回catkin_ws目錄下)

執行:catkin_make

執行:rosrun my_pcl_tutorial pcl_pcd

新建乙個終端

執行:rosrun my_pcl_tutorial visual_pcl

再新建乙個終端,執行rqt_graph,看下節點,話題關係。

執行:rosrun rqt_graph rqt_graph

但是,這個簡單的視覺化節點並不能做到實時顯示點雲。

下一步,把這個視覺化節點變成乙個實時顯示點雲的節點。

學習到了。

把visual_pcl.cpp中的**換成大佬部落格中的**,就能實現實時視覺化節點。

github

ROS學習記錄1

echo ros package path mkdir p dev catkin ws src cd dev catkin ws src catkin init workspace cd dev catkin ws catkin make source devel setup.sh 或者執行下面這行...

ROS學習記錄(一)

ros學習記錄 一 ros安裝及環境配置 這個我之前已經配配置好了,這裡僅做記錄。安裝ubuntu16.04 ubuntu16.04的安裝包是前輩給我的,直接在虛擬機器中執行安裝,網上相關資源應該挺多。安裝ros系統 2.1 新增sources.list 配置電腦使其能夠安裝來自 packages....

ROS學習(三)了解ROS節點

節點 nodes 節點是使用ros與其他節點通訊的可執行檔案。訊息 messages 訂閱或發布主題 topic 時使用的ros資料型別。主題 topic 節點可以將訊息發布到主題,也可以訂閱主題以接收訊息。節點管理器 master ros的名稱服務 即幫助節點相互查詢 rosout 等效於stdo...