ros1版本apollo感知融合算法

news2025/1/18 13:54:24

apollo.ros-7.0.0

本文章针对apollo 7.0.0版本进行了ros1移植,具体介绍见下文。

PS:项目开发详细了解可在评论区留言。

ros版本apollo7.0.0感知算法

基于ros1的apollo 7.0.0感知融合算法。

简介

此项目基于ros1的apollo 7.0.0感知融合算法,移植主要目的如下:

  • 学习apollo框架设计
  • 学习apollo的感知融合算法

目前只针对apollo中部分模块进行了移植,移植模块如下:

目前移植版本与原有版本改动点如下:

  • 使用原生ros(基于melodic)替代apollo中更改的Cyber
  • 使用ros pkg封装apollo中module
  • 使用catkin_make/cmake编译
  • ptotobuf版本提升到3.19.4
  • cmake版本提升到3.25.2
  • 增加动/静态障碍物rviz显示

此移植版本,能很好的将自己的算法增加到框架中,应用于机器人或者无人驾驶中;并且该框架适用于多模态传感器的融合,非1V1R

内容

.
├── CMakeLists.txt
├── launch
│   └── perception_fusion.launch
├── main.cc
├── modules
│   └── apollo_perception
│       ├── apollo_base
│       │   ├── CMakeLists.txt
│       │   ├── blob.cc
│       │   ├── blob.h
│       │   ├── box.h
│       │   ├── camera.cc
│       │   ├── camera.h
│       │   ├── common.h
│       │   ├── comparison_traits.h
│       │   ├── concurrent_object_pool.h
│       │   ├── distortion_model.cc
│       │   ├── distortion_model.h
│       │   ├── frame.h
│       │   ├── frame_supplement.h
│       │   ├── image.h
│       │   ├── image_8u.h
│       │   ├── impending_collision_edge.h
│       │   ├── object.cc
│       │   ├── object.h
│       │   ├── object_pool.h
│       │   ├── object_pool_types.cc
│       │   ├── object_pool_types.h
│       │   ├── object_supplement.h
│       │   ├── object_types.h
│       │   ├── omnidirectional_model.cc
│       │   ├── omnidirectional_model.h
│       │   ├── point.h
│       │   ├── point_cloud.h
│       │   ├── polynomial.cc
│       │   ├── polynomial.h
│       │   ├── sensor_meta.h
│       │   ├── syncedmem.cc
│       │   ├── syncedmem.h
│       │   └── vehicle_struct.h
│       ├── apollo_common
│       │   ├── CMakeLists.txt
│       │   ├── duration.cc
│       │   ├── duration.h
│       │   ├── environment.h
│       │   ├── file.cc
│       │   ├── file.h
│       │   ├── geometry
│       │   ├── graph
│       │   ├── include
│       │   ├── io
│       │   ├── perception_gflags.cc
│       │   ├── perception_gflags.h
│       │   ├── sensor_manager
│       │   ├── src
│       │   ├── time_utils.cc
│       │   └── time_utils.h
│       ├── apollo_fusion
│       │   ├── CMakeLists.txt
│       │   ├── app
│       │   ├── base
│       │   ├── common
│       │   ├── config
│       │   ├── lib
│       │   └── rviz
│       ├── apollo_lib
│       │   ├── CMakeLists.txt
│       │   ├── config_manager
│       │   ├── registerer
│       │   └── thread
│       └── proto
│           ├── CMakeLists.txt
│           ├── dst_existence_fusion_config.pb.cc
│           ├── dst_existence_fusion_config.pb.h
│           ├── dst_existence_fusion_config.proto
│           ├── dst_type_fusion_config.pb.cc
│           ├── dst_type_fusion_config.pb.h
│           ├── dst_type_fusion_config.proto
│           ├── fusion_component_config.pb.cc
│           ├── fusion_component_config.pb.h
│           ├── fusion_component_config.proto
│           ├── object.pb.cc
│           ├── object.pb.h
│           ├── object.proto
│           ├── pbf_tracker_config.pb.cc
│           ├── pbf_tracker_config.pb.h
│           ├── pbf_tracker_config.proto
│           ├── perception_config_schema.pb.cc
│           ├── perception_config_schema.pb.h
│           ├── perception_config_schema.proto
│           ├── probabilistic_fusion_config.pb.cc
│           ├── probabilistic_fusion_config.pb.h
│           ├── probabilistic_fusion_config.proto
│           ├── sensor_meta_schema.pb.cc
│           ├── sensor_meta_schema.pb.h
│           └── sensor_meta_schema.proto
├── package.xml
├── test
│   └── unit_test.cc
└── test_data
    ├── 20231121_Q2_roadtest_1.bin
    └── modules
        ├── kalman_motion_fusion
        │   ├── data
        │   └── params
        └── probabilistic_fusion
            ├── conf
            ├── data
            └── params

代码部署

  • 在线安装
    curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

  • 安装验证:安装完成执行,sudo docker version查看docker目前安装的版本等信息:

  • 使用配置:避免每次新开一个终端都要sudo输入权限,给docker增加用户的权限。执行完成后重启电脑之后生效
    sudo usermod -aG docker $USER

  • docker拉取ros melodic镜像
    docker pull osrf/ros:melodic-desktop-full

镜像构建

  • 执行指令构建镜像
    cd apollo_ros_7.0.0_ws/src/docker/build/
    ./docker_build.sh
  • 构建成功显示如下:
  • 在这里插入图片描述

编译

  • 创建容器并进入
    ./src/docker/scripts/docker_start.sh
    cd apollo_ros_ws/
  • 使用catkin_make install
    catkin_install
    在这里插入图片描述
  • 进入容器:如果容器已经启动,想新开一个终端进去,可使用以下指令:
    ./src/docker/scripts/docker_into.sh

测试

cd /home/apollo_ros/apollo_ros_ws
source devel/setup.bash
roslaunch src/apollo_7.0.0/launch/perception_fusion.launch
宿主机新开一个终端:
rviz -d src/rviz/fusion_rviz.rviz
在这里插入图片描述

Enjoy.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1674498.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

05. 【Java教程】第一个 Java 程序

本节我们将以Windows操作系统为例,编写并执行第一个Java程序。在这之前,请确保你的操作系统上已经安装了JDK 1. 编译程序 大家可能有个疑问,为什么需要编译程序呢?计算机不能直接执行我们编写的源代码吗? 这是由于计…

OV SSL证书的特点

OV SSL证书,全称为Organization Validation SSL Certificate(组织验证型SSL证书),是一种中级的SSL证书类型。与仅验证域名所有权的DV(Domain Validation)证书不同,OV证书在颁发前会执行更加严格…

Jmeter接口测试之参数化

在接口测试中,某些时候一些场景会使用到参数化的场景,参数化简单的说就是同一个请求需要不同的数据,比如在性能测试中需要并发多个用户的场景,这样的目的是为了模拟真实的用户场景,需要模拟不同的账号,这里…

ZL-016D多通道小鼠主动跑轮系统主要研究动物生活节律

简单介绍: 多通道小鼠主动跑轮系统是由动物本身自发运动来推动跑轮转动。在这种构型中,笼内动物长期活动的信息,如跑轮转动方向、转数、累计总行程等,能够使用编码器进行长度计记录。此装置由转轮组件、笼体、以及转动方向速度传…

独享静态IP:跨境网络新助手

在数字化浪潮席卷全球的今天,互联网已成为人们生活中不可或缺的一部分。而在这个由数据和信息构成的虚拟世界里,IP地址作为每一个网络设备的独特标识,其重要性不言而喻。特别是独享静态IP,它不仅为用户提供了更加稳定、安全的网络…

美国加州正测试ChatGPT等生成式AI,在4大部门应用

5月11日,美联社消息,美国加州政府正在测试ChatGPT等生成式AI,应用在税收和收费管理部、交通部、公共卫生部以及卫生与公众服务部4大部门。 测试时间6个月,为其提供技术支持的一共有5家公司,分别是OpenAI、Anthropic、…

【北京迅为】《iTOP-3588开发板从零搭建ubuntu环境手册》-第2章 获取并安装Ubuntu操作系统

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

下载文件名称乱码或变成了随机码

如图 后端是有正常返回附件名称的,浏览器开发工具中也正常显示了这个数据,但是下载下来的文件名称确实一堆随机码. 其实这个问题的原因是因为跨域 查看console: Refused to get unsafe header "content-disposition" 现象,后端传递到前端的fileName不能被识别,下载…

Sass语法介绍-混合指令

08 【Sass语法介绍-混合指令】 1.前言 混合指令在 Sass 中也是一个比较常用的指令,在前面我们讲解的内容中有编写过混合指令 mixin ,本节我们将详细讲解混合指令 mixin 的语法包括定义混合指令和引用混合指令等等,混合指令同样非常好用&…

期权隐含波动率到底是什么意思?

今天期权懂带你了解期权隐含波动率到底是什么意思?期权隐含波动率解析。通俗的说,期权隐含波动率是在期权市场中买家和卖家对于,某一期权合约价格变动幅度大小的判断。 期权隐含波动率到底是什么意思? 隐含波动率是根据期权市场价…

财务分析软件怎么选?看这篇就够了

怎么才能选到一款真正能够用于财务分析的软件?且是能够又快又直观地将财务数据情况分析清楚,从不同角度灵活分析财务数据背后的关联的软件,简单来说那得选一款BI财务分析软件。具体哪款BI财务分析软件更合适?那就要从以下几个方面…

Java 程序员必备的 15 个框架集

Java 程序员方向太多,且不说移动开发、大数据、区块链、人工智能这些,大部分 Java 程序员都是 Java Web/后端开发。那作为一名 Java Web 开发程序员必须需要熟悉哪些框架呢? d8f18202405131220599753.png 1.Spring 毫无疑问,Spri…

创建存储过程

查询语句 DDL CREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT,createDate DATE NOT NULL,phone VARCHAR(20) NOT NULL,age INT NOT NULL,sex ENUM(男, 女) NOT NULL,introduce TEXT NOT NULL,userName VARCHAR(50) NOT NULL ); DML INSERT INTO student (create…

边缘计算安全有多重要

德迅云安全研究发现边缘安全是对存储或处理在网络边缘的数据的保护。边缘可以用不同的方式定义,但一般来说,它包括企业直接控制之外的任何设备或位置。这可能包括传感器、连接物联网的设备和移动设备。 边缘计算正在彻底改变商业运作方式。这引发了对边缘…

[数据集][目标检测]交通灯检测数据集VOC+YOLO格式2600张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2600 标注数量(xml文件个数):2600 标注数量(txt文件个数):2600 标注…

牛客热题:二叉树的前序遍历

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:二叉树的前序遍历题目链接方法一…

彩虹聚合DNS管理系统

聚合DNS管理系统可以实现在一个网站内管理多个平台的域名解析,目前已支持的域名平台有:阿里云、腾讯云、华为云、西部数码、CloudFlare。本系统支持多用户,每个用户可分配不同的域名解析权限;支持API接口,支持获取域名…

黑马程序员鸿蒙HarmonyOS端云一体化开发【13-15】

前置知识:arkts 一套开发工具,一套语言,搞定客户端和云端两个的编写。其中application就是客户端,cloudProgram就是云端。 开发人员->全栈开发工程师,降低了开发成本,且提供了很多现成的云服务&#xf…

游泳带什么防水耳机好?甄选四大顶尖游泳耳机推荐,最值入手!

在享受游泳的同时,搭配一款优秀的防水耳机,能够让您的游泳体验更加完美。然而,市面上琳琅满目的防水耳机品牌,让人难以选择。作为一名游泳爱好者,我深知选购一款合适的防水耳机的重要性。因此,我自费购买了…

nginx反向代理使用(详细版)

1. 下载nginx,解压;(随便放在哪里) 2. 在nginx-1.26.0文件夹下创建web文件夹,继续在web文件夹下创建abcd.test.cn文件夹(文件夹的名字就叫abcd.test.cn); 3. 配置前端代理&#xff…