女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于CUDA加速的自主機器SLAM 技術–CUDA NDT

星星科技指導員 ? 來源:NVIDIA ? 作者:NVIDIA ? 2022-10-10 11:54 ? 次閱讀

隨著自主機器的發展,我們可以在生活中經常看到自主機器的應用。有傳統應用的倉庫工廠AMR,機械臂,銀行酒店里面的服務機器人,家庭機器人,無人物流車,自主礦卡等等。不同的自主機器,軟件架構的方案也不一樣,但核心的模塊定位,導航,感知,控制等都是相通的。

定位模塊是自主機器最核心的模塊之一,定位又包括全局定位和局部定位,對于自主機器,其精度需要達到厘米級別。本文我們將討論全局定位,即確定自主機器在全局下的位置。傳統的低速自主機器,類似于AMR等,其采用的定位方式通常以SLAM(simultaneous localization and mapping)的方法進行同時建圖和定位,但是該方法實現代價高,難度大,并不適用于室外自主機器,類似于無人物流車,園區接駁車等的實時高精度定位需求。這些室外自主機器行駛速度快,距離遠,環境復雜,使得SLAM的精度下降,同時遠距離的行駛將導致實時構建的地圖偏移過大。因此,如果在已有高精度的全局地圖地圖的情況下進行自主機器的定位,將極大的簡化該問題。

因此,將問題分為獨立的兩部分:建圖Mapping和定位Matching。NDT是一種點云配準算法,可同時用于點云的建圖和定位。

CUDA-NDT

正態分布變換算法(Normal Distributions Transform, NDT) 同ICP算法的功能一致,即,用于計算兩幀點云數據之間的坐標變換矩陣,從而能夠使不同的坐標下的點云數據合并到同一個坐標系統中。不同的是NDT算法對初值不敏感,且不需要進行對應點的特征計算,所以速度較快。NDT算法使用應用于 3D 點統計模型的標準優化技術來確定兩個點云之間最可能的配準。NDT算法和 ICP算法可以結合使用,以提高配準精度和速度。首先,NDT算法可用于粗配準,得到轉換參數;然后使用ICP算法結合參數進行精細配準。為了改進NDT算法在NVIDIA Jetson上的性能,我們推薦使用基于CUDA加速的CUDA-NDT。

使用CUDA-NDT

以下是CUDA NDT的使用實例

我們需要初始化相關的類對象,設置相關的參數,并調用接口函數。

cudaNDT ndtTest(nPCountM, nQCountM, stream);
ndtTest.setInputSource(source);
ndtTest.setInputTarget(target);
ndtTest.setResolution(resolution);
ndtTest.setMaximumIterations(nr_iterations);
ndtTest.setTransformationEpsilon(epsilon);
ndtTest.setStepSize(step_size);
    ndtTest.ndt(cloud_source, nPCount,
               cloud_target, nQCount, guess,
               transformation_matrix, stream);

CUDA-NDT 計算的輸出是 transformation_matrix,代表的含義如下:

源點云(P)* transformation_matrix = 目標坐標系的點云(Q)
因為激光類型的輸出點云的數量為固定值,所以CUDA-NDT在輸出化的時候,要求輸入兩幀點云的最大數量,從而分配計算資源。

class cudaNDT
{
public:
    /*
       nPCountM and nQCountM are the maximum of count for input clouds
       They are used to pre-allocate memory.
    */
    cudaNDT(int nPCountM, int nQCountM, cudaStream_t stream = 0);
    ~cudaNDT(void);
void setInputSource (void *source);
void setInpuTarget (void *target);
void setResolution (float resolution);
void setMaximumIterations (int nr_iterations);
void setTransformationEpsilon (double epsilon);
void setStepSize (double step_size);
    /*
    cloud_target = transformation_matrix * cloud_source
    When the Epsilon of transformation_matrix is less than threshold,
    the function will return transformation_matrix.
    Input:
        cloud_source, cloud_target: data pointer for points cloud
        nPCount: the points number of cloud_source
        nQCount: the points number of cloud_target
        guess: initial guess of transformation_matrix
        stream: CUDA stream
    Output:
        transformation_matrix: rigid transformation matrix
    */

    void ndt(float *cloud_source, int nPCount,
            float *cloud_target, int nQCount,
            float *guess, void *transformation_matrix,
            cudaStream_t stream = 0);
    void *m_handle = NULL;
};

經過CUDA加速的NDT速度對比微加速版本提升了4倍左右,請參考以下Table2性能對比,經過NDT匹配的點云效果對比請參考Figure1和2。

關于作者

Lily Li 正在為 NVIDIA 的機器人團隊處理開發人員關系。她目前正在 Jetson 生態系統中開發機器人技術解決方案,以幫助創建最佳實踐。

Haoyu Deng 是 NVIDIA 的CUDA開發工程師。目前,他正與 TSE 中國團隊合作,通過CUDA開發優化軟件性能的解決方案。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    213

    文章

    29504

    瀏覽量

    211609
  • AMR
    AMR
    +關注

    關注

    3

    文章

    456

    瀏覽量

    30844
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    借助NVIDIA技術加速半導體芯片制造

    NVIDIA Blackwell GPU、NVIDIA Grace CPU、高速 NVIDIA NVLink 網絡架構和交換機,以及諸如 NVIDIA cuDSS 和 NVIDIA cuLitho 等特定領域的 NVIDIA CUDA-X 庫,正幫助改進高級芯片制造領域的計算光刻和設備仿真。
    的頭像 發表于 05-27 13:59 ?245次閱讀

    【「# ROS 2智能機器人開發實踐」閱讀體驗】視覺實現的基礎算法的應用

    閱讀心得體會:ROS2機器人視覺與地圖構建技術 通過對本書第7章(ROS2視覺應用)和第8章(ROS2地圖構建)的學習,我對機器人視覺感知和自主導航的核心
    發表于 05-03 19:41

    【「# ROS 2智能機器人開發實踐」閱讀體驗】+ROS2應用案例

    這一部分內容,我掌握了如何在ROS 2中實現SLAM,這對于提高機器人的自主導航能力具有重要意義。 其他內容概述 除了二維碼識別和SLAM技術
    發表于 04-27 11:42

    使用NVIDIA CUDA-X庫加速科學和工程發展

    NVIDIA GTC 全球 AI 大會上宣布,開發者現在可以通過 CUDA-X 與新一代超級芯片架構的協同,實現 CPU 和 GPU 資源間深度自動化整合與調度,相較于傳統加速計算架構,該技術可使計算工程工具運行速度提升至原來的
    的頭像 發表于 03-25 15:11 ?571次閱讀

    研華科技加速智能自主系統與機器人應用發展

    研華科技近日舉辦“智能自主系統與機器人應用伙伴高峰論壇”,將攜手生態伙伴,打造靈活且ROS兼容的機器人解決方案。
    的頭像 發表于 03-11 13:46 ?322次閱讀

    【「具身智能機器人系統」閱讀體驗】2.具身智能機器人的基礎模塊

    具身智能機器人的基礎模塊,這個是本書的第二部分內容,主要分為四個部分:機器人計算系統,自主機器人的感知系統,自主機器人的定位系統,自主機器
    發表于 01-04 19:22

    《CST Studio Suite 2024 GPU加速計算指南》

    的GPU不能在單個主機系統中組合使用。 - AMD GPU:目前只有時域求解器(FIT)支持AMD GPU,如Instinct MI 210、Radeon VII等,并給出了相關規格和主機系統要求
    發表于 12-16 14:25

    使用CUDA-Q實現量子聚類算法

    量子計算機能夠利用疊加、糾纏和干涉等量子特性,從數據中歸納出知識點并獲得洞察。這些量子機器學習(QML)技術最終將在量子加速的超級計算機上運行,這種超級計算機結合了 CPU、GPU 和 QPU 的處理能力,能夠解決一些世界上最復
    的頭像 發表于 11-20 10:14 ?627次閱讀
    使用<b class='flag-5'>CUDA</b>-Q實現量子聚類算法

    激光雷達在SLAM算法中的應用綜述

    一、文章概述 1.1 摘 要 即時定位與地圖構建(simultaneous localization and mapping,SLAM)是自主移動機器人和自動駕駛的關鍵 技術之一,而激
    的頭像 發表于 11-12 10:30 ?2311次閱讀
    激光雷達在<b class='flag-5'>SLAM</b>算法中的應用綜述

    有沒有大佬知道NI vision 有沒有辦法通過gpu和cuda加速圖像處理

    有沒有大佬知道NI vision 有沒有辦法通過gpu和cuda加速圖像處理
    發表于 10-20 09:14

    從算法角度看 SLAM(第 2 部分)

    作者: Aswin S Babu 正如我們在[第 1 部分]中所討論的,SLAM 是指在無地圖區域中估計機器人車輛的位置,同時逐步繪制該區域地圖的過程。根據使用的主要技術SLAM
    的頭像 發表于 10-02 16:39 ?725次閱讀
    從算法角度看 <b class='flag-5'>SLAM</b>(第 2 部分)

    怎么在TMDSEVM6678: 6678自帶的FFT接口和CUDA提供CUFFT函數庫選擇?

    請教一下gpgpu上包括4個Riscv cpu和一個DPU, 沒有6678,要替換原來信號處理用的6678,該怎么在6678自帶的FFT接口和CUDA提供CUFFT函數庫選擇?
    發表于 09-27 07:20

    打破英偉達CUDA壁壘?AMD顯卡現在也能無縫適配CUDA

    電子發燒友網報道(文/梁浩斌)一直以來,圍繞CUDA打造的軟件生態,是英偉達在GPU領域最大的護城河,尤其是隨著目前AI領域的發展加速,市場火爆,英偉達GPU+CUDA的開發生態則更加穩固,AMD
    的頭像 發表于 07-19 00:16 ?5744次閱讀

    英國公司實現英偉達CUDA軟件在AMD GPU上的無縫運行

    7月18日最新資訊,英國創新科技企業Spectral Compute震撼發布了其革命性GPGPU編程工具包——“SCALE”,該工具包實現了英偉達CUDA軟件在AMD GPU上的無縫遷移與運行,標志著在GPU計算領域,NVIDIA長期以來的市場壟斷地位或將迎來重大挑戰。
    的頭像 發表于 07-18 14:40 ?975次閱讀

    軟件生態上超越CUDA,究竟有多難?

    神壇的,還是圍繞CUDA打造的一系列軟件生態。 ? 英偉達——CUDA的絕對統治 ? 相信對GPU有過一定了解的都知道,英偉達的最大護城河就是CUDACUDA在后端架構上處于絕對的統
    的頭像 發表于 06-20 00:09 ?4230次閱讀