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

农产品网站开发定制v软件免费下载

农产品网站开发,定制v软件免费下载,x网站免费模板,数据库网页制作教程目录 0 专栏介绍1 ROS2路径平滑器介绍2 平滑器插件编写模板2.1 构造平滑器插件类2.2 注册并导出插件2.3 编译与使用插件 3 基于B样条曲线的路径平滑 0 专栏介绍 本专栏旨在通过对ROS2的系统学习#xff0c;掌握ROS2底层基本分布式原理#xff0c;并具有机器人建模和应用ROS2… 目录 0 专栏介绍1 ROS2路径平滑器介绍2 平滑器插件编写模板2.1 构造平滑器插件类2.2 注册并导出插件2.3 编译与使用插件 3 基于B样条曲线的路径平滑 0 专栏介绍 本专栏旨在通过对ROS2的系统学习掌握ROS2底层基本分布式原理并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。 详情《ROS2从入门到精通》 1 ROS2路径平滑器介绍 路径平滑器(smoother)是Nav2中的一个任务服务器它实现了nav2_behavior_tree::SmoothPath接口主要负责改善路径的平滑度或质量Nav2中默认的平滑器包括 名称作者介绍Simple SmootherSteve Macenski为不可行的2D规划器提供更平滑的简单路径Constrained SmootherMatej Vargovcik与Steve Macenski使用约束问题求解器优化各种标准如平滑度或与障碍物的距离的路径平滑器保持最小转弯半径Savitzky-Golay SmootherSteve Macenski使用Savitzky-Golay滤波器通过数字信号处理平滑路径以去除路径中的噪声。 本文介绍路径平滑器插件的编写范式并提供一个全新的基于B样条曲线平滑的插件 2 平滑器插件编写模板 2.1 构造平滑器插件类 所有路径平滑插件的基类是nav2_core::Smoother该基类提供了7个纯虚方法来实现控制器插件一个合法的平滑器插件必须覆盖这7个基本方法 configure()在平滑器服务器进入on_configure状态时会调用此方法此方法执行ROS2参数声明和平滑器成员变量的初始化activate()在平滑器服务器进入on_activate状态时会调用此方法此方法实现平滑器进入活动状态前的必要操作deactivate()在平滑器服务器进入on_deactivate状态时会调用此方法此方法实现平滑器进入非活动状态前的必要操作cleanup()在平滑器服务器进入on_cleanup状态时会调用此方法此方法清理为平滑器创建的各种资源smooth()接受一个原始路径并提供具体的平滑实现 按照上述标准本文案例中B样条平滑器的基本成员函数和变量如下所示 namespace nav2_smoother {class BSplineSmoother : public nav2_core::Smoother{public:/*** brief A constructor for nav2_smoother::BSplineSmoother*/BSplineSmoother() default;/*** brief A destructor for nav2_smoother::BSplineSmoother*/~BSplineSmoother() override default;void configure(const rclcpp_lifecycle::LifecycleNode::WeakPtr ,std::string name, std::shared_ptrtf2_ros::Buffer,std::shared_ptrnav2_costmap_2d::CostmapSubscriber,std::shared_ptrnav2_costmap_2d::FootprintSubscriber) override;void cleanup() override { costmap_sub_.reset(); }void activate() override { RCLCPP_WARN(logger_, Using: B-spline smoother); }void deactivate() override {}/*** brief Method to smooth given path** param path In-out path to be smoothed* param max_time Maximum duration smoothing should take* return If smoothing was completed (true) or interrupted by time limit (false)*/bool smooth(nav_msgs::msg::Path path,const rclcpp::Duration max_time) override;std::shared_ptrtrajectory_generation::BSpline bspline_gen_;std::shared_ptrnav2_costmap_2d::CostmapSubscriber costmap_sub_;rclcpp::Logger logger_{rclcpp::get_logger(BSplineSmoother)};}; } 2.2 注册并导出插件 在创建了自定义平滑器的前提下需要导出该平滑器插件以便平滑器服务器可以在运行时正确地加载。在ROS2中插件的导出和加载由pluginlib处理。 源文件配置导出宏 #include pluginlib/class_list_macros.hpp PLUGINLIB_EXPORT_CLASS(nav2_smoother::BSplineSmoother, nav2_core::Smoother)配置插件描述文件xxx_smoother.xml例如本案例为bspline_smoother.xml文件。此XML文件包含以下信息 library path插件库名称及其位置class name平滑算法类的名称class type平滑算法类的类型base class平滑基类的名称统一为nav2_core::Smootherdescription插件的描述。 实例如下 class_librarieslibrary pathbspline_smootherclass typenav2_smoother::BSplineSmoother namebspline_smoother/BSplineSmoother base_class_typenav2_core::SmootherdescriptionB-Spline smoother/description/class/library /class_libraries配置CMakeLists.txt文件 使用cmake函数pluginlib_export_plugin_description_file()来导出插件。这个函数会将插件描述文件安装到install/share目录中并设置ament索引以使其可被发现实例如下 pluginlib_export_plugin_description_file(nav2_core bspline_smoother.xml)配置package.xml描述文件实例如下 exportbuild_typeament_cmake/build_typenav2_core plugin${prefix}/bspline_smoother.xml / /export2.3 编译与使用插件 编译该插件软件包接着通过配置文件使用插件。 参数的传递链如下首先在simulation.launch.py中引用配置文件navigation.yaml declare_params_file_cmd DeclareLaunchArgument(params_file,default_valueos.path.join(simulation_dir, config, navigation.yaml),descriptionFull path to the ROS2 parameters file to use for all launched nodes)接着在navigation.yaml中修改插件配置默认如下用的是SimpleSmoother插件 smoother_server:ros__parameters:use_sim_time: Truesmoother_plugins: [simple_smoother]simple_smoother:plugin: nav2_smoother::SimpleSmoothertolerance: 1.0e-10max_its: 1000do_refinement: True将上述替换为自己的插件本案例为 smoother_server:ros__parameters:use_sim_time: Truesmoother_plugins: [simple_smoother]simple_smoother:plugin: bspline_smoother/BSplineSmoother接着运行即可看到平滑算法被替换 3 基于B样条曲线的路径平滑 B样条曲线是一种用于表示和描绘曲线的数学工具它在计算机图形学、计算机辅助设计、计算机动画和数值分析等领域得到广泛应用。其名称中的B代表了基本(basis)而样条则是在各个领域中广泛应用的一种绘制曲线的技术例如计算机图形学、物理学模拟、金融和经济分析等。在计算机图形学中样条通常用于创建平滑的曲线和曲面以便在三维场景中呈现出更真实的效果。在物理学模拟中样条可用于描述物体的运动轨迹和变形过程。 具体算法原理请参考 曲线生成 | 图解B样条曲线生成原理(基本概念与节点生成算法)曲线生成 | 图解B样条曲线生成原理(附ROS C/Python/Matlab仿真) 平滑器的效果如下所示其中红色是原始A*算法的规划路径绿色是B样条曲线平滑后的路径 完整代码通过下方博主名片联系获取 更多精彩专栏 《ROS从入门到精通》《Pytorch深度学习实战》《机器学习强基计划》《运动规划实战精讲》… 源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系
http://www.tj-hxxt.cn/news/137638.html

相关文章:

  • 网站无法导入照片上海万户网络科技
  • 专注高密做网站哪家强h5在线设计平台
  • 德国网站的后缀名企业网站推广 知乎
  • 做新房什么网站好做电影网站前途
  • 坪地网站建设教程西安网站建设案例
  • 淘宝有WordPress网站搭建吗海口制作网站公司
  • 荆门建网站费用潍坊地区制作网站
  • 河南省建设工程造价协会网站教资注册网址
  • 行业网站开发运营方案百度地图手机网站代码
  • 可以做网站的公司wordpress调用个人中心
  • 南召微网站建设写代码建商城网站时间
  • 淘宝做链接有哪些网站可以做装修公司网站模板下载
  • 预登记网站开发 会议金寨县建设局网站
  • 常德网络建站wordpress发布外网访问
  • 万网网站后台登陆网页界面设计的原则有哪些
  • 淘客导购网站怎么做做棋牌网站建设哪家便宜
  • 找外国女朋友的网站建设上杭网页制作
  • 专业网络建站公司太原市城市建设规划局官方网站
  • 网站建设模板软件企业网站策划实训
  • 做个兼职网站设计手机兼职软件推荐app
  • 如何在本地发布自己做的网站对于网站运营应该如何做
  • 重庆营销网站制作徐州网站建设模板
  • 聊城做手机网站福州商城网站开发公司
  • 做网站首页布局设计注意事项眉山建设局网站
  • 简单手机网站模板四川建设招标网站首页
  • 企业网站的建设目的有什么网站制作怎么做语音搜索框
  • 网站建设费用估计Wordpress pay plugin
  • 实用网站开发怎样才能做好销售
  • 网站改版 升级的目的是什么沧州南皮手机网站建设
  • 河北seo网站设计网约车后台平台网站建设