ROS2 launch时根据xacro生成urdf

news/2024/10/5 6:46:42/

ROS2 launch时根据xacro生成urdf

文章目录

  • 前言
  • 正文

前言

本文简单记录如何在ros2 launch时生成urdf并保存到目标目录。

正文

python">from launch.substitutions import Command, FindExecutable, PathJoinSubstitution
from launch_ros.substitutions import FindPackageSharedef generate_launch_description():# 使用'xacro'生成urdf文件,并的保存至"r6bot.urdf"robot_description_content = Command([PathJoinSubstitution([FindExecutable(name="xacro")])," ",PathJoinSubstitution([FindPackageShare("ros2_control_demo_description"),"r6bot","urdf","r6bot_description.urdf.xacro",])," -o ",PathJoinSubstitution([FindPackageShare("ros2_control_demo_example_7"),"urdf","r6bot.urdf",]),])robot_description = {"robot_description": robot_description_content}

解析:

Command()内部填写具体待执行程序;

PathJoinSubstitution([])拼接不同的路径到一起;

FindPackageShare("ros2_control_demo_description")寻找对应的ROS包的share路径(通常在CMakeLists.txt中定义install share);

在之前的博文中《一文学会MoveIt Setup Assistant搭建moveit2机械臂模型-CSDN博客》有写命令中-o参数的原因

对于xacro的使用说明可以参考官方文档《xacro — xacro 2.0.11 documentation (ros.org)》及《Using Xacro to clean up your code — ROS 2 Documentation: Humble documentation》


http://www.ppmy.cn/news/1534810.html

相关文章

建筑资质的未来发展趋势

🏗️建筑资质是建筑企业进入市场的通行证,它不仅关系到企业的竞争力,也影响着整个建筑行业的健康发展。随着政策的调整和技术的进步,建筑资质管理正面临着新的变革。 1. 资质管理的数字化转型:🌐 随着信息技…

SpringCloud入门(十二)全局过滤器和跨域

一、全局过滤器 全局过滤器的作用也是处理一切进入网关的请求和微服务响应,与GatewayFilter的作用一样。 区别在于GatewayFilter通过配置定义,处理逻辑是固定的,如果我们希望拦截请求,做自己的业务逻辑则没办法实现。而GlobalFilt…

【51单片机】点亮LED之经典流水灯

开发环境 开发板:普中51-单核-A2单片机:STC89C52RC(双列直插40引脚 DIP40)Keil uVision5 v9.61 最新版破解方法自行百度,相关文档和视频资料很多,我自己将这一操作记录下来当做博客发布,CSDN以…

springcloud 面试题

什么是微服务? 本文导图:SpringCloud 梳理-ProcessOn 分布式架构CAP理论 CAP定理是分布式系统中最基础的原则,所以理解和掌握了CAP对系统架构的设计至关重要。分布式架构下所有系统不可能同时满足以下三点:Consisteny&#xff08…

多模态—文字生成图片

DALL-E是一个用于文字生成图片的模型,这也是一个很好思路的模型。该模型的训练分为两个阶段: 第一阶段:图片经过编码器编码为图片向量,当然我们应该注意这个过程存在无损压缩(图片假设200*200,如果用one-h…

【Maven】依赖管理,Maven仓库,Maven核心功能

Maven 是一个项目管理工具,基于 POM(Project Object Model,项目对象模型)的概念,Maven 可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件 大白话:Maven 是一个项目管理工…

自动驾驶-轨迹拼接

自动驾驶在进行规划之前,要确定当前帧轨迹规划的起点,这个起点常被误认为是当前车辆的位置,即每次以车辆的当前位置进行轨迹规划;其实不是这样的,直观上,这会导致本次次规划的轨迹同上次规划的轨迹之间是不…

Linux应用——简易日志

1. 日志要求 对于一个日志来说,我们任认为其应该具有以下的内容 1. 日志时间 2. 日志等级 3. 日志内容 4. 文件名称与行号 在此基础上我们对不同的日志做出分级,即 info: 常规信息 warning: 报警信号 error: 严重信号,可能需要立…