基于虚拟机+Ubuntu1604的ROS-kinetic配置流程

简单记录一下配置的过程

先换源,以阿里源为例

备份原有源
sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
编辑源文件
sudo gedit /etc/apt/sources.list
将文件内容全部删除 替换成
deb http://mirrors.aliyun.com/ubuntu/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main

deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main

deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe

deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe

apt二连

sudo apt-get update
sudo apt-get upgrade

设置“软件和更新”

sudo update-manager -c -d

如果要升级就升级,升级完后点左下角的设置就可以进到界面了,前四个勾选上,第五个可选

添加中科大ROS源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

设置秘钥

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

更新软件源并安装ROS

sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full

初始化rosdep

sudo rosdep init
rosdep update

设置环境变量(可选)

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

如果不设置则需要每次在包的路径下使用

source setup.bash

安装一些常用工具

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential python-rosdep ninja-build

此时可以测试下例程了,方法见前篇ROSOnWindows,编译方法和Windows下相同,不再赘述

 

如果要编译,那么还会遇到非常多问题,主要是没有安装上对应的包,这点ROSOnWindows我觉得做的就好很多,这里列出常见的包,其他可以通过百度对应问题来解决

(这里非常建议直接装二进制包,如果不是需要修改该包,就不要将编译包作为源码引入新包,这样“可能”会产生很大的依赖问题)

 

sudo aptitude install libsdl1.2-dev
  
sudo apt-get install libbullet-dev libsdl-image1.2-dev libasound2-dev
  
sudo apt-get install ros-kinetic-bfl ros-kinetic-arbotix ros-kinetic-gazebo-ros-control ros-kinetic-gmapping

sudo apt-get install ros-kinetic-move-base-msgs ros-kinetic-moveit ros-kinetic-manipulation-msgs ros-kinetic-rplidar-ros

sudo apt-get install ros-kinetic-vision-opencv libopencv-dev python-opencv ros-kinetic-map-server

 

后续缺少相应包的时候也可以用这个方式尝试,package 替换为对应的包名字

sudo apt-get install package

如果遇到了这个报错,那么是内存不足,提高虚拟机的内存即可,如果内存有上限,则开启虚拟内存

c++internalcompiler error:killed(program cc1plus)

 如果Gazebo黑屏,那是因为没有加载完模型,可以先把所有模型下载好,笔者下载全部模型用了近一个小时

cd ~/.gazebo/
mkdir -p models
cd ~/.gazebo/models/
wget http://file.ncnynl.com/ros/gazebo_models.txt
wget -i gazebo_models.txt
ls model.tar.g* | xargs -n1 tar xzvf

如果报错“ vmw_ ioctl_command error Invalid argument ”,则关闭虚拟机,然后在设置里面关闭“加速3D图形”即可

 如果遇到执行python脚本时显示“ can't locate node [xxxx] in package [yyyy] ”,假设程序是完整的并且没有问题的(如跑例程),那么就是没有给py权限,勾选上“ Execute

 

 

 

 感谢以下Geeks

Ubuntu install of ROS Kinetic
http://wiki.ros.org/kinetic/Installation/Ubuntu
ROS学习过程中问题
https://blog.csdn.net/t972409256/article/details/82661633
ubuntu系统下ros系统问题的解决方法示例
https://blog.csdn.net/Groot_Lee/article/details/79202507
虚拟机运行Gazebo问题修复
http://blog.exbot.net/archives/3035
用Python实现ROS节点
https://blog.csdn.net/u013832707/article/details/53980759

 

posted @ 2019-04-13 23:14  Pyrokine  阅读(716)  评论(0编辑  收藏  举报