如何从Matlab启动RVIZ ?

9次浏览(过去30天)
Andreas Schwager
Andreas Schwager 2021年7月26日
回答: 凸轮扎尔茨贝格 2021年7月27日
你好,
我想从Matlab启动RVIZ。RVIZ运行在一个独立的窗口中,并将使用系统命令启动。
下面这行代码运行在Linux shell上:
rvizrviz - d runMyRvizLaunchFile.rviz
它将打开RVIZ并按照预期可视化主题。
在Matlab中
(地位、cmdout) =系统('rviz rviz -d runmyvizlaunchfile .rviz');
disp ([“cmdout:”cmdout (1: end-1)的状态:num2str(状态)])
在Matlab shell上的输出为:
cmdout:执行“runMyRvizLaunchFile.rviz”myPC
rviz: /usr/local/MATLAB/R2021a/bin/glnxa64/libQt5Widgets.so。5:没有版本可获得的信息(rviz要求)
rviz: /usr/local/MATLAB/R2021a/bin/glnxa64/libQt5Core.so。5:没有版本可获得的信息(rviz要求)
rviz: /usr/local/MATLAB/R2021a/bin/glnxa64/libQt5Gui.so。5:没有版本可用信息(需要/opt/ros/melodic/lib/librviz.so)
rviz: /usr/local/MATLAB/R2021a/bin/glnxa64/libQt5Core.so。5:没有版本可用信息(需要/opt/ros/melodic/lib/librviz.so)
rviz: /usr/local/MATLAB/R2021a/bin/glnxa64/libQt5Core.so。5:没有版本可用信息(需要/opt/ros/melodic/lib/librviz.so)
rviz: /usr/local/MATLAB/R2021a/bin/glnxa64/libQt5Widgets.so。5:没有版本可用信息(需要/opt/ros/melodic/lib/librviz.so)
rviz: /usr/local/MATLAB/R2021a/bin/glnxa64/libcurl.so。4:版本CURL_OPENSSL_4不/opt/ros/melodic/lib/ libresource_retriver .so
rviz: /usr/local/MATLAB/R2021a/bin/glnxa64/libtiff.so。5:没有版本可用信息(需要/usr/lib/x86_64-linux-gnu/libfreeimage.so.3)
runMyRvizLaunchFile。rviz执行状态:0
如何从Matlab触发一个RVIZ的启动脚本?
谢谢你的帮助!

接受的答案

凸轮扎尔茨贝格
凸轮扎尔茨贝格 2021年7月27日
你好安德烈亚斯,
我怀疑这里发生的是库路径冲突。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
凸轮

更多的答案(0)

s manbetx 845


释放

R2021a

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!