新的电脑安装ubuntu16和18很容易出毛病,无线网卡不能用,驱动也装不成功。显卡驱动有问题,不能改变屏幕亮度和外接显示器等等问题。所以但是装新系统就不会有这些问题,因此ROS最好也用noetic,当然更新的是ROS2
安装ROS报错
Ubuntu 16.04 安装ROS kinetic报错Depends: ros-kinetic-desktop but it is not going to be installed
- 删除ros-latest.list
- 修改源:
vim /etc/apt/sources.list
,改为下面内容,也就是中科大的安装源:
1 | deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse |
结果未变,再运行sudo apt-get -f install
后安装了一个软件包,再安装ros-kinetic-desktop-full
正常了
Failed to connect to raw.githubusercontent.com port 443
终端中输入vim /etc/hosts
,加入185.199.110.133 raw.githubusercontent.com
,或者从raw.Githubusercontent.com中选一个IP
退出后重新执行
安装时找不到软件包
从报错的内容找到安装包的地址,直接下载,有时一个软件包还有其他依赖包,都要下载
GPG error, signature were invalid
根据官方的文档,重新设置秘钥sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
编译缺少 libvtkproj4
编译时报错: No rule to make target '/usr/lib/x86_64-linux-gnu/libvtkproj4-6.2.so.6.2.0'
解决方法: sudo ln -s /usr/lib/x86_64-linux-gnu/libvtkCommonCore-6.2.so /usr/lib/x86_64-linux-gnu/libvtkproj4-6.2.so.6.2.0
E: 无法定位软件包 ros-kinetic-map-server
在软件和更新的其他软件
里添加两项:1
2deb http://packages.ros.org/ros/ubuntu xenial main
deb http://packages.ros.org/ros-shadow-fixed/ubuntu xenial main
然后执行sudo apt-get update
,应该就能安装了。
在/etc/apt/sources.list
里添加也是同样效果,但两个地方不能都添加,否则update时会报错
without authentic
有时安装某个包出现下面情况,
在命令最后添加--allow-unauthenticated
即可
安装ROS包出现404 Not Found
1 | Err:1 http://packages.ros.org/ros/ubuntu <YOUR_UBUNTU_VERSION>/main amd64 <SOME_ROS_PKG> amd64 0.13.3-0xenial-20190320-132757-0800 |
运行sudo apt update
也无效,打开上面的网页后,发现安装包的版本是更新的,看来我们的安装没有更新。
最后发现在2019年夏天,ROS官方更改了安装的Key,也就是第一次安装ROS时设置的Key。需要换成新的Key,步骤如下:
sudo apt-key del 421C365BD9FF1F717815A3895523BAEEB01FA116 (Kinetic及以后的版本)
sudo -E apt-key adv —keyserver ‘hkp://keyserver.ubuntu.com:80’ —recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt clean
- sudo apt update
现在可以正常安装了,如果以后安装ROS,需要用这个新的Key,目前网上很多旧资料还是以前那个Key
参考:
apt update fails / cannot install pkgs
ROS报错“An error occurred during the signature verification”的解决办法
找不到***.deb
有时候我们解决了上面的问题,还是会出现下载ros包出现找不到的错误,这是因为ROS的包大部分都是在更新的,比如robot_state_publisher在2020年1月就更新了,如果没有apt-get update,是下载不到的
rqt_tf_tree 报警
执行rqt_tf_tree
出现报警:1
/opt/ros/melodic/lib/python2.7/dist-packages/rqt_tf_tree/dotcode_tf.py: 96: YAMLLoadWarning: calling yaml.load() without Loader=...is deprecated as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
不理会也无影响,如果要解决,在dotcode_tf.py
96行改为 yaml.load(input, Loader=yaml.FullLoader)
参考: yaml.load 问题
ImportError: No module named rospkg pyyaml
sudo pip3 install pyyaml
或者 sudo apt-get install python3-yaml
如果出现 Requirement already satisfied:
,尝试下面命令1
2
3
4sudo apt-get install python3-catkin-pkg
sudo apt-get install python3-rospkg
sudo apt-get install python3-rospkg-modules
sudo apt-get install python3-catkin-pkg-modules
如果还有问题,那就是python版本问题,而不是安装的问题了,使用python3一般能解决,不过要explicitly指定,所以执行1
sudo apt install python-is-python3
Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
在编译map_server
时出错,是缺少了库文件:1
2sudo apt-get install libsdl-image1.2-dev
sudo apt-get install libsdl-dev
缺少某个包
使用catkin_make
时,如果缺某个包,会提示缺*Config.cmake
文件,平时都会使用apt install
直接安装这个包,这并不是只添加了*Config.cmake
文件,而是有一系列文件,所以不能直接从其他电脑复制。