henry2423 / docker-ros-vnc Goto Github PK
View Code? Open in Web Editor NEWA docker environment with ROS, Gazebo, Xfce4 VNC Desktop and Tensorflow
License: Apache License 2.0
A docker environment with ROS, Gazebo, Xfce4 VNC Desktop and Tensorflow
License: Apache License 2.0
When using any apt
command, it mostly fails due to a GPG mismatch
. The issue is that the ROS feeds (which are added) changed the GPG key. See https://discourse.ros.org/t/new-gpg-keys-deployed-for-packages-ros-org/9454 for details.
The fix I currently do is call the following:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt-key del 421C365BD9FF1F717815A3895523BAEEB01FA116
Would be great to have the correct GPG key already in the base image.
After I run the container using docker run -d -p 5901:5901 -p 6901:6901 henry2423/ros-vnc-ubuntu:kinetic
, I can access the vnc interface through my browser.
Now I have a sample project rrbot https://github.com/ros-simulation/gazebo_ros_demos.
I can only start the gazebo when I run the roslaunch
command from browser.
But if I run the roslaunch command using docker exec -t c32f456bba2c bash -c "roslaunch rrbot_gazebo rrbot_world.launch"
, it starts the node but doesn't spin up gazebo in the vnc desktop. It gets stuck here
started core service [/rosout]
process[gazebo-2]: started with pid [176]
[ INFO] [1600019161.652547400]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1600019161.653956700]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
process[gazebo_gui-3]: started with pid [196]
[ INFO] [1600019162.131817800]: Finished loading Gazebo ROS API Plugin.
[ INFO] [1600019162.132983500]: waitForService: Service [/gazebo/set_physics_properties] has not been advertised, waiting...
gazeb: cannot connect to X server
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::lock_error> >'
terminate called recursively
what(): boost: mutex lock failed in pthread_mutex_lock: Invalid argument
Aborted
process[urdf_spawner-4]: started with pid [278]
[gazebo_gui-3] process has died [pid 196, exit code 134, cmd /opt/ros/kinetic/lib/gazebo_ros/gzclient __name:=gazebo_gui __log:=/home/ubuntu/.ros/log/fbc04204-f5e8-11ea-b56f-0242ac110002/gazebo_gui-3.log].
log file: /home/ubuntu/.ros/log/fbc04204-f5e8-11ea-b56f-0242ac110002/gazebo_gui-3*.log
SpawnModel script started
[INFO] [1600019162.889144, 0.000000]: Loading model XML from ros parameter
[INFO] [1600019162.892796, 0.000000]: Waiting for service /gazebo/spawn_urdf_model
Can you please help?
@henry2423 ,
How to copy & paste between container and host?
After connecting docker container via vnc over browser or vnc viewer on M1 MacBook , gazebo or Rviz doesn't work on container but it works on Linux OS. I think that it should be related with X11 forwarding. The rest work like roscore only gui needed programs don't work.
Rviz Error
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ros'
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-ros'
[ INFO] [1640298158.681437429]: rviz version 1.13.1
[ INFO] [1640298158.683854846]: compiled against Qt version 5.9.5
[ INFO] [1640298158.683982096]: compiled against OGRE version 1.9.0 (Ghadamon)
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
qemu:handle_cpu_signal received signal outside vCPU context @ pc=0x31e1f6
Aborted
Gazebo Error
Operation not permitted (src/thread.cpp:231)
Operation not permitted (src/thread.cpp:231)
qemu: uncaught target signal 6 (Aborted) - core dumped
The container isn't able to run Catkin. It seems like you must have it in the build. Suggestions?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.