You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行roslaunch命令时出现RLException递归深度超限错误求助

问题排查:ROS Launch递归调用导致的RLException错误

问题现象

执行命令 roslaunch urs_wearable world.launch 时触发RLException错误,核心报错信息为:

maximum recursion depth exceeded while calling a Python object

完整报错日志:

awesometech@awesometech:~/catkin_ws$ roslaunch urs_wearable world.launch

... logging to /home/awesometech/.ros/log/165b93fc-9d30-11ed-967c-a99cf3fa13f4/roslaunch-awesometech-4851.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

RLException: while processing /home/awesometech/catkin_ws/src/URSSimEnvironments/urs_wearable/launch/world.launch:
while processing /home/awesometech/catkin_ws/src/URSSimEnvironments/urs_wearable/launch/world.launch:
..
Invalid tag: maximum recursion depth exceeded while calling a Python object.

Arg xml is
The traceback for the exception was written to the log file

问题根源

提供的world.launch代码中,文件自身通过<include>标签引用了自己,形成无限递归调用:

<?xml version="1.0"?>
<launch>
<include file="$(find urs_wearable)/launch/world.launch">
<arg name="world" value="$(find urs_wearable)/worlds/test.world" />
<arg name="reference_latitude" value="32.319939" />
<arg name="reference_longitude" value="-106.763657" />
</include>
</launch>

每次启动时,ROS解析该文件后会再次加载自身,循环往复直到超出Python递归深度限制,触发报错。

解决方案

  1. 打开/home/awesometech/catkin_ws/src/URSSimEnvironments/urs_wearable/launch/world.launch文件
  2. 删除内部的<include>标签,替换为实际需要启动的节点或正确的launch文件引用。

示例修改(以启动Gazebo世界并加载自定义参数为例):

<?xml version="1.0"?>
<launch>
  <!-- 定义可覆盖的默认参数 -->
  <arg name="world" default="$(find urs_wearable)/worlds/test.world" />
  <arg name="reference_latitude" default="32.319939" />
  <arg name="reference_longitude" default="-106.763657" />

  <!-- 引用Gazebo官方启动文件加载指定世界 -->
  <include file="$(find gazebo_ros)/launch/empty_world.launch">
    <arg name="world_name" value="$(arg world)" />
  </include>

  <!-- 可添加自定义节点,比如发布经纬度参考参数 -->
  <node name="gps_reference_pub" pkg="urs_wearable" type="gps_ref_node" output="screen">
    <param name="lat" value="$(arg reference_latitude)" />
    <param name="lon" value="$(arg reference_longitude)" />
  </node>
</launch>
  1. 保存修改后,重新执行roslaunch urs_wearable world.launch即可正常启动。

内容的提问来源于stack exchange,提问作者jun-gil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 13:20:32