哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于CUDA加速的自主機(jī)器SLAM 技術(shù)–CUDA NDT

星星科技指導(dǎo)員 ? 來(lái)源:NVIDIA ? 作者:NVIDIA ? 2022-10-10 11:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

隨著自主機(jī)器的發(fā)展,我們可以在生活中經(jīng)??吹阶灾鳈C(jī)器的應(yīng)用。有傳統(tǒng)應(yīng)用的倉(cāng)庫(kù)工廠AMR,機(jī)械臂,銀行酒店里面的服務(wù)機(jī)器人,家庭機(jī)器人,無(wú)人物流車,自主礦卡等等。不同的自主機(jī)器,軟件架構(gòu)的方案也不一樣,但核心的模塊定位,導(dǎo)航,感知,控制等都是相通的。

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

因此,將問(wèn)題分為獨(dú)立的兩部分:建圖Mapping和定位Matching。NDT是一種點(diǎn)云配準(zhǔn)算法,可同時(shí)用于點(diǎn)云的建圖和定位。

CUDA-NDT

正態(tài)分布變換算法(Normal Distributions Transform, NDT) 同ICP算法的功能一致,即,用于計(jì)算兩幀點(diǎn)云數(shù)據(jù)之間的坐標(biāo)變換矩陣,從而能夠使不同的坐標(biāo)下的點(diǎn)云數(shù)據(jù)合并到同一個(gè)坐標(biāo)系統(tǒng)中。不同的是NDT算法對(duì)初值不敏感,且不需要進(jìn)行對(duì)應(yīng)點(diǎn)的特征計(jì)算,所以速度較快。NDT算法使用應(yīng)用于 3D 點(diǎn)統(tǒng)計(jì)模型的標(biāo)準(zhǔn)優(yōu)化技術(shù)來(lái)確定兩個(gè)點(diǎn)云之間最可能的配準(zhǔn)。NDT算法和 ICP算法可以結(jié)合使用,以提高配準(zhǔn)精度和速度。首先,NDT算法可用于粗配準(zhǔn),得到轉(zhuǎn)換參數(shù);然后使用ICP算法結(jié)合參數(shù)進(jìn)行精細(xì)配準(zhǔn)。為了改進(jìn)NDT算法在NVIDIA Jetson上的性能,我們推薦使用基于CUDA加速的CUDA-NDT。

使用CUDA-NDT

以下是CUDA NDT的使用實(shí)例

我們需要初始化相關(guān)的類對(duì)象,設(shè)置相關(guān)的參數(shù),并調(diào)用接口函數(shù)。

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 計(jì)算的輸出是 transformation_matrix,代表的含義如下:

源點(diǎn)云(P)* transformation_matrix = 目標(biāo)坐標(biāo)系的點(diǎn)云(Q)
因?yàn)榧す忸愋偷妮敵鳇c(diǎn)云的數(shù)量為固定值,所以CUDA-NDT在輸出化的時(shí)候,要求輸入兩幀點(diǎn)云的最大數(shù)量,從而分配計(jì)算資源。

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;
};

經(jīng)過(guò)CUDA加速的NDT速度對(duì)比微加速版本提升了4倍左右,請(qǐng)參考以下Table2性能對(duì)比,經(jīng)過(guò)NDT匹配的點(diǎn)云效果對(duì)比請(qǐng)參考Figure1和2。

關(guān)于作者

Lily Li 正在為 NVIDIA 的機(jī)器人團(tuán)隊(duì)處理開發(fā)人員關(guān)系。她目前正在 Jetson 生態(tài)系統(tǒng)中開發(fā)機(jī)器人技術(shù)解決方案,以幫助創(chuàng)建最佳實(shí)踐。

Haoyu Deng 是 NVIDIA 的CUDA開發(fā)工程師。目前,他正與 TSE 中國(guó)團(tuán)隊(duì)合作,通過(guò)CUDA開發(fā)優(yōu)化軟件性能的解決方案。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 機(jī)器人
    +關(guān)注

    關(guān)注

    213

    文章

    31442

    瀏覽量

    223644
  • AMR
    AMR
    +關(guān)注

    關(guān)注

    3

    文章

    486

    瀏覽量

    32292
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    RV生態(tài)又一里程碑:英偉達(dá)官宣CUDA將兼容RISC-V架構(gòu)!

    電子發(fā)燒友網(wǎng)報(bào)道(文/梁浩斌)英偉達(dá)生態(tài)護(hù)城河CUDA,從最初支持x86、Power?CPU架構(gòu),到2019年宣布支持Arm?CPU,不斷拓展在數(shù)據(jù)中心的應(yīng)用生態(tài)。 在2019年至今的六年
    的頭像 發(fā)表于 07-19 00:04 ?6821次閱讀
    RV生態(tài)又一里程碑:英偉達(dá)官宣<b class='flag-5'>CUDA</b>將兼容RISC-V架構(gòu)!

    eIQ 工具包在 Ubuntu 22.04 中不起作用怎么解決?

    :35.129579: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:477] Unable to register cuFFT
    發(fā)表于 04-22 06:54

    ROS2 SLAM建圖與導(dǎo)航實(shí)戰(zhàn)--基于米爾RK3576開發(fā)板

    ? 在ROS2生態(tài)中,SLAM(同時(shí)定位與建圖)與導(dǎo)航(Navigation)是機(jī)器自主移動(dòng)的核心技術(shù)SLAM Toolbox由Stev
    發(fā)表于 03-12 17:55

    借助NVIDIA CUDA Tile IR后端推進(jìn)OpenAI Triton的GPU編程

    NVIDIA CUDA Tile 是基于 GPU 的編程模型,其設(shè)計(jì)目標(biāo)是為 NVIDIA Tensor Cores 提供可移植性,從而釋放 GPU 的極限性能。CUDA Tile 的一大優(yōu)勢(shì)是允許開發(fā)者基于其構(gòu)建自定義的 DSL。
    的頭像 發(fā)表于 02-10 10:31 ?524次閱讀

    如何在NVIDIA CUDA Tile中編寫高性能矩陣乘法

    本博文是系列課程的一部分,旨在幫助開發(fā)者學(xué)習(xí) NVIDIA CUDA Tile 編程,掌握構(gòu)建高性能 GPU 內(nèi)核的方法,并以矩陣乘法作為核心示例。
    的頭像 發(fā)表于 01-22 16:43 ?5295次閱讀
    如何在NVIDIA <b class='flag-5'>CUDA</b> Tile中編寫高性能矩陣乘法

    NVIDIA CUDA Tile的創(chuàng)新之處、工作原理以及使用方法

    NVIDIA CUDA 13.1 推出 NVIDIA CUDA Tile,這是自 2006 年 NVIDIA CUDA 平臺(tái)發(fā)明以來(lái),最大的一次技術(shù)進(jìn)步。這一令人振奮的創(chuàng)新引入了一套面
    的頭像 發(fā)表于 12-24 10:17 ?647次閱讀
    NVIDIA <b class='flag-5'>CUDA</b> Tile的創(chuàng)新之處、工作原理以及使用方法

    在Python中借助NVIDIA CUDA Tile簡(jiǎn)化GPU編程

    NVIDIA CUDA 13.1 版本新增了基于 Tile 的GPU 編程模式。它是自 CUDA 發(fā)明以來(lái) GPU 編程最核心的更新之一。借助 GPU tile kernels,可以用比 SIMT
    的頭像 發(fā)表于 12-13 10:12 ?1425次閱讀
    在Python中借助NVIDIA <b class='flag-5'>CUDA</b> Tile簡(jiǎn)化GPU編程

    NVIDIA CUDA 13.1版本的新增功能與改進(jìn)

    NVIDIA CUDA 13.1 是自 CUDA 二十年前發(fā)明以來(lái),規(guī)模最大、內(nèi)容最全面的一次更新。
    的頭像 發(fā)表于 12-13 10:08 ?2447次閱讀

    什么是激光雷達(dá) 3D SLAM技術(shù)?

    在智能移動(dòng)設(shè)備自主運(yùn)行的賽道上,激光雷達(dá)3DSLAM技術(shù)正成為破局關(guān)鍵,但多數(shù)人對(duì)其認(rèn)知仍停留在表層。要讀懂這一核心技術(shù),不妨先回溯“SLAM”的本質(zhì)——
    的頭像 發(fā)表于 12-02 19:23 ?783次閱讀
    什么是激光雷達(dá) 3D <b class='flag-5'>SLAM</b><b class='flag-5'>技術(shù)</b>?

    首款全國(guó)產(chǎn)訓(xùn)推一體AI芯片發(fā)布,兼容CUDA生態(tài)

    CUDA生態(tài)體系。該芯片支持從單機(jī)多卡到千卡級(jí)集群的靈活擴(kuò)展,能效比達(dá)3.41 TFLOPS/W——在同等功
    的頭像 發(fā)表于 11-30 07:20 ?9769次閱讀
    首款全國(guó)產(chǎn)訓(xùn)推一體AI芯片發(fā)布,兼容<b class='flag-5'>CUDA</b>生態(tài)

    FPGA和GPU加速的視覺SLAM系統(tǒng)中特征檢測(cè)器研究

    特征檢測(cè)是SLAM系統(tǒng)中常見但耗時(shí)的模塊,隨著SLAM技術(shù)日益廣泛應(yīng)用于無(wú)人機(jī)等功耗受限平臺(tái),其效率優(yōu)化尤為重要。本文首次針對(duì)視覺SLAM流程開展硬件
    的頭像 發(fā)表于 10-31 09:30 ?877次閱讀
    FPGA和GPU<b class='flag-5'>加速</b>的視覺<b class='flag-5'>SLAM</b>系統(tǒng)中特征檢測(cè)器研究

    英偉達(dá):CUDA 已經(jīng)開始移植到 RISC-V 架構(gòu)上

    ,著重介紹了將 CUDA 移植到 RISC-V 架構(gòu)的相關(guān)工作和計(jì)劃,展現(xiàn)了對(duì) RISC-V 架構(gòu)的高度重視與積極布局。 ? Frans Sijstermanns 首先回顧了英偉達(dá)與 RISC-V 之間
    發(fā)表于 07-17 16:30 ?4011次閱讀

    借助NVIDIA技術(shù)加速半導(dǎo)體芯片制造

    NVIDIA Blackwell GPU、NVIDIA Grace CPU、高速 NVIDIA NVLink 網(wǎng)絡(luò)架構(gòu)和交換機(jī),以及諸如 NVIDIA cuDSS 和 NVIDIA cuLitho 等特定領(lǐng)域的 NVIDIA CUDA-X 庫(kù),正幫助改進(jìn)高級(jí)芯片制造領(lǐng)域的計(jì)算光刻和設(shè)備仿真。
    的頭像 發(fā)表于 05-27 13:59 ?1273次閱讀

    【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】視覺實(shí)現(xiàn)的基礎(chǔ)算法的應(yīng)用

    閱讀心得體會(huì):ROS2機(jī)器人視覺與地圖構(gòu)建技術(shù) 通過(guò)對(duì)本書第7章(ROS2視覺應(yīng)用)和第8章(ROS2地圖構(gòu)建)的學(xué)習(xí),我對(duì)機(jī)器人視覺感知和自主導(dǎo)航的核心
    發(fā)表于 05-03 19:41

    【「# ROS 2智能機(jī)器人開發(fā)實(shí)踐」閱讀體驗(yàn)】+ROS2應(yīng)用案例

    這一部分內(nèi)容,我掌握了如何在ROS 2中實(shí)現(xiàn)SLAM,這對(duì)于提高機(jī)器人的自主導(dǎo)航能力具有重要意義。 其他內(nèi)容概述 除了二維碼識(shí)別和SLAM技術(shù)
    發(fā)表于 04-27 11:42
    铜鼓县| 镇赉县| 额尔古纳市| 竹北市| 阿拉善右旗| 明光市| 缙云县| 库伦旗| 板桥市| 井研县| 定陶县| 庄河市| 嘉义市| 浦北县| 龙游县| 中宁县| 株洲县| 阳高县| 普格县| 东丰县| 嘉峪关市| 苍梧县| 高邮市| 秦安县| 郑州市| 买车| 乐山市| 扎赉特旗| 墨脱县| 辽源市| 延安市| 嘉善县| 澄江县| 克什克腾旗| 玉门市| 湖口县| 黑水县| 万荣县| 淮滨县| 都兰县| 商都县|