机器人操作系统入门:一(中科大&&重德智能)

目录

一 Ros简介

 二  框架

1 框架总览

 

2.通信格式

2.1 话题 Topic

2.2 Service 服务

2.3  Topic 和 Service 的对比

          2.4 Action 动作

3.常用指令

3.1 关于包

3.2 关于节点  

3.3 关于通信

三 工具

四 功能

五 社区


一 Ros简介


1.ros官网:
http://www.ros.org/

2.ros版本发展

 二  框架

1 框架总览

工作空间的树形结构如下:

Catkin ROS 定制的编译构建系统,是对 CMake的扩展,用来编译ros程序。

Catkin 工作空间是文件夹,管理ros的功能包。

 

建立工作空间然后编译命令行如下

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
catkin_make
source ~/catkin_ws/devel/setup.bash  #编译后刷新环境

src文件夹下面是各个包的源代码,包是catkin变异的基本单元,编译时会一次查找各个包然后生成exe。

build中是cmake& catkin的缓存和中间文件。

devel中是目标文件,包括头文件,dll(动态链接库),sll(静态链接库),exe.

其中build 和devel文件夹是编译时自动产生的。

CMakeLists的常用命令如下:

package.xml的常用模式如下

运行Ros中的多个可执行程序时使用launch文件,配置文件yaml

launch 文件格式如下:

 

2.通信格式

共有四种:话题 Topic    服务service  参数服务   parameter service  动作库 Actionlib

2.1 话题 Topic

TopicROS中的异步通信方式。Node之间通过publish-subscribe通信。先发布再订阅,多发布多订阅。

 Message topic 内容的数据类型,定义在*.msg文件中.   Rgb 图像的格式,类似于一个类,发布的就是对象。

2.2 Service 服务

       Service ROS 中同步通信的方式。Node 之间可以通过request-reply 方式通信。Node  A发出请求后等待回复。

Service 通信的数据格式 srv,定义在  *.srv  中。

SRV 上为请求,下为应答.

Srv中嵌套msg文件。

 

2.3  Topic 和 Service 的对比

 

2.4 Action 动作

Action 类似于service ,带有状态反馈的通信方式,适用于在长时间(导航)、可抢占(可被中断)的任务中。

 

Action 通信的数据格式在 *.action  文件中。

Goal 是请求,Result 是最终结果,feedback不断传回状态。

3.常用指令

3.1 关于包

rospack find package_name #定位包的位置 
rospack list     #所有包的名称

roscd package_name   #跳转到包的路径下

rosls package_name   #输出包的信息
 
roscd package_name file_name    #编辑文件

catkin_create_pkg <pkg_name> [deps]  #创建包

rosdep install [pkg_name]   #安装包所需依赖

 

3.2 关于节点 

roscore    #启动管理器,管理node之间的通信
rosrun [pkg_name] [node_name]    #启动node

rosnode list    #当前正运行的node列表

rosnode info [node_name]    #node的信息

rosnode kill [node_name]    #结束node
roslaunch [pkg_name] [filename.launch]    #启动master和多个node

 

3.3 关于通信

Topic

rostopic list    #列出当前所有topic

rostopic info /topic_name    #topic的信息

rostopic echo /topic_name    #topic的内容

rostopic pub /topic_name    #向topic发布内容

rosmsg list    #列出所有msg

rosmsg show    #显示msg内容

Service 

rosservice list    #列出活跃的service

rosservice info service_name    #显示属性

rosservice call service_name args    #调用service

rossrv list    #列出所有srv

rossrv show srv_name    #显示内容

Param 

rosparam list

rosparam get param_key    #显示参数的值

rosparam set param_key param_value    #设置参数值

rosparam dump file_name    #保存参数到文件

rosparam load file_name    #从文件读取参数

rosparam delete param_key    #删除参数

 RosbagROS 命令行工具),记录和回放数据流。用于后期调试排查。

rosbag record <topic_names>    #记录一些topic到bag中

rosbag record -a    #记录所有topic到bag中

rosbag play <bag-files>    #回放bag

三 工具

       Gazebo   仿真工具,ODE物理引擎,用于动力学、导航、感知等任务的模拟。

       RvizThe  Robot Visualization tool   可视化工具,方便监控调试。将接收到的信息显示出来。

RqtROS qt),基于qt开发,常用rqt_graph  (通信架构),rqt_plot(绘制曲线), rqt_console(日志) .

四 功能

各种成熟的算法包啦~

五 社区

世界各地都有同志在做,你不是一个人在战斗!

猜你喜欢

转载自blog.csdn.net/Bluenapa/article/details/86368729