【thuctc源码解读】【源码精灵贝塔】【精灵全套源码】rosbridge 源码

2024-12-28 21:22:36 来源:写真 图片 系统源码 分类:热点

1.cruise-automation Webviz 简介
2.Cartographer源码详解|(2)Cartographer_ros

rosbridge 源码

cruise-automation Webviz 简介

       cruise-automation项目旨在开发一系列与现有开源工具如rviz、rqt console、rqt_runtime_monitor、rostopic echo和rqt_plot相呼应的可视化面板。通过进一步的开发,添加了针对Cruise特定需求的thuctc源码解读自定义面板,远离传统工具,以更精细地满足工程师解决问题的需要,并保持对开放源代码机器人社区的实用性。随着定制化和对过时工具逐渐迁移,这些面板功能日益精进。

       项目目标是源码精灵贝塔替代ROS中的可视化工具,如rviz、rqt等。Webviz实现这一目标,提供直观且功能丰富的界面。在试用过程中,发现其稳定性高、加载速度快、使用便捷。以下是Webviz的安装和运行步骤,假设操作系统为Ubuntu .。

       Webviz与ROS数据传递通过rosbridge_suite进行。精灵全套源码对于实时显示数据(而非使用bag文件),需要安装rosbridge_suite。

       Webviz启动默认使用websocket端口,无需调整,连接时会自动使用该端口。

       安装nodejs时,遵循github.com/nodesource/d...指南,选择较旧版本(如v.x,避免新版本编译问题)。

       接下是Webviz编译过程:

       下载代码。

       执行编译命令,DHT 爬虫 源码确保根目录下安装了所有依赖。

       再次执行编译。

       运行编译好的程序,浏览器将直接打开预览界面(推荐使用Chrome浏览器)。

       测试Webviz效果时,可使用两个示例topic:速腾的lidar数据和gnss定位信息(默认时间坐标,也可切换为xy坐标形式)。实测效果如图所示,展示了Webviz在可视化数据方面的强大能力。

Cartographer源码详解|(2)Cartographer_ros

       上一篇文章深入分析了传感器数据的流向,接下来让我们继续探讨传感器格式的skdj系统源码转换与类型变换。这部分内容在sensor_bridge.cc文件中。在处理传感器的坐标变换时,我们需要运用三维空间刚体运动的知识,先进行简要回顾,以助于理解代码。

       三维空间刚体运动涉及向量内积与外积。向量内积的计算公式如下,表示两个向量的点乘。向量外积则是一个向量,其方向垂直于两个向量,大小为两向量张成四边形的有向面积,计算公式如下。

       旋转和平移是欧氏变换的两个关键部分。旋转涉及单位正交基的变换,形成旋转矩阵(Rotation matrix),该矩阵的各分量由两组基之间的内积组成,反映了旋转前后同一向量坐标的变化关系。平移则通过向旋转后的坐标中加入平移向量t实现。通过旋转矩阵R和平移向量t,我们可以完整描述欧氏空间中的坐标变换关系。

       为了简化变换过程,引入齐次坐标和变换矩阵。在三维向量末尾添加1形成四维向量,进行线性变换。变换矩阵T能够将两次变换叠加简化为一个操作,便于后续计算。

       Cartographer的坐标转换程序位于transform文件夹下的rigid_transform中,用于求解变换矩阵的逆。

       在sensor_bridge类中,构造函数将传入配置参数,对里程计数据进行处理。首先将ros时间转换为ICU时间,然后利用tf_bridge_.LookupToTracking函数找到tracking坐标系与里程计child_frame_id之间的坐标变换。在ToOdometryData函数中,将里程计的footprint的pose转换为tracking_frame的pose,并最终将结果转换为carto::sensor::OdometryData的数据类型。

       HandleOdometryMessage函数将传感器数据类型与坐标系转换完成后,调用trajectory_builder_->AddSensorData进行数据处理。对于雷达数据,首先转换为点云格式,然后对点云进行坐标变换,并调用trajectory_builder_->AddSensorData进行数据处理。

       IMU数据处理中,要求平移分量小于1e-5,然后调用trajectory_builder_->AddSensorData对数据进行处理。

       在雷达数据处理部分,首先将点云数据分段,然后传给HandleRangefinder处理,将点云坐标变换到tracking_frame坐标系下,调用trajectory_builder_->AddSensorData函数进行数据处理。

       总结本章内容,我们详细解析了SensorBridge类,对传感器数据进行了转换和传输。通过Node类、MapBuilderBridge类和SensorBridge类,我们对Cartographer_ros部分的代码有了基本了解。接下来,我们将深入学习cartographer。

更多资讯请点击:热点

推荐资讯

新北中和「蝙蝠檢出臺灣麗沙病毒」 疾管署提醒4種動物風險高

疾管署今25)天表示,日前民眾在新北市中和區拾獲1隻絨山蝠,經農業部獸醫研究所檢測鑑定為臺灣麗沙病毒第二型陽性,其基因型與狂犬病病毒同屬第一類基因親緣群Phylogroup I)。依據農業部監測資料顯

世衞組織:加沙地帶北部已經沒有正常運作的醫院

當地時間21日,世衞組織駐巴勒斯坦被佔領土代表理乍得·皮佩爾科恩表示,由於缺乏燃料、人員和物資,加沙地帶北部已經沒有仍在正常運作的醫院。來源:央視新聞)責任編輯:

重庆北碚:家居门店停业 “兜底协议”帮消费者挽回损失450余万元

中国消费者报重庆讯记者刘文新)由重庆北碚区经销商黄某峰、胡某东共同经营的欧派、金牌、芝华仕等3家家居门店突然停业,导致206名消费者订购的家居产品无法交付。北碚区市场监管局、消委会经过多方努力,促成这