Comment on page
This can happen in Ubuntu 16 and under VMware environment.
example error messages:
vmw_ioctl_command error Invalid argument
gzserver: /build/ogre-1.9-mqY1wq/ogre-1.9-1.9.0+dfsg1/OgreMain/src/OgreRenderSystem.cpp:546: virtual void Ogre::RenderSystem::setDepthBufferFor(Ogre::RenderTarget*): Assertion `bAttached && "A new DepthBuffer for a RenderTarget was created, but after creation" "it says it's incompatible with that RT"' failed.
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install gazebo7 -y
If this cannot solve the problem, run the following command to disable OpenGL 3.0 (and use OpenGL 2.1 instead), or disable "Accelerate 3D Graphics" in VM display settings. In addition, increasing the amount of graphics memory to 2GB (in VM display settings) may also help.
echo "export SVGA_VGPU10=0" >> ~/.bashrc
This is a known issue when running Gazebo in Ubuntu 18, which can cause the model spawn service to fail. The error message is the following.
[Err] [REST.cc:205] Error in REST request
Solution: open the file
gedit ~/.ignition/fuel/config.yamland replace the url inside from
- If you have an USB drive with 32GB or less flash memory, it is high likely using FAT32 file system by default. One salient drawback of this file system is that the maximum file size is 4GB. If you have a 5GB ROS bag (logging data) locally on the robot, you cannot copy it to this USB drive.
- The good news is you can format this flash drive into exFAT file system, which can support much larger size for a single file. However, this file system is not natively supported by Ubuntu 16.04. The solution is to install the following packages.
sudo apt update
sudo apt install exfat-fuse exfat-utils
This happens to Ubuntu 18 (and above probably) Linux OS. The shutdown process is not clean and the user has to wait 1min 30s for the shutdown process to complete. By playing with
journalctl, I was able to identify the daemon process is Xwayland.
The observed behavior is prevented if Xorg instead of Wayland is used for the login screen in gdm3. Therefore, edit section
# Uncomment the line below to force the login screen to use Xorg
This can happen on an Intel NUC computer when trying to split the window vertically in
gsettings set org.freedesktop.ibus.panel.emoji hotkey "@as "
sudo /usr/bin/python -m pip install pylint, the error message is
Complete output from command python setup.py egg_info:
Error: typed_ast only runs on Python 3.3 and above.
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-hZvW3z/typed-ast/
pip install --upgrade setuptools
When using RoboWare, we sometimes see the prompt message to remind us of installing
pylint. If click the install button, the command run by itself would be
sudo /usr/bin/python -m pip install pylint. This will install
pip. Then you may see the other error message
ERROR: Cannot uninstall 'enum34'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
This is because the package
enum34is managed by
pip. If you then try to uninstall
enum34in pip, you will see that many (103 on my computer) ROS packages will be removed at the same time, because these ROS Kinetic packages depend on this specific version of
aptwill automatically manage these dependencies for you. So we cannot just simply uninstall or upgrade this package.
Given the fact that we cannot modify
enum34, how could we solve this problem? The solution could be a "detour" plan. That is to install
pipwas run automatically by RoboWare.
To search which package to install:
apt search pylint. Then we can see three possible options:
python3-pylint-common. The first one is good enough. Then just run
sudo apt install pylint. Done!
Finally, check if this package was installed successfully by
pip list | grep pylint.
AttributeError: type object 'numpy.ndarray' has no attribute '__array_function__'
It is high likely that you are running a wrong version python other than required. Check your environment by
env | grep python
env | grep PATH
env | grep PWD
pip list | grep cflib
pip show cflib
pip3 show cflib
For example: in
which pipmay return
This problem is due to the residual files of
1.15.4, which should be clearly uninstalled before installing the
Showing solution in code,
pip3 uninstall numpy
pip3 install numpy==1.15.4
would solve this issue.
Also, continuing to execute the following two lines would upgrade
cfclientwould still work.
pip3 uninstall numpy
pip3 install numpy
By exploring files in
~/.localdirectory, we can see that when this issue happens, there is always a
numpy-1.15.4.dist-infodirectory in position
~/.local/lib/python3.5/site-packages, no matter how you uninstall and reinstall numpy. However, after reverting to numpy of version
1.15.4and uninstalling it, this directory goes away, and only the
numpy-1.16.0.dist-infodirectory left there.
Traceback (most recent call last):
File "./ucr_demo.py", line 72, in <module>
cfs[i].goTo(goal=C[i], yaw=0, duration=3.0)
File "/home/arcslab/catkin_ws/src/crazyflie_mrs/scripts/crazyflie.py", line 94, in goTo
self.goToService(groupMask, relative, gp, yaw, rospy.Duration.from_sec(duration))
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 435, in __call__
return self.call(*args, **kwds)
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 515, in call
responses = transport.receive_once()
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_base.py", line 727, in receive_once
p.read_messages(b, msg_queue, sock)
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 353, in read_messages
File "/opt/ros/kinetic/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", line 336, in _read_ok_byte
raise ServiceException("service [%s] responded with an error: %s"%(self.resolved_name, str))
rospy.service.ServiceException: service [/cf4/go_to] responded with an error: timeout
I am trying to do a five robot demo with crazyflies, but some of them failed and dropped to the ground. Then I powered off those failed robots and this error emerged. This is because the server cannot communicate with those powered off robots. This error then terminated the script and I lost control of all my robots.
- 1.Connect to a joystick and set up an emergency button, so than you will still have control of your robots when bad things happen.
- 2.Instead of solution (1), we can also directly send through command line
rosservice call /cf1/emergencyto shut down the robot. Also, it is doable to have a keyboard interface that sends takeoff, land, emergency, etc.
- 3.Use a "try-except" structure in the Python script to handle (actually pass) these errors. Such that when error appears, the script can still continue running the remaining part.
Failed to load nodelet [/camera/register_depth_rgb] of type [depth_image_proc/register] even after refreshing the cache: Failed to load library /opt/ros/kinetic/lib//libdepth_image_proc.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = libopencv_core3.so.3.3: cannot open shared object file: No such file or directory)
This is due to the mismatched path or name in ROS packages. The solution is to upgrade all packages to the latest. This can be solved by
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade