1.创建虚拟机
自定义安装,手动选择镜像文件,处理器选择1个处理器,8个核心,其他选择默认的即可。
2.换源
新装的虚拟机会提示更新(不是更新系统),建议换完源之后再更新。
左下角点开,打开software&updates。
选中源代码(最后一项),更换源,选择other,选择中国,推荐阿里云的镜像源。
点击close之后选择reload。如果中途卡住可以选择终止,然后再更换下载源,点击revert,再次reload。
3.设置软件源
打开终端,选择下面其中一个软件源,然后回车。
中科大源:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
清华源:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
4.设置秘钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
5.更新软件包列表
sudo apt update
6.安装软件包
sudo apt install ros-melodic-desktop-full
桌面完整版(推荐) : 包含 ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及 2D/3D 感知包。
选择y进行下载和解包。
为了避免后面找不到命令提示,这里需要执行如下命令:
sudo apt install python-rosdep
7.初始化rosdep
sudo rosdep init
如果出现错误:cannot download default sources list from:,则输入:
cd /etc
sudo gedit hosts
在文件末尾换行加上:
151.101.84.133 raw.githubusercontent.com
之后保存文件,关闭终端再次执行sudo rosdep init,成功结果如下。
如果出现以下错误,则输入:sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
之后再次执行init。
如果出现以下错误,建议多次执行初始化,或者关闭命令行,更换软件源,再次从第3步开始执行。
8.rosdep升级
rosdep update
下载源是国外的网站,只能翻墙,或者碰运气,换源多执行几次。如果成功了可以直接跳到第9步。另外也可以离线安装,下载好更新内容之后,将下载源全都改为本地的地址。在此因为版权问题我就不放离线包的链接了,可以在其他博主下找到离线包的资源,如果实在找不到可以私信我。
将rosdistro-master压缩包放在Ubuntu虚拟机的主目录下,然后执行:
cd ~
unzip rosdistro-master.zip
mv rosdistro-master rosdistro
修改20-default.list文件:
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
打开文件后删除文件内容,然后输入以下内容:
# os-specific listings first
yaml file:///home/xxx/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///home/xxx/rosdistro/rosdep/base.yaml
yaml file:///home/xxx/rosdistro/rosdep/python.yaml
yaml file:///home/xxx/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/xxx/rosdistro/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
其中xxx是自己的用户名,下面也是。
修改 sources_list.py 文件:
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
注释之前的DEFAULT_SOURCES_LIST_URL一行,然后增加:
DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'
修改 rep3.py 文件:
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
注释原 REP3_TARGETS_URL 一行,然后增加:
REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'
修改 __init__.py 文件:
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
注释原 DEFAULT_INDEX_URL 一行,然后在其后添加如下一行:
DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'
重新执行 rosdep update。
9.运行小海龟
添加ros环境变量:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
安装rosinstall:
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
初次运行配置环境变量:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
打开第一个终端运行:
roscore
打开第二个终端运行:
rosrun turtlesim turtlesim_node
此时有个静止的小乌龟,之后打开第三个终端运行:
rosrun turtlesim turtle_teleop_key
可以使用方向键控制小乌龟移动。