【ROS】fsd_algorithm架构学习与源码分析(致敬)

这篇具有很好参考价值的文章主要介绍了【ROS】fsd_algorithm架构学习与源码分析(致敬)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

😏★,°:.☆( ̄▽ ̄)/$:.°★ 😏
这篇文章主要介绍fsd_algorithm架构学习与源码分析(致敬)。
无专精则不能成,无涉猎则不能通。——梁启超
欢迎来到我的博客,一起学习,共同进步。
喜欢的朋友可以关注一下,下次更新不迷路🥞

😏1. 项目介绍

------------------ 叮叮叮!!! ------------------

大学生无人驾驶方程式有两支很牛的车队,国外苏黎世联邦理工的AMZ-Driverless和国内北理的Smart Shark-BITFSD,大佬们的无人驾驶车和算法做的很顶(这里就不方便放视频了),贴一下他们的网站和Github(大佬们将稳定的算法和仿真平台开源了并分享在github,给我等学习mobai):

AMZ官网:https://www.amzracing.ch/

AMZ Github地址:https://github.com/AMZ-Driverless/fssim

BITFSD官网:http://www.bitfsd.com/

BITFSD Github地址:https://github.com/bitfsd/fsd_algorithm

😊2. 架构学习

------------------ 架构很棒 ------------------

环境配置建议选择:Ubuntu 18.04 and ROS Melodic

fsd_algorithm算法仓库包含ros和tools。

tools提供了ros模板的生成,可通过py脚本generate.py自助选择生成对应语言(C++/Python)、对应节点名(包名、对象名和类名)的ros节点。

ros中包含了fsd的核心算法,如perception包、estimation包、planning包、control包和与仿真器连接的interface_fssim包。

环境配置过程如下:

# 1.clone,将ros下的包cp到自己的catkin_ws/src中
#  进入ros/control/controller/script,安装cppad和ipopt两个优化库
#  编译 catkin build

# 2.clone fssim仿真仓库到另一个catkin中
#  安装依赖,下载gazebo的models等
#  编译 catkin build

# 3.进入仿真项目环境,启动仿真环境 roslaunch fssim auto_fssim.launch
#  然后启动算法包里的仿真接口 roslaunch fssim_interface fssim_interface only_interface.launch
#  最后运行相关算法:
#  roslaunch fsd_common_meta trackdrive.launch
#  roslaunch fsd_common_meta skidpad.launch
#  roslaunch fsd_Common_meta acceleration.launch

😆3. 源码学习

------------------ 代码写的也不错 ------------------

perception

perception模块包含YOLO-ROS(darknet_ros)的目标检测包,用coco数据集训练,可配置参数文件在darkned_ros/config/ros.yaml,订阅的话题是/camera/rgb/image_raw,发布的话题有/darknet_ros/found_object/darknet_ros/bounding_boxes/darknet_ros/detection_image,此外还有动作发送/darknet_ros/check_for_objects,以此实现目标检测结果的获取;激光雷达聚类包Lidar Cluster,基于PCL,订阅的是威力登的点云/velodyne_points,发布的是聚类结果/perception/lidar_cluster,参数配置在./config/lidar_cluster.yaml,在lidar_cluster中,用preprocessing先对点云进行过滤,再用ClusterProcessing进行聚类处理。

estimation

estimation模块主要是loam建图定位和robot_localization定位包,用扩展卡尔曼和无损卡尔曼等方法获取车辆的精确位置和位姿信息。

planning

planning模块有边界检测、线检测、8字检测和路径生成这几个包。边界检测boundary_detector的核心思想是搜索和选择,基于OpenCV3,订阅/local_map,发布/planning/boundary_detections和其他几个显示话题,基于地图边界信息生成最优路径和边界结果;线检测line_detector用到了霍夫变换,订阅雷达聚类结果/perception/lidar_cluster,发布全局路径/planning/global_path,可以看到本仓库的算法的模板是getNodeRate + loadParameters + subscribeToTopics + publishToTopics + run + sendMsg 和一个callback函数,这个包核心在于createPath创建全局路径这里;线生成Path Generator包应该是进行路径优化,会根据不同的任务生成不同的参考路径,如直线加速是根据目标点参数,8字是根据转换矩阵,循迹任务是根据地图信息,最后生成控制指令并发布。

control

control模块用到了cppadipopt依赖,因为控制中用到了许多数值优化的方法,主要是根据slam地图状态和参考轨迹信息,计算出安全且舒适的控制指令发布到底层,也是分了3种工况。

【ROS】fsd_algorithm架构学习与源码分析(致敬),c++ROS自动驾驶,学习,c++,开源,ros

以上。文章来源地址https://www.toymoban.com/news/detail-644493.html

到了这里,关于【ROS】fsd_algorithm架构学习与源码分析(致敬)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux内核源码分析 (B.2)虚拟地址空间布局架构

    Linux内核只是操作系统当中的一部分,对下管理系统所有硬件设备,对上通过系统调用向 Library Routine 或其他应用程序提供API接口。 内存管理可以通过以下三个维度进行介绍: 用户空间 相当于应用程序使用 malloc() 申请内存,通过 free() 释放内存。 malloc() / free() 是 glibc 库的内

    2024年02月09日
    浏览(61)
  • 小程序应用&解包反编译&动态调试&抓包&静态分析&源码架构

    直接在微信小程序上搜就完了 参考地址:https://blog.csdn.net/m0_60571842/article/details/132564881 反编译之后就会得到源码,然后对源码架构进行分析以下4个方面 1.更多的资产信息 2.敏感的配置信息 3.未授权访问测试 4.源码中的安全问题 小程序多功能组手 简单工具:http://xcx.

    2024年02月05日
    浏览(29)
  • 商城小程序源码开发流程、技术架构简述,商城系统前端代码分析

    小程序的兴起,为电商行业带来了全新的机遇。商城小程序源码的开发,是一项非常重要的技术工作。本文将从商城小程序的开发流程、技术架构、代码实现等方面进行讲解。 一、商城小程序的开发流程 商城小程序的开发流程包括需求分析、界面设计、后台开发、前端开发

    2024年02月10日
    浏览(37)
  • openxr runtime Monado 源码解析 源码分析:整体介绍 模块架构 模块作用 进程 线程模型 整体流程

    monado系列文章索引汇总: openxr runtime Monado 源码解析 源码分析:源码编译 准备工作说明 hello_xr解读 openxr runtime Monado 源码解析 源码分析:整体介绍 模块架构 模块作用 进程 线程模型 整体流程 openxr runtime Monado 源码解析 源码分析:CreateInstance流程(设备系统和合成器系统)C

    2024年02月11日
    浏览(75)
  • 深度学习架构的对比分析

    深度学习的概念源于人工神经网络的研究,含有多个隐藏层的多层感知器是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示,以表征数据的类别或特征。它能够发现数据的分布式特征表示。深度学习是机器学习的一种,而机器学习是实现人工智能的必

    2024年02月04日
    浏览(47)
  • Day18:信息打点-小程序应用&解包反编译&动态调试&抓包&静态分析&源码架构

    目录 小程序获取-各大平台搜索 小程序体验-凡科建站模版测试上线 小程序抓包-ProxifierBurpSuite联动 小程序逆向-解包反编译动态调试架构 思维导图 章节知识点 Web:语言 / CMS / 中间件 / 数据库 / 系统 / WAF 等 系统:操作系统 / 端口服务 / 网络环境 / 防火墙等 应用: APP

    2024年04月09日
    浏览(36)
  • Backtrader 文档学习- 整体架构功能分析理解

    1. 概述 backtrader是一个用于开发和执行交易策略的Python框架。它提供了一套完整的工具和功能,使得用户可以方便地进行策略回测、实盘交易以及数据分析。 backtrader的入口为Cerebro类,该类将所有输入(Data Feeds)、策略 (Strategy)、观察者(Observers)、策略评估(Analyzers) 、经纪人(

    2024年02月22日
    浏览(33)
  • 数据结构英文习题解析-第一章 算法复杂度分析Algorithm Analysis

    前言:最近快到FDS考试了,po重刷了一下学校的题目,自己整理了一些解析orz 因为po在自己找解析和学习的过程中非常痛苦,所以在此共享一下我的题目和自己写的解题思路,欢迎各位指出错误~全章节预计会陆续更新,可在专栏查看~ HW1 1. The major task of algorithm analysis is to an

    2024年03月12日
    浏览(61)
  • 深度学习记录--Adam optimization algorithm

    momentum和RMSprop的结合 初始化 参数: 先进行 momentum 过程: 然后进行 RMSprop 过程: 接着进行 偏差修正 : , , 最后 更新权重 :   一般地,学习率需要经过多次调试之后才可得到 其他超参数一般设置为:

    2024年01月24日
    浏览(31)
  • 数据分析基础-数据可视化学习笔记06-交互架构

    对视觉表⽰进⾏操作 · 视觉分析的可视化应有助于对视觉表⽰数据的操作 · ⼀系列反馈回路 · 概述 · 放⼤/缩⼩ · 选择 · 筛选 · 查找相关信息 · 促进数据空间的探索。 · 选择和操作 · 直接处理数据的视觉表⽰。 · 探索与导航 · 理解并⾛过视觉呈现的空间。 从列表中选

    2024年02月10日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包