ROS简介
ROS(Robot Operating System,机器人操作系统)是一款专为机器人应用设计的开源元操作系统。它集成了大量工具、库及通信协议,提供类似于传统操作系统的功能,显著简化了对机器人的控制与开发流程。此外,ROS 还包含用于在多台计算机上获取、编译、编写和运行代码的实用工具与库,因此在某种程度上也可被视作一个“机器人开发框架”。
ROS 的设计者将其概括为“ROS = Plumbing + Tools + Capabilities + Ecosystem”,即 ROS 不仅包含底层通信机制与工具软件包,还涵盖机器人高层功能模块以及丰富的生态系统支持,共同构成一个全面、协作的机器人开发与应用平台。
1. 安装virtualbox
1.1双击.exe文件安装virtualbox,按照向导一直点“下一步”即可。
安装完成后,显示以下界面。
2. 虚拟一台主机
2.1点击“新建”,给虚拟机起一个名字,位置改到D盘,类型选择Linux,版本选择Ubuntu(64-bit)点击下一步。
2.2内存设置为4096mb,处理器改为2。点击下一步。
2.3选择现在创建虚拟盘,大小设置为25g。点击下一步再点击完成。
3. 安装Ubuntu
3.1找到刚刚创建的虚拟机,点击设置,在系统中将启动顺序改为光驱优先。
3.2在存储中的控制器里,点击右侧光盘按钮,选择虚拟盘,找到Ubuntu.iso文件,点击打开。
3.3点击启动按钮,初次启动会出现下面这个页面,点击安装Ubuntu。
3.4安装过程中,第一个界面是键盘布局,默认即可无需修改,点击继续,下一个界面中,取消勾选安装Ubuntu时下载更新可以提高安装速度。继续。
3.5选择清除整个磁盘并安装Ubuntu。继续。
3.6下一步将时区选择在中国。
3.7设置用户名及密码,选择自动登录。继续。
3.8此时,Ubuntu就开始安装了,需要等待一段时间,当skip键亮起时,点击skip。安装完毕后根据提示按回车键。至此Ubuntu安装完毕。
3.9安装虚拟机工具
3.9.1安装增强功能。
回车关闭窗口,重启后生效,虚拟机可以自动调整窗口大小。
3.9.2启动文件交互模式,将高级中的两个选项都改成双向,可以实现虚拟机与本机上文件之间的相互拖拽。
4. 安装ros
4.1搜索软件和更新。
勾选前四个。
4.2设置安装源,打开终端,输入命令(国内中科大安装源)
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'
4.3设置key,
sudo apt-key adv --keyserver 'hkp\://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
4.4安装
4.4.1首先需要更新 apt,输入命令sudo apt update ,等待,再输入命令
sudo apt install ros-noetic-desktop-full
4.4.2配置环境变量
echo "source /opt/ros/noetic/setup.bash" >> \~/.bashrc
source \~/.bashrc
4.5安装构建依赖
4.5.1首先安装构建依赖的相关工具
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
4.5.2初始化rosdep
sudo apt install python3-rosdep
4.5.3初始化rosdep
sudo rosdep init
rosdep update
安装过程如下
5. 测试ROS
ROS 内置了一些小程序,可以通过运行这些小程序以检测 ROS 环境是否可以正常运行
1. 启动三个终端
2. 命令行1:roscore
3. 命令行2:rosrun turtlesim turtlesim_node
4. 命令行3:rosrun turtlesim turtle_teleop_key
此时光标聚焦在键盘控制窗口,通过上下左右键可以控制乌龟移动
6. ROS集成开发环境搭建
6.1安装终端(增强版,可同时开启多个窗口),在终端中输入命令sudo apt install terminator
6.2安装vscode,先将本机上的code.deb文件拖拽到虚拟机中,在终端输入命令
sudo dpkg -i xxxx.deb
6.3安装vscode插件
6.4使用 C++实现 ROS 版本的 HelloWorld
6.4.1 创建 ROS 工作空间
mkdir -p xxx\_ws/src(必须得有 src)
cd xxx\_ws
catkin\_makeCopy
6.4.2 启动 vscode
进入 xxx_ws 启动 vscode
cd xxx\_ws
code .Copy
6.4.3 vscode 中编译 ros
快捷键 ctrl + shift + B 调用编译,选择:catkin_make:build
可以点击配置设置为默认,修改.vscode/tasks.json 文件
{// 有关 tasks.json 格式的文档,请参见
// <https://go.microsoft.com/fwlink/?LinkId=733558>
"version": "2.0.0",
"tasks": \[
{
"label": "catkin\_make:debug", //代表提示的描述性信息
"type": "shell", //可以选择shell或者process,如果是shell代码是在shell里面运行一个命令,如果是process代表作为一个进程来运行
"command": "catkin\_make",//这个是我们需要运行的命令
"args": \[],//如果需要在命令后面加一些后缀,可以写在这里,比如-DCATKIN\_WHITELIST\_PACKAGES=“pac1;pac2”
"group": {"kind":"build","isDefault":true},
"presentation": {
"reveal": "always"//可选always或者silence,代表是否输出信息
},
"problemMatcher": "\$msCompile"
}
]
}
修改完成后ctrl + shift + B快捷键就可以实现全局编译功能。
6.4.4 创建 ROS 功能包
选定 src 右击 ---> create catkin package
6.4.5 C++ 实现
在功能包的 src 下新建 cpp 文件
\#include "ros/ros.h"
setlocale(LC\_CTYPE, "zh\_CN.utf8");
setlocale(LC\_ALL, "");
int main(int argc, char \*argv\[]){
setlocale(LC\_ALL,"");
//执行节点初始化
ros::init(argc,argv,"HelloVSCode");
//输出日志
ROS\_INFO("Hello VSCode!!!哈哈哈哈哈哈哈哈哈哈");
return 0;
}
修改CMakeLists.txt文件中的配置。
编译:ctrl + shift + B
执行:在终端中输入
source ./devel/setup.bash
rosrun 包名 文件名