機器人控制器開發(定位——cartographer ros2 使用2)

文章總覽

1 純定位模式

當完成建圖后,會生成pbstream格式的地圖文件
配置純定位模式的lua腳本
backpack_2d_localization.lua

include "backpack_2d.lua"TRAJECTORY_BUILDER.pure_localization_trimmer = {max_submaps_to_keep = 3,
}
POSE_GRAPH.optimize_every_n_nodes = 20return options

配置純定位模式的launch文件

import os
from launch import LaunchDescription
from launch_ros.actions import Node
from launch.substitutions import LaunchConfiguration
from launch.actions import DeclareLaunchArgumentdef generate_launch_description():# 參數聲明map_file = DeclareLaunchArgument('map_file',default_value=os.path.expanduser('/home/cat/map/map.pbstream'),description='Path to prebuilt map file')configuration_directory = DeclareLaunchArgument('configuration_directory',default_value='/home/cat/cartographer_ws/src/cartographer_ros/cartographer_ros/configuration_files',description='Configuration directory')configuration_basename = DeclareLaunchArgument('configuration_basename',default_value='backpack_2d_localization.lua',description='Configuration file basename')use_sim_time = DeclareLaunchArgument('use_sim_time',default_value='false',description='Use simulation time')# Cartographer 節點cartographer_node = Node(package='cartographer_ros',executable='cartographer_node',name='cartographer_node',parameters=[{'use_sim_time': LaunchConfiguration('use_sim_time')}],arguments=['-configuration_directory', LaunchConfiguration('configuration_directory'),'-configuration_basename', LaunchConfiguration('configuration_basename'),'-load_state_filename', LaunchConfiguration('map_file'),'-load_frozen_state', 'true'  # 關鍵:凍結地圖狀態'-pure_localization', 'true'   # 關鍵:明確啟用純定位模式],# 關鍵重映射:確保與 Navigation2 兼容remappings=[('scan', '/scan'),              # 激光雷達數據('odom', '/odom'),               # 里程計數據('imu', '/imu/data'),            # IMU 數據('initial_pose', '/initialpose') # 初始位姿設置(用于重定位)],output='screen')# 占用網格節點# occupancy_grid_node = Node(#     package='cartographer_ros',#     executable='cartographer_occupancy_grid_node',#     name='occupancy_grid_node',#     parameters=[{'use_sim_time': LaunchConfiguration('use_sim_time')}],#     arguments=[ #         '-resolution', '0.05',  # 網格分辨率#         '-pure_localization', 'true'  # 純定位模式#     ]# ) return LaunchDescription([map_file,configuration_directory,configuration_basename,use_sim_time,cartographer_node])

2 地圖發布

注意點:occupancy_grid_node需要注釋掉,否則仍然會發送/map話題,cartographer算法沒有純定位的功能,在純定位時也會計算子圖。
我們可以使用nav2_map_server包的map_server節點實現地圖的發送,配置yaml_filename問題,即可發送地圖信息。
將之前slam建圖時得到的pbstream文件轉為yaml文件,使用如下命令實現:

ros2 run cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=map18  -pbstream_filename=map.pbstream -resolution=0.02

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

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

相關文章

《大數據之路1》筆記3:數據管理

一 元數據 1.1 元數據概述 定義: 元數據是關于數據的數據,元數據打通了源數據、數據倉庫、數據應用,記錄了數據從生產到消費的全部過程。元數據主要記錄數據倉庫中模型的定義、各層級間的映射關系、監控數據倉庫的數據狀態和ETL的任務運行狀態…

排序實現java

排序算法概述Java中實現排序可以通過多種方式,包括內置方法、自定義算法或使用第三方庫。常見的排序算法有冒泡排序、選擇排序、插入排序、快速排序、歸并排序等。使用Arrays.sort()方法對于數組排序,Java提供了Arrays.sort()方法,支持對基本…

51c大模型~合集182

我自己的原文哦~ https://blog.51cto.com/whaosoft/14174587 #LaV-CoT 超越GPT-4o,螞蟻集團與南洋理工大學提出:首個語言感知的視覺思維鏈 隨著大型視覺語言模型(VLM)的飛速發展,它們在處理復雜的視…

C++ STL之deque的使用和模擬實現

目錄 deque 核心本質與定位 與stack和queue的關系: deque的使用 deque的底層實現 deque的原理介紹 deque的缺陷 總結: deque deque文檔 : deque 翻譯: 雙端隊列 deque(通常發音類似“deck”)是“double-ended queue”(雙端隊列&…

布草洗滌廠設備租賃押金原路退回系統—東方仙盟

設備租賃狀態設備管理添加設備設備收押金設備退押金在布草洗滌行業的運營版圖中,設備租賃是連接廠商與客戶的重要紐帶,而押金的收取與退還則是這一環節中關乎信任與效率的關鍵節點。未來之窗布草洗滌廠深諳此道,專為設備租賃業務打造的 “押金…

換源rocklinux和centos

一、Rockylinux換源,國外的源換成國內的源#nmcli connection modify ens33 ipv4.addresses 192.168.121.11 ipv4.gateway 192.168.121.2 ipv4.method manual ipv4.dns 114.114.114.114 connection.autoconnect yes修改地址#systemctl stop firewalld#systemctl diab…

第一部分:服務器硬件配置

目錄1.1 服務器上架與連線1.2 啟用CPU虛擬化功能(BIOS設置)1.3 配置RAID存儲步驟1:進入RAID配置界面步驟2:確認RAID控制器信息步驟3:創建系統RAID(用于安裝ESXi)步驟4:創建數據RAID&…

手搓一個 DELL EMC Unity存儲系統健康檢查清單

寫在前面對于DELL EMC存儲系統Unity的一些深度的健康檢查通過Web的Unisphere圖形化界面是做不到的,圖形化界面只能看到是否有告警,物理的東西是否有問題的,邏輯的Pool和LUN等是否ready,再深入的潛在的問題是查不到的。另外&#x…

【數據結構】二叉樹的概念

01 概念定義:二叉樹既然叫二叉樹,顧名思義即度最大為2的樹稱為二叉樹。 它的度可以為 1 也可以為 0,但是度最大為 2 。 一顆二叉樹是節點的一個有限集合,該集合:① 由一個根節點加上兩棵被稱為左子樹和右子樹的二叉樹組…

【RK3576】【Android14】如何在Android14下單獨編譯kernel-6.1?

單獨編譯kernel依賴如下幾個源碼:【交叉編譯工具鏈】prebuilts/clang/host/linux-x86/clang-r487747c【內核源碼】kernel-6.1為什么Android下編譯內核使用clang作為交叉編譯工具鏈而不是GCC?Android 14 選擇使用預置的 Clang 工具鏈(如 clang…

什么是Redis的Pipeline

介紹Redis的Pipeline是一種網絡優化技術,在沒有Pipeline的時候,客戶端往redis發送請求,客戶端需要等到redis響應之后才能發送下一個請求。而Pipeline,使redis可以一次性接收多個請求。減少了通信次數,顯著的提高了性能…

【ElementUI el-table跨頁勾選】

一、el-table需加上refs和 row-key屬性 二、type"selection"勾選框 需加上 reserve-selection儲備選擇屬性 三、在分頁請求數據時&#xff0c;觸發 setSelected()方法 四、在 selection-change變化時保存 selectedRows <el-table ref"tables" :data&quo…

論文閱讀/博弈論/拍賣:《Truthful Auction for Cooperative Communications》

摘要&#xff1a;一方面&#xff0c;協作通信由于其在提升無線網絡容量方面的巨大潛力而日益受到關注。另一方面&#xff0c;協作通信技術的實際應用卻很少見&#xff0c;即使在一些對帶寬需求極高的應用場景中&#xff0c;系統設計者也并未采用協作通信技術來開發創新的網絡解…

系統軟中間件:連接軟件與硬件的橋梁

理解“系統軟中間件”這個術語很重要&#xff0c;它實際上是兩個緊密相關但又不同的概念的組合&#xff1a; 系統軟件中間件 嚴格來說&#xff0c;“系統軟中間件”不是一個標準的獨立術語。它通常指的是屬于系統軟件范疇的中間件&#xff0c;或者理解為作為系統軟件重要組成部…

音視頻學習(六十四):avc1 hvc1和hev1

基礎概念縮寫編碼標準FourCC說明AVC/H.264Advanced Video Codingavc1最常用的 H.264 編碼標識符&#xff0c;兼容 MP4/MOV/FMP4 等容器。HEVC/H.265High Efficiency Video Codinghvc1HEVC 視頻流在 MP4/FMP4 中常用標識符&#xff0c;要求存儲 NALU 的 VPS/SPS/PPS&#xff08;…

【WIT】編程百問一

01 什么時postman&#xff1f; Postman 是一款專門用于幫助開發人員處理 API 的工具&#xff0c;它的作用主要有以下幾個方面&#xff1a; 方便調試 API&#xff1a;就像你打電話給別人要先撥對號碼一樣&#xff0c;開發人員要讓不同的軟件系統之間通過 API 進行通信&#xff…

RAG 從入門到放棄?丐版 demo 實戰筆記(go+python)

背景 我當前有一個業務系統&#xff0c;希望能添加一個機器人助手。直接使用大模型&#xff0c;由于缺少相關的業務數據&#xff0c;效果并不理想&#xff0c;了解一下 RAG。 什么是 RAG RAG(Retrieval Augmented Generation)&#xff0c;搜索引擎 大模型。 簡單來說就是從…

《IDEA 突然“三無”?三秒找回消失的綠色啟動鍵、主菜單和項目樹!》

目錄 一、左上角綠色啟動鍵憑空消失 1.1 解決辦法 二、頂部 File / Edit / View... 整條主菜單欄 罷工 2.1 解決辦法 三、左側 Project 工具窗口 集體失聯&#xff0c;只剩 External Libraries 孤零零 3.1 解決辦法 昨天下午擼代碼&#xff0c;不知道按到了哪兒&#xff…

軟件工程實踐二:Spring Boot 知識回顧

文章目錄一、創建項目&#xff08;Spring Boot 向導&#xff09;二、項目最小代碼示例三、運行與驗證四、標準目錄結構與說明五、Maven 依賴最小示例&#xff08;僅供參考&#xff09;六、常用配置&#xff08;application.yml 示例&#xff09;七、返回 JSON 與統一異常八、Va…

【系列文章】Linux中的并發與競爭[04]-信號量

【系列文章】Linux中的并發與競爭[04]-信號量 該文章為系列文章&#xff1a;Linux中的并發與競爭中的第4篇 該系列的導航頁連接&#xff1a; 【系列文章】Linux中的并發與競爭-導航頁 文章目錄【系列文章】Linux中的并發與競爭[04]-信號量一、信號量二、實驗程序的編寫2.1驅動…