<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ros系统升级，如何从jade升级到kinetic]]></title><description><![CDATA[<p dir="auto">现在(2017年一月)大部分人使用的ROS都是基于ubuntu 14.04 的 jade 版本。新的基于16.04的 kinetic版本已经发布了很长时间了，新的系统也比较稳定了。</p>
<p dir="auto">这篇文章就是介绍如何从jade系统安全的系统升级到kinetic系统。<br />
在升级之前首先要说明一下jade系统和kinetic系统之间的主要区别。我所感受到的主要有两点。</p>
<ol>
<li>Ubuntu 14.04和Ubuntu 16.04之间的区别。16.04相对于14.04主要的改动在于系统启动管理程序的替换。由原来的upstart替换成systemd。所以原有的启动管理配置文件都要进行修改移植之后才能使用。修改起来也是比较简单的，可以google一下相关的文档。</li>
<li>默认使用OpenCV 3<br />
新的ROS系统默认使用OpenCV 3，如果你的原有的程序依赖于OpenCV 2，建议你还是替换到OpenCV 3。否则OpenCV之间的版本配置可能是一个问题。3相对于2，虽然说并不是完全兼容，但是但部分都是可以不用修改直接移植的。而且3默认开启了GPU加速，性能上相对2也有很大的提升。我用ORB_SLAM2程序做了测试，可以在不修改源代码的情况下直接移植到3。</li>
</ol>
<p dir="auto">下面就开始正式升级系统了</p>
<h4>移除第三方软件源</h4>
<p dir="auto">打开软件包管理器<br />
<img src="/uploads/files/1484651581605-screenshot-from-2017-01-17-19-11-54.png" alt="0_1484651545224_Screenshot from 2017-01-17 19-11-54.png" class=" img-responsive img-markdown" /><br />
把这里面的所有第三方的软件源都移除掉<br />
<img src="/uploads/files/1484651625996-screenshot-from-2017-01-17-19-12-39-resized.png" alt="0_1484651584376_Screenshot from 2017-01-17 19-12-39.png" class=" img-responsive img-markdown" /></p>
<h4>移除jade软件包</h4>
<p dir="auto">在终端输入</p>
<pre><code>sudo apt-get remove ros-jade*
</code></pre>
<p dir="auto">等待删除完成</p>
<h4>启动系统更新</h4>
<p dir="auto">在终端输入</p>
<pre><code>sudo update-manager -d
</code></pre>
<p dir="auto">在弹出的窗口中确认升级</p>
<p dir="auto">然后等待升级完成，这个过程可能会很久<br />
在升级过程中可能会询问你是否保留一些配置文件，一般默认选保留就可以，否则还要重新写配置文件，比较麻烦。</p>
<h4>恢复第三方软件源</h4>
<p dir="auto">在之前的软件包管理窗口中点击对应的软件源就可以了，注意一定要恢复ROS的源</p>
<h4>安装kinetic</h4>
<p dir="auto">在终端输入</p>
<pre><code>sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" &gt; /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full
</code></pre>
<p dir="auto">等待安装完成</p>
<h4>ROS的初始化</h4>
<ol>
<li>修改环境变量<br />
如果你原先在bash的启动配置里面添加了jade的环境变量，就需要把对应的环境变量改成kinetic的。比如下面是我的<code>.bashrc</code>文件</li>
</ol>
<pre><code>source /opt/ros/kinetic/setup.bash
source /home/randoms/Documents/ros/workspace/devel/setup.sh
export ROS_PACKAGE_PATH=/home/randoms/Documents/ros/workspace/src:/home/randoms/Documents/ros/workspace/src/ORB_SLAM2/Examples/ROS:$ROS_PACKAGE_PATH
</code></pre>
<p dir="auto">你要根据自己的环境配置进行修改</p>
<ol start="2">
<li>初始化工作空间<br />
初始化rosdep</li>
</ol>
<pre><code>sudo rosdep init #如果提示文件已经存在就先把它给删掉
rosdep update
</code></pre>
<p dir="auto">假设你原来的ros工作空间在<code>/home/randoms/Documents/ros/workspace</code>。这个文件夹内有<code>src</code>, <code>devel</code>,<code>build</code>三个文件夹，删除其中的<code>build</code>和<code>devel</code>文件夹<br />
然后运行编译</p>
<pre><code>catkin_make
</code></pre>
<p dir="auto">等待编译完成<br />
一般来说肯定会有编译错误，提示错误的程序一般重新编译一遍就没问题。一般产生错误的原因是软件包依赖没有满足。根据错误提示进行修改就可以了。</p>
<h4>确认kinetic安装完成</h4>
<p dir="auto">运行<code>rviz</code>看看能否执行</p>
<h4>可能会遇到的问题</h4>
<p dir="auto">系统更新比较头疼的就是驱动问题。可能系统更新完成之后重启发现进不去桌面了。这一般是显卡驱动出问题了。遇到这种情况也不用着急，只要重新装一下显卡驱动就可以了。在grub启动选项中的高级模式里面有<code>recovery mode</code>，从里面可以以文本的方式进入系统，这样就可以重新安装驱动了。具体的安装方法每个显卡都不太一样，自己google一下基本就可以解决了。</p>
<p dir="auto">如果你遇到了什么奇怪的问题，也欢迎在下面评论，我会尽量帮助解决的 <img src="http://community.bwbot.org/assets/plugins/nodebb-plugin-emoji/emoji/android/1f604.png?v=9q7h1n1nrom" class="not-responsive emoji emoji-android emoji--smile" title=":-D" alt="😄" /></p>
]]></description><link>http://community.bwbot.org/topic/150/ros系统升级-如何从jade升级到kinetic</link><generator>RSS for Node</generator><lastBuildDate>Tue, 21 Apr 2026 20:28:21 GMT</lastBuildDate><atom:link href="http://community.bwbot.org/topic/150.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 Jan 2017 10:15:53 GMT</pubDate><ttl>60</ttl></channel></rss>