你好安德烈亚斯,
我怀疑这里发生的是库路径冲突。ROS Toolbox提供了ROS库,这些库可能与rviz使用的库重叠。当您启动MATLAB时,MATLAB中的环境被设置为在环境路径上具有MATLAB的库。如果您将MATLAB内部的环境变量与标准终端的环境变量进行比较,您可以看到差异。
我通常建议从MATLAB外部启动rviz。如果您的工作流需要从MATLAB内部启动,您可以将相关的环境变量临时设置为从MATLAB外部复制的硬编码值,然后调用系统命令启动rviz,然后将环境变量重置为它们的原始值。我首先要看的变量是PATH和LD_LIBRARY_PATH,尽管可能有其他的。
是这样的:
准备将环境重置为MATLAB的当前值
inMATLABPath = getenv (“路径”);
inMATLABLDPath = getenv (“LD_LIBRARY_PATH”);
= onCleanup(@() setenv()“路径”inMATLABPath));
= onCleanup(@() setenv()“LD_LIBRARY_PATH”inMATLABLDPath));
设置环境匹配以外的MATLAB
setenv (“路径”outsideMATLABPath)
setenv (“LD_LIBRARY_PATH”outsideMATLABLDPath)
%开始rviz
(地位、cmdout) =系统('rviz rviz -d runmyvizlaunchfile .rviz');
%将环境设置为默认值
清晰的cleanPath cleanLDPath
凸轮