本博文ROS镜像源的地址设置以及密钥均引用自胡春旭老师的《ROS机器人开发与实践》一书
1.更换软件源
首先要更换软件源,因为原来默认的中国服务器的在学校里的下载速度实在太感人(当时还真傻乎乎地等了半天TAT)。但是家里连中国服务器下载又很快,总之那个快选哪个。
点击左侧倒数第二个图标进入系统设置,然后点击软件与更新,设置如图所示。
跳出更新可用软件列表信息过时的窗口直接关掉就好了(因为后续操作也会更新这些软件列表)。
2. 设置软件源并添加密钥
在终端中输入
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'
这行命令将中科大ROS的软件源加入系统软件源的目录中。
接着在终端中输入
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80
--recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
从而获取安装ROS的密钥。
3. 安装ROS-kinetic
- 更新软件源
在终端中输入:
sudo apt-get update
使软件源的修改得到更新。
然而这可能会遇到几个问题
- W: 以下 ID 的密钥没有可用的公钥:
F42ED6FBAB17C654
缺啥补啥,输入如下指令:(不要漏了recv-keys与公钥编号之间的空格)
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <公钥编号>
申请到缺少的公钥问题就解决了。
l E: Problem executing scripts
APT::Update::Post-Invoke-Success ‘if /usr/bin/test -w /var/cache/app-info -a -e
/usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi’
这个进程出错可以输入以下三条指令解决:
sudo pkill -KILL appstreamcli
wget -P /tmp
https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb
https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i
/tmp/appstream_0.9.4-1ubuntu1_amd64.deb
/tmp/libappstream3_0.9.4-1ubuntu1_amd64.deb
输完上边的指令后再update一次就可以了。
- 安装ROS
接下来就可以正式安装ROS了
ROS安装的是桌面完整版,因为这个版本包含的功能较为全面。
输入如下指令:
sudo apt-get install ros-kinetic-desktop-full
ps:安装过程用时较长,安装的同时可以配置一下JAVA,安装个搜狗输入法和eclipse之类的。
4. 初始化rosdep
先后使用如下两条命令对ROS进行初始化和更新:
sudo rosdep init
sudo update
5. 设置环境变量
现在ROS已经成功安装至虚拟机里边了,默认在/opt路径下,现在要配置能让ROS运行的环境,在~/.bashrc中设置环境并使其生效
不会用Vim的可以看看
https://blog.youkuaiyun.com/qq_42256241/article/details/100181707
输入
vim ~/.bashrc
在文件的最后一行加上
source /opt/ros/kinetic/setup.bash
export ROS_HOSTNAME=localhost
export ROS_MASTER_URI=http://localhost:11311
其中第一行设置的是ROS启动的环境变量,第二行设置的是ROS的从机,第三行设置的是ROS的主机。这两行在后续ROS的通信中至关重要,并且没有事先设置好主从机在使用ROS一段时间后可能会出现找不到主机之类的错误从而导致ROS无法启动。保存退出后输入
source ~/.bashrc
6. 启动ROS
终端输入 roscore,出现如下界面的话,恭喜你,你的ROS可以成功启动了
然而如果出现如下状况也不要紧,只是权限不够罢了。
输入
sudo chmod 777 -R ~/.ros/
即可解决问题。
-
最后你需要安装rosinstall,这虽然不是必需的,但是后续开发是可以利用这个工具下载和安装ROS的功能包程序。
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential