ROS1.0软件的安装及小海龟仿真
一.ROS简介
-
ROS(Robot Operating System)是一个为机器人软件开发者提供框架和一组库、工具的操作系统。它提供类似操作系统的服务,包括硬件抽象、设备驱动、库函数、可视化、消息传递、包管理等。ROS的目的是简化机器人软件开发的复杂性,提供代码复用的机制,并支持多种编程语言。
-
ROS的核心功能包括:
-
消息传递:ROS允许节点(独立的进程)之间通过发布和订阅模型进行通信。节点可以发布信息到特定的话题(topic),其他节点可以订阅这些话题以接收信息。ROS支持多种消息类型,如字符串、整数、浮点数、传感器数据等。
-
服务:除了消息传递外,ROS还提供了一种请求/响应式的通信方式,称为服务(service)。一个节点可以提供服务,其他节点可以通过调用服务来请求执行某个操作或获取数据。
-
包管理:ROS使用包(package)来组织和管理代码、配置文件和其他资源。包可以方便地安装、更新和共享,有助于代码的复用和维护。
-
构建系统:ROS提供了一个构建系统(如catkin或colcon),用于编译和管理ROS项目中的源代码。这有助于自动化构建过程,减少开发者的负担。
-
可视化和调试工具:ROS提供了多种可视化和调试工具,如RViz(可视化工具)、rqt(一系列基于Qt的实用工具)和rosbag(用于记录、回放和分析ROS数据的工具)等。
二.ROS软件安装
2.1 安装前准备
合适的软件源能够极大的提高我们的下载速度,由于Ubuntu本地源在国外,下载速度堪忧,建议更换国内的软件源进行下载,以提高下载速度。
Ubuntu采用apt作为软件安装的工具,其镜像源记录在 /etc/apt/source.list文件中,首先我们将source.list备份为source.list.old。
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
之后我们打开source.list文件
sudo nano /etc/apt/source.list
将原来的内容全部删掉或注释掉,换成下列任意一个镜像源
清华源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security multiverse
阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
输入
sudo apt-get update
将软件源更新。
2.2. 安装ROS
在终端输入以下命令
添加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
更新软件源
sudo apt-get update
安装ROS Melodicic(此步骤建议根据不同的Ubuntu版本更换不同的ROS系统版本)
sudo apt install ros-melodic-desktop-full
初始化 ROS(这一步遇到错误可看后面的错误总结及解决方法)
sudo rosdep init
说明:
(1)使用sudo rodep init出现sudo rosdep:找不到命令提示的错误
解决方法:
sudo apt install python-rosdep
(2)出现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.的错误
解决方法:
cd /etc
sudo gedit hosts
在文本后面添加(ip是通过https://site.ip138.com进行输入raw.githubusercontent.com查询获取得到,任意选择一个)
ip raw.githubusercontent.com
不过这里存在网络问题,如果使用的是移动网通过上面方法也无法解决问题,最终用电信网解决。
(3)出现ERROR: error loading sources list: <urlopen error <urlopen error timed out (https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml)
设置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
使环境变量生效
source ~/.bashrc
安装rosinstall
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
到这里ROS就是安装完成了,接下来我们测试以下ROS
三.小海龟仿真
- 启动ROS Master
roscore
- 启动小海龟仿真器
rosrun turtlesim turtlesim_node
- 启动海龟控制节点,即可控制用上下左右控制小海龟移动(鼠标需要放在命令终端内)
rosrun turtlesim turtle_teleop_key