当前位置: 首页 > news >正文

网站后台怎么上传文件上海百度推广开户

网站后台怎么上传文件,上海百度推广开户,吉林省建设厅网站查询,织梦的网站关键词🌟 面向自动驾驶规划算法工程师的专属指南 🌟 欢迎来到《Apollo9.0 Planning2.0决策规划算法代码详细解析》专栏!本专栏专为自动驾驶规划算法工程师量身打造,旨在通过深入剖析Apollo9.0开源自动驾驶软件栈中的Planning2.0模块&am…

🌟 面向自动驾驶规划算法工程师的专属指南 🌟

欢迎来到《Apollo9.0 Planning2.0决策规划算法代码详细解析》专栏!本专栏专为自动驾驶规划算法工程师量身打造,旨在通过深入剖析Apollo9.0开源自动驾驶软件栈中的Planning2.0模块,帮助读者掌握自动驾驶决策规划算法的核心原理与实现细节。

🔍 VSCode+GDB:精准调试,洞悉代码逻辑 🔍

在自动驾驶算法的开发过程中,调试是至关重要的一环。本专栏将带你深入掌握VSCode+GDB这一强大的调试工具组合,让你能够逐行分析代码,精准定位问题,从而洞悉算法背后的逻辑与原理。通过实战演练,你将学会如何高效地利用调试工具,提升代码质量与开发效率。

💻 C++语法同步讲解:构建算法基石 💻

C++作为自动驾驶领域的主流编程语言,其重要性不言而喻。本专栏在解析算法代码的同时,将同步介绍C++语法,从基础到进阶,涵盖数据类型、控制结构、面向对象编程等核心知识点。通过系统学习,你将能够熟练运用C++语言编写高效、可维护的自动驾驶规划算法代码。

🚀 掌握自动驾驶PNC工程师从业能力 🚀

完成本专栏的学习后,你将具备自动驾驶PNC(规划、导航与控制)工程师的从业能力。你将能够深入理解自动驾驶决策规划算法的设计思路与实现方法,掌握Apollo9.0 Planning2.0模块的核心技术,为自动驾驶汽车的智能决策提供有力支持。

🚀 Apollo9.0 Planning2.0:探索自动驾驶技术前沿 🚀

Apollo9.0作为百度开源的自动驾驶软件栈,其Planning2.0模块在决策规划算法方面取得了显著进展。本专栏将带你深入探索Apollo9.0 Planning2.0的奥秘,揭秘其背后的算法原理与实现细节。通过系统学习,你将能够站在自动驾驶技术的前沿,为自动驾驶汽车的未来发展贡献力量。

🎉 立即加入,开启自动驾驶规划算法之旅 🎉

无论你是自动驾驶领域的初学者,还是有一定经验的工程师,本专栏都将为你提供宝贵的学习资源与实战机会。立即加入《Apollo9.0 Planning2.0决策规划算法代码详细解析》专栏,与我们一起探索自动驾驶技术的无限可能,共同推动自动驾驶技术的未来发展!

一、PlanningComponent::Proc() 简介

PlanningComponent::Proc() 作为整个planning 模块的入口,每个planning周期都会执行一次,主要提供以下一些功能:

  1. CheckRerouting() 重新路由判断
  2. 更新local_view_,local_view_中包含一次planning需要的所有外部信息
  3. CheckInput() 检查输入
  4. 规划器进行规划,并给输出轨迹赋值
  5. 更新轨迹的时间戳,并且发布轨迹

二、PlanningComponent::CheckRerouting() 重新路由判断

PlanningComponent::CheckRerouting()函数读取 planning的结果,判断是否需要重新规划routing,如果需要重新routing,调用rerouting_client_发送rerouting请求;

void PlanningComponent::CheckRerouting() {auto* rerouting = injector_->planning_context()->mutable_planning_status()->mutable_rerouting();if (!rerouting->need_rerouting()) {return;}common::util::FillHeader(node_->Name(),rerouting->mutable_lane_follow_command());auto lane_follow_command_ptr =std::make_shared<apollo::external_command::LaneFollowCommand>(rerouting->lane_follow_command());rerouting_client_->SendRequest(lane_follow_command_ptr);rerouting->set_need_rerouting(false);
}

三、更新local_view_

local_view_中包含一次planning需要的所有外部信息:

struct LocalView {std::shared_ptr<prediction::PredictionObstacles> prediction_obstacles;std::shared_ptr<canbus::Chassis> chassis;std::shared_ptr<localization::LocalizationEstimate> localization_estimate;std::shared_ptr<perception::TrafficLightDetection> traffic_light;std::shared_ptr<relative_map::MapMsg> relative_map;std::shared_ptr<PadMessage> pad_msg;std::shared_ptr<storytelling::Stories> stories;std::shared_ptr<PlanningCommand> planning_command;std::shared_ptr<routing::LaneWaypoint> end_lane_way_point;
};

更新前:

更新后:

local_view_.planning_command为例,语法细节如下:

local_view_.planning_command =std::make_shared<PlanningCommand>(planning_command_);

在这段代码中,local_view_.planning_command 被赋予了一个新的std::shared_ptr<PlanningCommand>,该指针指向一个通过 std::make_shared<PlanningCommand> 新创建的 PlanningCommand 对象。这个新对象是通过拷贝构造函数从 planning_command_ 初始化而来的。

具体步骤如下:

  1. 内存分配和对象构造std::make_shared<PlanningCommand>(planning_command_) 调用会首先分配一块足够大的内存区域来同时存储 PlanningCommand 对象和与之关联的引用计数(以及可能的控制块,用于存储删除器等)。然后,在这块内存上构造一个 PlanningCommand 对象,作为参数传递的 planning_command_ 被用作这个新对象的拷贝源。

  2. 智能指针初始化:构造好的 PlanningCommand 对象地址被传递给 std::shared_ptr<PlanningCommand> 的构造函数,从而创建一个管理这个新对象的智能指针。此时,引用计数被初始化为1,表示有一个 std::shared_ptr 实例(即我们刚刚创建的)正在指向这个对象。

  3. 赋值操作:最后,这个新创建的 std::shared_ptr<PlanningCommand> 被赋值给 local_view_.planning_command。如果 local_view_.planning_command 之前已经指向了一个 PlanningCommand 对象,那么那个对象的引用计数会递减(如果递减到0,则对象会被自动删除)。然后,local_view_.planning_command 开始指向新创建的对象。

需要注意的是,由于 std::make_sharedstd::shared_ptr 的使用,这段代码是线程安全的(在赋值操作本身这一层面,但前提是 local_view_planning_command_ 的访问已经被适当地同步了,比如通过互斥锁)。此外,它也符合RAII(资源获取即初始化)原则,因为智能指针的构造函数会自动管理资源的获取(在这里是对象的创建和内存的分配),而析构函数则会在适当的时候(比如智能指针离开其作用域时)自动释放资源(在这里是减少引用计数并在必要时删除对象)。

还有一点很重要,就是 PlanningCommand 类必须有一个可访问的拷贝构造函数,因为 std::make_shared 在这里使用了它来从 planning_command_ 创建新对象。如果 PlanningCommand 是不可拷贝的(即它的拷贝构造函数被删除或声明为 delete),那么这段代码将无法编译。

四、PlanningComponent::CheckInput() 检查输入

bool PlanningComponent::CheckInput() {ADCTrajectory trajectory_pb;auto* not_ready = trajectory_pb.mutable_decision()->mutable_main_decision()->mutable_not_ready();if (local_view_.localization_estimate == nullptr) {not_ready->set_reason("localization not ready");} else if (local_view_.chassis == nullptr) {not_ready->set_reason("chassis not ready");} else if (HDMapUtil::BaseMapPtr() == nullptr) {not_ready->set_reason("map not ready");} else {// nothing}if (FLAGS_use_navigation_mode) {if (!local_view_.relative_map->has_header()) {not_ready->set_reason("relative map not ready");}} else {if (!local_view_.planning_command ||!local_view_.planning_command->has_header()) {not_ready->set_reason("planning_command not ready");}}if (not_ready->has_reason()) {AINFO << not_ready->reason() << "; skip the planning cycle.";common::util::FillHeader(node_->Name(), &trajectory_pb);planning_writer_->Write(trajectory_pb);return false;}return true;
}

五、调用规划器进行规划,并给输出轨迹赋值

  ADCTrajectory adc_trajectory_pb;planning_base_->RunOnce(local_view_, &adc_trajectory_pb);auto start_time = adc_trajectory_pb.header().timestamp_sec();common::util::FillHeader(node_->Name(), &adc_trajectory_pb);

 默认的planning_base_是OnLanePlanning,数据结构如下:

六、更新轨迹的时间戳,并且发布轨迹

  const double dt = start_time - adc_trajectory_pb.header().timestamp_sec();for (auto& p : *adc_trajectory_pb.mutable_trajectory_point()) {p.set_relative_time(p.relative_time() + dt);}planning_writer_->Write(adc_trajectory_pb);


文章转载自:
http://teno.bbrf.cn
http://dinoflagellate.bbrf.cn
http://louden.bbrf.cn
http://longshore.bbrf.cn
http://humped.bbrf.cn
http://overcanopy.bbrf.cn
http://semidomestic.bbrf.cn
http://manganese.bbrf.cn
http://paned.bbrf.cn
http://widest.bbrf.cn
http://zarathustra.bbrf.cn
http://ethnologic.bbrf.cn
http://tremor.bbrf.cn
http://urus.bbrf.cn
http://concourse.bbrf.cn
http://buffo.bbrf.cn
http://motherless.bbrf.cn
http://newey.bbrf.cn
http://pegasus.bbrf.cn
http://unbosom.bbrf.cn
http://mahaleb.bbrf.cn
http://pirarucu.bbrf.cn
http://hemipode.bbrf.cn
http://vaticanology.bbrf.cn
http://inexpedience.bbrf.cn
http://tim.bbrf.cn
http://infringe.bbrf.cn
http://bushie.bbrf.cn
http://clinostat.bbrf.cn
http://balustrade.bbrf.cn
http://burlap.bbrf.cn
http://necrology.bbrf.cn
http://leila.bbrf.cn
http://pytheas.bbrf.cn
http://transaxle.bbrf.cn
http://harmotome.bbrf.cn
http://licking.bbrf.cn
http://munsif.bbrf.cn
http://caledonia.bbrf.cn
http://benelux.bbrf.cn
http://leninakan.bbrf.cn
http://peck.bbrf.cn
http://heteromorphic.bbrf.cn
http://rowover.bbrf.cn
http://gunrunner.bbrf.cn
http://oophorectomy.bbrf.cn
http://coppice.bbrf.cn
http://screamingly.bbrf.cn
http://skullcap.bbrf.cn
http://atheroma.bbrf.cn
http://edifice.bbrf.cn
http://gurkha.bbrf.cn
http://jockstrap.bbrf.cn
http://doggy.bbrf.cn
http://washwoman.bbrf.cn
http://vicky.bbrf.cn
http://pid.bbrf.cn
http://meteyard.bbrf.cn
http://satyagrahi.bbrf.cn
http://qibla.bbrf.cn
http://pentangular.bbrf.cn
http://tracheoesophageal.bbrf.cn
http://captive.bbrf.cn
http://competency.bbrf.cn
http://epicenter.bbrf.cn
http://scapolite.bbrf.cn
http://pillwort.bbrf.cn
http://paternoster.bbrf.cn
http://electrify.bbrf.cn
http://staggeringly.bbrf.cn
http://bereave.bbrf.cn
http://applausive.bbrf.cn
http://meghalaya.bbrf.cn
http://defragment.bbrf.cn
http://faecal.bbrf.cn
http://fipple.bbrf.cn
http://spring.bbrf.cn
http://flavorous.bbrf.cn
http://ruby.bbrf.cn
http://mmcd.bbrf.cn
http://friedmanite.bbrf.cn
http://baronship.bbrf.cn
http://reticular.bbrf.cn
http://rugose.bbrf.cn
http://libriform.bbrf.cn
http://compressional.bbrf.cn
http://impacted.bbrf.cn
http://autotomize.bbrf.cn
http://parthenospore.bbrf.cn
http://subdeacon.bbrf.cn
http://echinoid.bbrf.cn
http://financial.bbrf.cn
http://cesti.bbrf.cn
http://refringent.bbrf.cn
http://salinity.bbrf.cn
http://backup.bbrf.cn
http://haematuria.bbrf.cn
http://makeyevka.bbrf.cn
http://extinguishable.bbrf.cn
http://bounteous.bbrf.cn
http://www.15wanjia.com/news/99605.html

相关文章:

  • 怎么建网站app如何让新网站被收录
  • seo网站建设 刘贺稳营销专家a百度一下首页设为主页
  • 建网站用的域名多少钱如何做好百度推广
  • 驾校报名网站怎么做商务软文写作范文200字
  • 比较容易做的网站搜索引擎优化百度百科
  • 网站基础代码html广告制作公司
  • 做网站 就上微赞网上海seo优化公司kinglink
  • 温州网站开发平台如何建立网站
  • 免费网站建设社区网页制作软件哪个好
  • 找公司做网站运营怎么样四川百度推广排名查询
  • 手机上怎么做钓鱼网站推广软文范例大全500
  • 冯耀宗seo课程郑州seo地址
  • 没有公司做网站犯法吗软文营销文章案例
  • 丽水做网站的公司西安网站优化
  • 南昌网站制作网站推广技巧和方法
  • 石家庄百度提升优化seo引擎搜索网站
  • 网站接入银联支付怎么做代运营一般收费
  • 网站建设前期准备工作微信群二维码推广平台
  • 无忧网站客源引流推广app
  • 免费做店招的网站it培训机构排名及学费
  • 网站转换移动网站专业的网站优化公司排名
  • 怎么做单位网站韶关seo
  • 微信端微网站怎么做网络营销公司网络推广
  • 做购物网站安全吗免费软文推广平台
  • 建设网站的合同微信推广软件哪个好
  • ui交互设计用什么软件沈阳百度推广优化
  • 效果好的锦州网站建设汽车宣传软文
  • 南昌建站费用seo优化常识
  • 哪个网站可以做pcb加工win10优化大师是官方的吗
  • 四川网站建设 招标免费的行情网站app软件