宇樹機器狗go2—slam建圖(1)點云格式

0.前言

上一篇番外文章教大家如何在宇樹機器狗go2的gazebo仿真環境中實現簡單的導航運動,本期文章會教大家如何讓宇樹的機器狗go2在仿真環境中進行slam建圖時經常會遇到的一些點云格式,在后續的slam建圖和slam算法解析的時候會經常與這些點云信息打交道。宇樹機器狗go2仿真會作為一個長期項目來進行不定期更新,仿真不只限于在gazebo上實現,后面還會在isaac sim等仿真平臺上教大家如何搭建,其目的還是幫助各位都能以較低的成本加入到宇樹機器狗go2的學習中。gazebo的仿真對電腦的需求會低于isaac sim等仿真平臺,這對實驗條件要求會低很多,更很適合學校小實驗室或個人進行仿真實驗。

同時我也希望能有更多的開發者加入近來一起完成機器狗go2的仿真實驗項目的建設,如有更好的方案和建議可以私聊或申請共創作者。

1.ros PointClould點云格式

宇樹機器狗go2配上livox的mid360進行gazebo仿真使用的就是ros PointClould點云格式(livox官方gazebo仿真功能包給的是ros PointClould點云格式,但可通過修改點云屬性文件livox_points_plugin.cpp來將PointCloud點云):

image.png

使用rostopic命令會在終端中打印出話題的消息類型、發布者和接收者。

rostopic info /scan 

image.png

ros PointClould的點云消息格式如下:sensor_msgs /PointCloud Message

std_msgs/Header header
geometry_msgs/Point32[] points
sensor_msgs/ChannelFloat32[] channels
  1. header:類型為 Header,包含了消息的元數據,如時間戳(stamp)、坐標系(frame_id)等。時間戳可用于確定數據采集的時間,坐標系則表明這些點云數據所在的參考系。
  2. points:類型為 geometry_msgs/Point32[],是一個三維點的數組。每個 Point32 包含三個浮點型字段 x、y、z,分別表示點在三維空間中的坐標。
  3. channels:類型為 sensor_msgs/ChannelFloat32[],用于存儲額外的屬性信息。每個 ChannelFloat32 包含一個字符串 name 用于標識該通道的含義,以及一個浮點型數組 values 存儲對應的值。例如,可以用一個通道存儲點的強度信息,另一個通道存儲點的顏色信息等。

2.ros PointClould2點云格式

宇樹機器狗go2配上velodyne的vlp16進行gazebo仿真使用的就是ros PointClould2點云格式:

image.png

使用rostopic命令會在終端中打印出話題的消息類型、發布者和接收者。

rostopic info /velodyne_points

image.png

ros PointClould2的點云消息格式如下:sensor_msgs /PointCloud2 Message

std_msgs/Header header
uint32 height
uint32 width
sensor_msgs/PointField[] fields
bool is_bigendian
uint32 point_step
uint32 row_step
uint8[] data
bool is_dense
  1. header:?Header?類型,包含時間戳和坐標系等元數據。
  2. height 和 width:height?和?width?用于描述點云的二維結構。如果點云是無序的,height?通常為 1,width?表示點的數量;如果點云是有序的(如立體相機采集的深度圖),則?height 和?width?分別表示點云的行數和列數。
  3. fields:類型為sensor_msgs/PointField[],描述了點云中每個點的字段信息。每個?PointField?包含字段的名稱(如?xyzintensity?等)、偏移量(表示該字段在數據中的起始位置)、數據類型(如?FLOAT32UINT8?等)和計數(通常為 1)。
  4. is_bigendian:布爾類型,指示數據是否采用大端字節序。
  5. point_step:無符號 32 位整數,表示每個點在數據緩沖區中占用的字節數。
  6. row_step:無符號 32 位整數,表示每行點在數據緩沖區中占用的字節數。
  7. data:無符號 8 位整數數組,存儲了實際的點云數據。數據按照?fields?中定義的字段順序和?point_steprow_step 的規則排列。
  8. is_dense:布爾類型,指示點云中是否包含無效點(如 NaN 或 Inf)。如果為?true,則表示點云中所有點都是有效的。

3.ros PointClould點云格式與ros PointClould2點云格式的區別

點擊宇樹機器狗go2—slam建圖(1)點云格式?查看全文

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902088.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902088.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902088.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux socket編程之udp(實現客戶端和服務端消息的發送和接收)

目錄 一.創建socket套接字(服務器端) 二.bind將prot與端口號進行綁定(服務器端) 2.1填充sockaddr_in結構 2.2bind綁定端口 三.直接通信(服務器端) 3.1接收客戶端發送的消息 3.2給客戶端發送消息 四.客戶端通信 4.1創建socket套接字 4.2客戶端bind問題 4.3直接通信即可…

第1期:Python基礎語法入門

1.1 Python簡介 Python是一種解釋型、面向對象、動態數據類型的高級編程語言。它設計簡潔,易于學習,適合初學者。Python廣泛應用于數據科學、人工智能、Web開發、自動化腳本等領域。它的語法簡潔易懂,強調代碼的可讀性。 1.2 安裝Python與配…

使用EXCEL繪制平滑曲線

播主播主,你都多少天沒更新了!!!泥在干什么?你還做這個賬號麻?!!! 做的做的(哭唧唧),就是最近有些忙,以及…… 前言&…

當算力遇上馬拉松:一場科技與肉身的極限碰撞

目錄 一、從"肉身苦修"到"科技修仙" 二、馬拉松的"新大陸戰爭" 三、肉身會被算法"優化"嗎? 馬拉松的下一站是"人機共生"時代 當AI能預測你的馬拉松成績,算法能規劃最佳補給方案,智能裝備讓訓練效率翻倍——你還會用傳…

MLLMs for TSAD ?

項目鏈接:Multimodal LLMs Advance Time Series Analysis 代碼鏈接:https://github.com/mllm-ts/VisualTimeAnomaly 出處:ICLR 2025 一 文章動機 多模態 LLM (MLLM) 通過 “視覺” 方式處理時序的潛力仍未充分探索; 人類檢測 “時序異常” 的自然方式:可視化、文本描…

開發基于python的商品推薦系統,前端框架和后端框架的選擇比較

開發一個基于Python的商品推薦系統時,前端和后端框架的選擇需要綜合考慮項目需求、開發效率、團隊熟悉度以及系統的可擴展性等因素。 以下是一些推薦的框架和建議: 后端框架 Flask 優點: 輕量級:Flask的核心非常簡潔,…

chili3d調試筆記2+添加web ui按鈕

onclick 查找 打個斷點看看 挺可疑的,打個斷點看看 挺可疑的,打個斷點看看 打到事件監聽上了 加ui了 加入成功 新建彈窗-------------------------------------- 可以模仿這個文件,寫彈窗 然后在這里注冊一下,外部就能調用了 對了…

【重學Android】1.關于@Composer注解的一點知識筆記

最新因為一些原因,開始重新學習Android及kotlin編程,也覺得可以順帶記錄下這個過程中的一些知識點,也可以用作日后自己查找復習。 Composable 注解在 Android 開發中的使用 Composable 是 Jetpack Compose(Android 的現代聲明式…

qt+mingw64+cmake+libqrencode項目編譯和搭建成功記錄

最近要使用高拍儀拍照獲取照片,然后識別照片中的二維碼數據、使用QZxing只能識別出一個條碼、另外一個條碼準備測試用其他的開源項目(如libqrencode-4.1.1)來進行測試,故進行本文的項目環境搭建測試,最后成功。 本機開…

【今日三題】判斷是不是平衡二叉樹(遞歸) / 最大子矩陣(二維前綴和) / 小蔥的01串(滑動窗口)

??個人主頁:小羊 ??所屬專欄:每日兩三題 很榮幸您能閱讀我的文章,誠請評論指點,歡迎歡迎 ~ 目錄 判斷是不是平衡二叉樹(遞歸)最大子矩陣(二維前綴和)小蔥的01串(滑動窗口) 判斷是不是平衡二叉樹(遞歸) 判斷是不是平衡二叉…

【Linux】線程ID、線程管理、與線程互斥

📚 博主的專欄 🐧 Linux | 🖥? C | 📊 數據結構 | 💡C 算法 | 🌐 C 語言 上篇文章: 【Linux】線程:從原理到實戰,全面掌握多線程編程!-CSDN博客 下…

定制一款國密瀏覽器(10):移植SM2算法前,解決錯誤碼的定義問題

上一章中,我給大家介紹了 SM4 在 BoringSSL 上的移植要點,本來計劃本章介紹 SM2 算法的移植要點。在移植 SM2 過程中,遇到了一個攔路虎,所以先掃除這個攔路虎,這就是錯誤碼的定義問題。 在銅鎖中,引入了幾個錯誤碼和錯誤字符串,在文件 sm2_err.c 中: static const ER…

JDOM處理XML:Java程序員的“樂高積木2.0版“

各位代碼建筑師們!今天我們要玩一款比原生DOM更"Java友好"的XML積木套裝——JDOM!它像樂高得寶系列(Duplo)一樣簡單易用,卻能讓你的XML工程穩如霍格沃茨城堡!(溫馨提示:別…

【后端開發】Spring日志

文章目錄 Spring日志日志作用日志測試日志信息日志級別日志配置配置日志級別日志持久化日志文件分割 注解的使用 Spring日志 日志作用 系統監控:可以通過日志記錄這個系統的運行狀態,對數據進行分析,設置不同的規則,超過閾值時進…

探索大語言模型(LLM):Transformer 與 BERT從原理到實踐

Transformer 與 BERT:從原理到實踐 前言一、背景介紹二、核心公式推導1. 注意力機制(Attention Mechanism)2. 多頭注意力機制(Multi-Head Attention)3. Transformer 編碼器(Transformer Encoder&#xff09…

計算機網絡八股——HTTP協議與HTTPS協議

目錄 HTTP1.1簡述與特性 1. 報文清晰易讀 2. 靈活和易于擴展 3. ?狀態 Cookie和Session 4. 明?傳輸、不安全 HTTP協議發展過程 HTTP/1.1的不足 HTTP/2.0 HTTP/3.0 HTTPS協議 HTTP協議和HTTPS協議的區別 HTTPS中的加密方式 HTTPS中建立連接的方式 前言&#xff…

QML中的3D功能--入門開發

Qt Quick 提供了強大的 3D 功能支持,主要通過 Qt 3D 模塊實現。以下是 QML 中開發 3D 應用的全面指南。 1. 基本配置 環境要求 Qt 5.10 或更高版本(推薦 Qt 6.x) 啟用 Qt 3D 模塊 支持 OpenGL 的硬件 項目配置 在 .pro 文件中添加: QT += 3dcore 3drender 3dinput 3dex…

Git合并分支的兩種常用方式`git merge`和`git cherry-pick`

Git合并分支的兩種常用方式git merge和git cherry-pick 寫在前面1. git merge用途工作方式使用git命令方式合并使用idea工具方式合并 2. git cherry-pick用途工作方式使用git命令方式合并使用idea工具方式合并 3. 區別總結 寫在前面 一般我們使用git合并分支常用的就是git mer…

Web三漏洞學習(其三:rce漏洞)

靶場:NSSCTF 三、RCE漏洞 1、概述 在Web應用開發中會讓應用調用代碼執行函數或系統命令執行函數處理,若應用對用戶的輸入過濾不嚴,容易產生遠程代碼執行漏洞或系統命令執行漏洞 所以常見的RCE漏洞函數又分為代碼執行函數和系統命令執行函數…

從零開始:Python運行環境之VSCode與Anaconda安裝配置全攻略 (1)

從零開始:Python 運行環境之 VSCode 與 Anaconda 安裝配置全攻略 在當今數字化時代,Python 作為一種功能強大且易于學習的編程語言,被廣泛應用于數據科學、人工智能、Web 開發等眾多領域。為了順利開啟 Python 編程之旅,搭建一個穩…