从 Java 开始时的 Gazebo 模型路径问题

Gazebo model path issue when starting from Java

我的团队目前正在 Java 开展一个涉及机器人模拟软件 Gazebo 的项目。要在特定世界启动 Gazebo,我们编写了一个 shell 脚本,我们希望使用 Java(或 ProcessBuilder)中的 Runtime.getRuntime().exec(...) 命令执行该脚本。

这是我们的问题:

如果我们从终端启动该脚本,一切都会完美运行,即您可以看到一个带有我们模型(塔)的世界:

但是,如果我们尝试从我们的 Java 应用程序中执行该脚本,它只会显示这一点(模型被识别但未可视化):

我们假设 Gazebo 没有找到 gazebo 模型路径,尽管它们在 ~/.bashrc 中定义。

有谁知道为什么它不起作用。我们知道你们中的大多数人可能不了解 Gazebo,但也许你们中的一些人已经处理过类似的问题。 提前致谢!

我找到了适合我们的解决方案:

我使用 ProcessBuilder 而不是 "Runtime.getRuntime().exec(...)" 命令。

ProcessBuilder builder = new ProcessBuilder();
builder.command(your_command);
builder.directory(new File(your_path));
Map<String, String> env = builder.environment();
env.put("GAZEBO_MODEL_PATH", variable_content);
Process process = builder.start();

现在,我们可以在此处设置 GAZEBO_MODEL_PATH,Gazebo 会正确加载所有世界