Unable to parse component [${-(wheel_radius+wheel_zoff)}] to a double (while parsing a vector value)

在NAV2中,编辑URDF文件后,进行运行,提示:

Unable to parse component [${-(wheel_radius+wheel_zoff)}] to a double (while parsing a vector value)

是由于URDF文件使用了宏,而在加载时没有指定使用宏的定义。

老代码(报错的代码):

urdf = os.path.join(gps_wpf_dir, 'urdf', 'scout_mini_algo.urdf')
with open(urdf, 'r') as infp:
   robot_description = infp.read()
launch_ros.actions.Node(
        package='robot_state_publisher',
        executable='robot_state_publisher',
        name='robot_state_publisher',
        output='both',
        parameters=[{'robot_description': robot_description}]
        ),

改为新代码:

urdf = os.path.join(gps_wpf_dir, 'urdf', 'scout_mini_algo.urdf')
launch.actions.DeclareLaunchArgument(name='robotmodel', default_value=urdf,
                                        description='Absolute path to robot urdf file'),
launch_ros.actions.Node(
            package='robot_state_publisher',
            executable='robot_state_publisher',
            parameters=[{'robot_description': Command(['xacro ', LaunchConfiguration('robotmodel')])}]
        ),

新代码其中的:Command(['xacro ',导入即可正常解析宏定义。

注意,使用Command/LaunchConfiguration,需要的导入对应的python包,代码如下:

from launch.substitutions import Command, LaunchConfiguration

欢迎加入多源融合定位与控制技术讨论QQ群,群号:518859469

来自:上海代数律动技术有限公司

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值