嵌入式系统应用实验(一):Ros的安装与应用

1.Ros的介绍

ROS (Robot Operating System, 机器人操作系统)是一个适用于机器人的开源的元操作系统,提供一系列程序库和工具以帮助软件开发者创建机器人应用软件,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。

得益于它的特点ROS日渐强大,其特点有点对点设计、不依赖编程语言、精简与集成、便于测试、开源、强大的库及社区。随着技术的发展及人们需求的提高,机器人集成了越来越多的功能、传感器,对用户来说这越来越方便,但对开发者来说恰恰相反,功能的增加带来开发与集成难度迅速上升,ROS的出现有效缓解了这种问题,这也是它的意义所在

2.在ubuntu安装ros:

在Ros官网(https://www.ros.org/about-ros/)中根据自己的Ubuntu版本选择对应的ROS版本

samba 嵌入式 移植 ros嵌入式移植_初始化


官方文档地址:http://wiki.ros.org/noetic/Installation/Ubuntu

2.1选择系统:Ubuntu20.04 ROS安装版本: Noetic

2.2.安装过程:

2.2 1.添加 sources.list(设置你的电脑可以从 packages.ros.org 接收软件.)

sudo sh -c ‘echo “deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main” > /etc/apt/sources.list.d/ros-latest.list’

samba 嵌入式 移植 ros嵌入式移植_初始化_02


2.2.2.添加 keyssudo apt-key adv --keyserver ‘hkp://keyserver.ubuntu.com:80’ --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

samba 嵌入式 移植 ros嵌入式移植_python_03


2.2.3.安装

首先,确保你的ubuntu软件包索引是最新的

sudo apt update

samba 嵌入式 移植 ros嵌入式移植_python_04


2.2.4.安装桌面完整版 : 包含ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及2D/3D感知

sudo apt install ros-noetic-desktop-full

samba 嵌入式 移植 ros嵌入式移植_bash_05

下载时间大约20分钟

2.2.5.您必须在使用ROS的每个bash终端中获取此脚本的源代码。

source /opt/ros/noetic/setup.bash

samba 嵌入式 移植 ros嵌入式移植_python_06

2.2.6.环境配置

echo “source /opt/ros/noetic/setup.bash” >> ~/.bashrc

source ~/.bashrc

samba 嵌入式 移植 ros嵌入式移植_初始化_07


3.构建软件包的依赖关系3.1

到目前为止,已经安装了运行核心ROS软件包所需的软件。为了创建和管理自己的ROS工作区,有各种工具和要求分别分发。例如,rosinstall是一个常用的命令行工具,使您可以通过一个命令轻松下载ROS软件包的许多源代码树。

要安装此工具和其他用于构建ROS软件包的依赖项,请运行:

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

samba 嵌入式 移植 ros嵌入式移植_初始化_08


3.2 初始化rosdep

在使用许多ROS工具之前,您需要初始化rosdeprosdep使您可以轻松地为要编译的源安装系统依赖性,并且是运行ROS中的某些核心组件所必需的。如果尚未安装rosdep,请执行以下操作

sudo apt update python3-rosdep

samba 嵌入式 移植 ros嵌入式移植_python_09

使用以下命令,可以初始化 rosdep:

sudo update rosdep

rosdep init

samba 嵌入式 移植 ros嵌入式移植_samba 嵌入式 移植_10


3.3第一次启动ROS时,需要进行环境变量配置,执行如下命令

echo “source /opt/ros/melodic/setup.bash” >> ~/.bashrc

source ~/.bashrc

4.启动Ros并运行小乌龟

4.1.在Terminal中运行以下命令:

$ roscore

samba 嵌入式 移植 ros嵌入式移植_嵌入式_11


4.2 新开一个terminal,运行以下命令,打开小乌龟窗口:

$ rosrun turtlesim turtlesim_node

samba 嵌入式 移植 ros嵌入式移植_初始化_12

4.3 新开一个terminal,运行以下命令,打开乌龟控制窗口,可使用方向键控制乌龟运动:

$ rosrun turtlesim turtle_teleop_key

samba 嵌入式 移植 ros嵌入式移植_嵌入式_13


4.4 选中控制窗口,按方向键,可看到小乌龟窗口中乌龟在运动。

4.5 新开一个terminal,运行以下命令,可以看到ROS的图形化界面,展示结点的关系:

$ rosrun rqt_graph rqt_graph

参考链接:
1.Ros官方文档:http://wiki.ros.org/noetic/Installation/Ubuntu
2.关于sudo rosdep init的错误及解决方案:https://www.guyuehome.com/12640
注意:网络问题,用手机开热点,最好使用电信卡,不要用移动和联通,连接不起。
3.Ros运行示例程序方案:
http://wiki.ros.org/ROS/Tutorials#Core_ROS_Tutorials 参考文档: