【Apollo CyberRT】入口 mainboard

本文介绍了Apollo自动驾驶系统中的关键组件CyberRT的mainboard,它是任务调度和通信管理的入口,负责解析配置参数和加载动态库。主要涉及module_argument.h和module_controller.h的代码结构功能。

以本篇作为Apollo CyberRT系列的开头
CyberRT是Apollo系统中的任务调度和通信管理的中间件,是整个Apollo自动驾驶系统的骨架
而mainboard是整个CyberRT或者说Apollo软件系统的入口,
或者简单的理解,它就是我们非常熟悉的exe + so 软件体系中那个exe
是整个Apollo项目的main()函数所在的位置,Apollo其他模块都是链接在mainboard上的共享库。
而其功能也非常的简单,就是解析配置参数,加载相应的动态库文件。

代码位置

apollo/cyber/mainboard

代码结构
在这里插入图片描述

module_argument.h : 解析启动参数,即 $ mainboard -p … -d … -s …
module_controller.h : 加载共享库,调用ClassLoaderManager加载类

给定引用内容中未提及 Apollo Cyber RT 实现点云可视化的方法、工具或指南相关信息。不过,通常在 Apollo Cyber RT 里实现点云可视化可以借助以下通用思路与工具: ### 利用 `cyber_visualizer` Apollo Cyber RT 框架自带 `cyber_visualizer` 这一可视化工具,它也许能用于点云数据的可视化。可以通过该工具订阅点云消息主题,从而展示点云数据。示例命令如下: ```bash cyber_visualizer ``` 在 `cyber_visualizer` 界面里,配置订阅的点云消息主题,就能看到点云的可视化效果。 ### 自定义可视化程序 借助 Apollo Cyber RT 的 API 编写自定义的可视化程序。可以使用 Python 或者 C++ 编写程序,订阅点云消息,再利用第三方可视化库(像 PCL Visualizer、Open3D 等)进行点云的可视化。以下是一个简单的 Python 示例: ```python import cyber from modules.perception.proto.pointcloud_pb2 import PointCloud import open3d as o3d import numpy as np def callback(pointcloud_msg): points = [] for point in pointcloud_msg.points: points.append([point.x, point.y, point.z]) points = np.array(points) pcd = o3d.geometry.PointCloud() pcd.points = o3d.utility.Vector3dVector(points) o3d.visualization.draw_geometries([pcd]) if __name__ == '__main__': cyber.init() node = cyber.Node("pointcloud_visualizer") subscriber = node.create_reader("/apollo/sensor/pointcloud", PointCloud, callback) node.spin() cyber.shutdown() ``` ### 借助 RViz 虽然 Apollo Cyber RT 是替代 ROS 的消息中间件,但也能够和 ROS 工具集成。可以把 Apollo Cyber RT 的消息转换为 ROS 消息,然后使用 RViz 进行点云可视化。这需要编写转换程序,将点云数据从 Apollo Cyber RT 消息格式转换为 ROS 的 `sensor_msgs/PointCloud2` 消息格式。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值