ROS学习笔记-多机器人通信(4)-远程打开rviz

上篇:

ROS学习笔记-多机器人通信(1)-实现两台机器通信
ROS学习笔记-多机器人通信(2)-从机改回主机
ROS学习笔记-多机器人通信(3)报错(ssh: connect to host hostname port 22: No route to host)解决后远程访问终于实现。

一、报错

远程打开不了rviz窗口出现报错: QXcbConnection:Could not connect to display
之前登录ssh的方式都是所示 hostname@hostname 或是hostname@hostname的ip,这种方式远程登录没问题,但无法显示图像界面,比如在终端输入打开rviz的命令时,都失败了,并报错。
在这里插入图片描述

二、解决办法

2.1可在命令后面添加参数 -X(注意X大写),即

如果需要调用图形界面程序可以使用 -X 选项

ssh hostname@ip -X

或是

ssh hostname@hostname -X

2.2添加环境变量

export QT_QPA_PLATFORM='offscreen'

三、运行rviz:

1.先在一个终端中打开ROS master,不然提示联系不上。

roscore

在这里插入图片描述
2.在另一个终端中输入:

rosrun rviz rviz

成功打开rviz显示窗口。
在这里插入图片描述

在这里插入图片描述

四、打开键盘控制节点报错以及解决方法

4.1报错内容

在使用Spark一键启动的时候,在运行整个封装好的启动文件时,发生如下的报错,根据报错的内容可知是键盘控制节点出现了问题。
只显示了RVIZ界面,但是键盘控制界面却没有出现。
在这里插入图片描述

4.2报错解决

因此,只需要打开键盘控制节点即可控制Spark机器人的运动。
根据报错提示,寻着路径可知keyboard_control.sh文件出现了问题。
打开该文件后,可知运行键盘控制节点的命令是:

rosrun spark_teleop spark_teleop_node 0.14 0.5

因此,可以考虑单独启动该节点。在台式机上远程访问Spark后,终端输入该命令。
在这里插入图片描述
出现了如下的报错,根据报错可知,无法联系上ROS Master,因此只需要打开ROS Master即可。
在这里插入图片描述
问题解决:
在台式机上的终端
1.打开ROS Master

roscore

2.在打开键盘启动节点

rosrun spark_teleop spark_teleop_node 0.14 0.5

如下图所示,说明成功打开了键盘控制器。
在这里插入图片描述

五、控制Spark运动

5.1终端依次输入

cd spark
./onekey

5.2选择控制机器人运行

在键盘控制界面控制运行即可。
在这里插入图片描述
本次以采用基于深度相机的rtabmap算法建图为例,建完地图后保存,输入以下命令:

rosrun map_server map_saver -f 2 #2为地图名称,随意取。

在这里插入图片描述

整个过程已录制视频,有兴趣的朋友可以下载,地址:台式机控制Spark机器人建图的视频.mp4

reference

感谢以下参考博客的分享
1.(九)ROS安装rviz模拟器
2.用ssh远程linux服务器无法打开图形界面的解决方法


版权声明:本文为weixin_51244852原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。