仅用作个人学习记录,不确定其他电脑是否可行。
参考资料:赵虚左的《ROS机器人理论与实践》及网络资源(CSDN,知乎等)
1.2.4安装ROS
1 输入如下指令出现报错
sudo apt install ros-noetic-desktop-full
报错内容如下:
下列软件包有未满足的依赖关系:
ros-noetic-desktop-full : 依赖: ros-noetic-desktop 但是它将不会被安装
依赖: ros-noetic-perception 但是它将不会被安装
依赖: ros-noetic-simulators 但是它将不会被安装
依赖: ros-noetic-urdf-sim-tutorial 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
2 解决办法
(1)运行以下指令
sudo apt upgrade
(2)设置软件和更新
步骤:点击左下角的“显示应用程序(九个小正方形组成的大正方形图标)” --> 点击“软件和更新” --> 点击“更新” --> 将“For other package updates,subscribe to”设置为“All updates”;将“自动检查更新”设置为“每天”;将“当有安全更新时”设置为“自动下载和安装”;将“当有其他更新时”设置为“立即显示”;将“有新版本时通知我”设置为“适用长期支持版本”。 --> 点击“关闭(C)”。
(3)运行以下指令
sudo apt update
(4) 重新运行noetic安装指令
sudo apt install ros-noetic-desktop-full
(5)又出现如下报错
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 无法定位软件包 ros-noetic-desktop-full
(6)无法定位软件包的解决办法 --> 换源
添加如下安装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://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
运行以下指令更新软件源,更新前面添加的ROS软件源,否则会找不到安装包(E: 无法定位软件包 ros-noetic-desktop-full),更新软件源即可
sudo apt update
(7)重新安装ROS(根据Ubuntu的不同版本选择不同版本的ROS,20.04对应的是noetic版本)
sudo apt install ros-noetic-desktop-full
终于成功了!
以下内容为继续ROS的安装
1 配置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
2 安装构建依赖
(1)输入以下指令安装构建依赖的相关工具
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
(2)初始化rosdep
先输入以下指令
sudo apt install python3-rosdep
再输入以下指令
sudo rosdep init
出现如下报错,是由于raw.githubusercontent.com被墙,程序无法下载相应的文件导致的
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.
本人菜鸟,不太会用终端编辑文档,个人解决办法如下:
点击左侧栏的“文件” --> 点击“其他位置” --> 点击“计算机” -->双击“etc”打开文件夹 --> 在“etc”文件夹内右键选择“在终端打开(E)” -->在打开的终端输入如下指令打开hosts文档(直接点击打开文档无法保存更改内容)
sudo gedit hosts
在打开的文档的末端添加以下内容
151.101.84.133 raw.githubusercontent.com
保存退出,重新输入以下指令
sudo rosdep init
如果使用的是虚拟机,那么可能会出现超时的情况,可以参考以下解决办法(本人换成手机热点就可以了):解决ROS中“sudo rosdep init“和“rosdep update“超时问题的最新方法--2021年最新方法_rosdep init超时-CSDN博客
接着输入以下指令
sudo rosdep update
完成ROS安装
1.2.5 测试ROS
(1)按Ctrl+Alt+T打开终端(第一个),并输入如下指令
roscore
(2)再按Ctrl+Alt+T打开一个新的终端(第二个),并输入如下指令
rosrun turtlesim turtlesim_node
运行指令后会弹出图形化界面(TurtleSim)
(3)再按Ctrl+Alt+T打开一个新的终端(第三个),并输入如下指令
rosrun turtlesim turtle_teleop_key
运行指令后可使用键盘上的上下左右的箭头移动乌龟,在第三个终端输入“q”并回车则代表退出。
1.3 ROS 快速体验