前段时间给笔记本加装了一块1T固态硬盘,打算将Ubuntu系统安装到这个盘上,一开始下载了Ubuntu18.04版本,结果后来安装的时候没能扫描出硬盘,可能是硬件不兼容的问题,因此决定换成Ubuntu20.04的版本。
这里要声明一下,之后出现的一些问题也可能和N卡的驱动有关,我自己也还没有完全解决这个问题,后续解决了可能会继续发一些自己的理解和参考资料。
回到桌面,鼠标右击“此电脑”,选择“管理”,跳出如下界面
这张图里磁盘0是我电脑原来的,磁盘1是我后来新装的固态硬盘,之后将系统安装在这个盘里,磁盘2是刚制作好的系统盘。图中是我已经分配好后的状态,没分区前应该都是蓝的,然后选择你要安装的磁盘的最后一个卷(例如我磁盘0里有CDE就选E,我磁盘1里有FG就选G),右击选择压缩卷随后会跳出如下界面
在输入压缩空间量中输入你想分给Ubuntu系统的空间,至少分七八十G,我磁盘空间足够,这里分了大约110G给Ubuntu,然后点击压缩,压缩完之后应该就是我上面那个图的情况,显示107.42GB未分配,至此磁盘分区也已经完成,下面开始安装Ubuntu系统;
1.不要拔下U盘,然后重启电脑并一直按F2进入BIOS界面(我的华硕电脑是F2,其他品牌型号电脑可自行上网查阅),进入BIOS后是这个界面
2.按F7,进入Advanced Mode,然后在里面找到Fast Boot,将其修改成Disabled,下面的Boot Option中,1的位置选择UEFI,如下图所示
3.切换到Security
4.选择Secure Boot选项,将Secure Boot Control选项修改成disabled
5.按F10保存后重启
6.重启后会进入这样一个界面
这是我安装好后的界面,第一个就是Ubuntu系统,第三个是我的Windows系统,未安装的情况下应该会有"Try Ubuntu without installing"和"Install Ubuntu"等四个选项,这边我选的Install Ubuntu,选Try的话可以先体验一下,在里面也可以安装,选Install直接进入安装,两者都一样。
7.然后跳出下面界面,选择中文(简体),安装Ubuntu
8.键盘布局,选择汉语就可以
9.连接网络,我这里选的是暂时不连接,继续,选择连接也可以
10.选择正常安装,继续
11.安装类型选择其他选项,点击继续等待一会儿会进入分区界面,其中的nvme0是我的磁盘0,nvme1是我的磁盘1,如图
找到刚刚分配的空闲内存,点击左下角的加号,就可以创建分区,一共要分四个区,这边要提醒的是,如果你的Ubuntu和Windows安装在同一块磁盘里,由于一个硬盘上只能有4个主分区,所以先要注意好已经有几个个主分区了。
12.之后点击现在安装,继续会跳出来地点,默认为上海,点继续就好
13.最后设置用户名和密码
这边用户名也要记一下,以防后面系统出现问题时可能需要,所以我这边设置的是名字缩写;设置完成后点击继续,进入安装界面,此时只需耐心等待安装完成即可。
14.安装完成后,拔掉U盘,开机进入选系统界面,如下图,第一个是Ubuntu,直接回车就好
15.Ubuntu系统安装完成
在安装ROS前,我们先换源,点击Ubuntu桌面左下角的九个点,选择全部,跳出如下界面
选择软件和更新
选择“下载自:”中的其他
这边大家自己选择一下就可以,我选的是第一个上海交通大学的,之后点击选择服务器,然后输入密码
点击认证,关闭,选择重新载入
至此换源也完成了,下面正式安装ROS,下面是ROS版本与Ubuntu版本的对应关系,我装的是Ubuntu20.04自然对应的就是noetic
Ubuntu16.04对应ros-kinetic;
Ubuntu18.04对应ros-melodic;
Ubuntu20.04对应ros-noetic。
首先我们在Ubuntu桌面打开一个终端,可以用Ctrl
+Alt
+T
快捷键打开终端,也可以在桌面上右击,选择在终端打开,然后在终端输入如下命令行。第一条是官方给的命令行,但是速度会很慢,我这边采用了第二条,也就是清华源。(要注意的是,此时命令行需要你输入密码,但在Ubuntu系统里,命令行输密码时不会显示你输的,不用管,正确输入密码回车即可)
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) 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/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
复制如下命令到命令行
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
复制如下命令到命令行
sudo apt update
复制如下命令到命令行
sudo apt install ros-noetic-desktop-full
输入如下命令,初始化
sudo rosdep init
我这边出现了如下几种错误
可以在命令行输入
sudo apt install python3-rosdep2 -y
然后会出现下面界面
然后再次输入sudo rosdep init,很不幸,再次报错
输入如下命令:
sudo gedit /etc/hosts
并在打开的文件中手动输入如下内容并保存退出(保存快捷键Ctrl
+S
)
199.232.28.133 raw.githubusercontent.com
随后再次运行sudo rosdep init,结果出现了第三次报错。。。。。
在终端输入如下命令:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
然后再次运行sudo rosdep init,我这边又出现了错误2,可能是刚刚没改好,重新解决了一下错误2,再运行sudo rosdep init,出现下图最下面的文字,此时代表rosdep初始化完成。
当然,如果以上三种错误你在安装时都没有遇到,那你可以直接进行第6步
在终端输入命令
rosdep update
这一步往往会一直报错,可能和网络原因有关,可以试几次,如果一两次成功当然最好,不成功也可以尝试如下的办法,能很快就解决
安装rosdepc
sudo pip install rosdepc
如果显示pip找不到命令可以试试这个
sudo apt-get install python3-pip
然后再输入
sudo pip install rosdepc
此时再初始化一次,输入
sudo rosdepc init
rosdepc update
等全部完成之后就会出现如下界面
此时代表这一步已经完成,下面进行第7步
输入如下命令
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
输入如下命令
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool
输入如下指令
roscore
如果有报错,说明之前没有安装完全,重新安装一下noetic
sudo apt install ros-noetic-desktop-full
等待安装完成后,再次在终端输入roscore,出现下面这样说明安装完成
不要关闭roscore终端,用快捷键Ctrl
+Alt
+T
再打开一个终端,输入
rosrun turtlesim turtlesim_node
打开turtlesim可视化仿真器,此时画面出现小海龟,背景纯蓝色
再开一个终端,输入
rosrun turtlesim turtle_teleop_key
打开了控制终端,然后在该控制终端上通过控制键盘上的上下左右键来控制小海龟移动,最终如下图
随后在每个终端输入Ctrl
+C
,可以关闭节点,退出终端,至此,Ubuntu20.04系统和ROS_noetic版本全部安装完成。