[rviz-3] process has died issue
I am running Raspbian Stretch and ROS Kinetic on a Rpi 3B+.
I am using a RPLidar A1M8.
I have successfully built the ROS Desktop option, but I am getting the following message when using the roslaunch rplidar_ros view_rplidar.launch command string"
QXcbConnection: Could not connect to display
[rviz-3] process has died [pid 7994, exit code -6, cmd /opt/ros/kinetic/lib/rviz/rviz -d /home/pi/rplidar_ws/src/rviz/rplidar.rviz __name:=rviz __log:=/home/pi/.ros/log/bf3bc964-d237-11e9-a538-b827ebcb393e/rviz-3.log].
log file: /home/pi/.ros/log/bf3bc964-d237-11e9-a538-b827ebcb393e/rviz-3*.log
Viewing the RPLidar output using the Test application commands works fine:
roslaunch rplidar_ros rplidar.launch
rosrun rplidar_ros rplidarNodeClient
Since I am new to ROS programming, can anyone tell me why I am getting the error with the rplidar.rviz function?
Regards, TCIII
I don't believe this has anything to do with ROS per se: RViz is a visual program (ie: has a GUI). RPis are typically used without a display attached, nor with an X-server installed.
Do you have a display configured?
Note: https://answers.ros.org/question/2496...
I setup tightvncserver on my Rpi and installed VNC Viewer. When I launch roslaunch rplidar_ros view_rplidar.launch from the Rpi Desktop on the VNC Viewer I am still getting a similar error.
Also when I tried "rosdep install rviz" to satisfy system dependencies as a test, I received this message:
ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: rviz: No definition of [yaml-cpp] for OS version
So it is obvious that rviz is missing the yaml-cpp dependency for the Raspbian Stretch build?
does such a setup support (software) OpenGL? If not: that would be a problem.
I am confused: how can you already be testing RViz, if you don't have it installed?
According to the Kinect ROS installation instructions for Raspbian, the ROS full Desktop install includes rviz, therefore it is a mystery to me as to why there are rviz dependencies missing.
rosdep
checks whether a package (a.deb
package in your case) is installed that maps to theyaml-cpp
key. But if you already haveyaml-cpp
installed (say bysudo make install
)rosdep
will not recognise it, but a build will be successful.The fact that
rosdep install ..
can't resolve a dependency on your particular OS doesn't mean that the dependency is actually missing. Just thatrosdep
can't translate it into a package name for your OS.If you can start RViz such that it can crash, you have all required dependencies installed (otherwise you wouldn't have been able to build it in the first place).