今天測試轉換出來的點雲資料,利用rviz顯示不出來結果。提示錯誤如下:
no message received in rviz
status:error.
points showing [0] points from [0] messages.
topic no messages received.
transform for frame: frame does not exist.
在網上google了一下,就把網友的例子和回答,在部落格裡面備份一下吧!
**如下:通過訂閱兩個訊息,發布乙個資料。
typedef pcl::pointcloud> pointcloud;
typedef pcl::pointxyz pointtype;
ros::publisher pub;
pcl::pointcloudkeypoint_indices;
pcl::pointcloud::ptr keypoints_ptr (new pcl::pointcloud);
pcl::pointcloud& keypoints = *keypoints_ptr;
float angular_resolution_;
float support_size_ =0.2f;
image_geometry::pinholecameramodel model_;
void cameramodelcallback(const sensor_msgs::camerainfoconstptr &info_msg)
void depthimage_cb(const sensor_msgs::imageconstptr &depth_msg)
解決方法:
參考參考2
參考3所發布資料,需要給定frame_id和stamp標籤。因為rviz顯示資料,需要知道資料的frame_id和時間戳。
keypoints.header.frame_id = depth_msg->header.frame_id;
keypoints.header.stamp = depth_msg->header.stamp;
ROS學習 在同乙個節點實現發布 訂閱訊息
在ros的應用中,常常會遇見乙個節點接收了某個資料後,經過處理再 出來。下面就這種情況給出在同乙個節點實現發布 訂閱訊息的例子。include ros ros.h include std msgs float64.h include class tl1 intmain int argc,char a...
乙個陣列實現兩個棧
題目 乙個陣列a 1.n 來實現兩個棧,使得兩個棧中的元素總和不到n時,兩個都不會發生上溯。思路 1 建立乙個陣列,分別從兩邊開始,依次往中間走。思路 2 建立乙個陣列,乙個走奇數字,乙個走偶數字。奇偶方式 define crt secure no warnings includeusing nam...
乙個陣列實現兩個棧
乙個陣列實現兩個棧,和 共享棧其實是很類似的。有兩種方式實現 看圖就知道 一種是兩個棧增長方向一樣的 另一種起始位置分別在棧的兩端,往中間增長。方法一 增長方向一樣 方法 把陣列下標分為奇數和偶數 分別給兩個棧使用 如下 我在程式中注釋的 部分,可以放開 看看是什麼效果,注釋掉的那部分是我剛開始的想...