系统学习ROS 第一章 :ROS概述与环境搭建
概述机器人是一种高度复杂的系统性实现系统包含硬件设计、嵌入式软件设计、上层设计、机械结构设计、机械加工。ROS 全称机器人操作系统 Robot Operating SystemROS 是适用于机器人的开源操作系统ROS集齐了大量的库、协议工具ROS最大的特点 分布式ROS 通信工具功能生态ROS是进程的分布式框架ROS中的进程可以分布于不同的主机不同主机协同工作从而分散计算压力。ubuntu 20.04 右击的时候只有新建文件夹但是没有新建文本文档一般新建文档的时候通过终端 gedit 命令。ROS的快速体验ROS中涉及的变成语言主要是C和Python。ROS中程序的实现流程大概是创建一个工作空间创建一个功能包编辑源文件编辑配置文件编译并执行1. 创建工作空间并初始化mkdir -p demo01_ws/src #创建工作空间 cd demo01_ws #进入工作空间 catkin_make #编译编译完后工作空间中会出现 build 和 devel文件夹2. 进入src并创建工作包添加依赖库cd src catkin_create_pkg helloworld roscpp rospy std_msgs # helloword 是要创建的工具包的名称 # roscpp rospy std_mags 是三个依赖包的名称roscpp 是使用C实现的库rospy是使用python实现的库std_msgs 是标准消息库创建ROS 功能包时一般都会依赖这三个库的实现3. 编写源文件进入到创建的功能包的src//1. 包含ROS的头文件 #includeros/ros.h //2. 编写main 函数 int main(int argc,char*argv[]){ setlocale(LC_ALL,); //解决中文乱码问题 //3. 初始化ros节点 ros::init(argc,argv,hello_node); //输出日志 ROS_INFO(hello_world); return 0; }4. 编写配置文件5.回到工作空间打开终端进行编译 catkin_make6. 执行先启动命令行1roscore再启动命令行2cd 工作空间 source ./devel/setup.bash #这个source 只是在当前终端下加载工作环境 #rosrun 包名 c节点 rosrun helloworld haha可以配置环境变量方便在任意终端使用ros在 .bashrc 文件中添加source ~/工作空间/devel/setup.bash然后打开终端重新加载source .bashrcROS集成开发环境搭建1. 安装终端sudo apt install terminatorctrl alt T 打开终端就是可以分割的终端也可以添加进收藏夹ctrl D 关闭当前终端页面2. 安装vsode3. launch文件演示launch !-- 启动helloworld节点 -- node pkghelloworld typehaha namehelloworld outputscreen/ node pkgturtlesim typeturtlesim_node nameturtle_GUI / node pkgturtlesim typeturtle_teleop_key nameturtle_key / /launchROS 文件系统workspace自定义的工作空间build编译空间存放编译后生成的缓存信息、配置信息和其他文件devel开发空间用于存放编译后生成的目标文件包括头文件静态/动态链接库可执行文件等。src源码package功能包包含多个节点库与配置文件等cmakelists.txt 配置编译规则package.xml 包信息比如包名作者依赖项scripts 存储python文件src存储C源文件include 头文件launch一次可运行多个节点srv服务通讯格式文件msg: 消息通讯格式文件action动作格式文件ROS文件系统相关命令roscoreroscore 是ROS系统启动的先决条件节点和程序的几何必须运行roscore才能使ros节点进行通讯。roscore将启动 ros masterros参数服务器roscout 日志节点rosrunrosrun 包名 可执行文件名roslaunchroslaunch 包名 launch文件名 #执行某个包下的launch文件