[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]

ROS 通信架构 (计算图级)

PR2 机器人
[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]_第1张图片
管理之间进程和通信

1.需要一个管家master,管理这些进程

master 节点管理器
每个节点(node)启动,都要向master注册
其管理node之间的通信

[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]_第2张图片
在命令行输入
roscore
会启动master,同时也会启动rosoutparameter server

rosout parameter server
系统有哪些error,warning 进行参数配置

2.启动具体ros程序(node)

一个node就是一个进程
是pkg文件中可执行文件的实例

这些只可执行文件,比如:

  • c++
  • .py
  • .sh (shell脚本)

运行后,被加载到内存中,成为node
可执行文件是静态的,而node是动态的

一般来说,每个节点是有特定功能的

启动方法:

rosrun [pkg_name] [node_name]
其他命令 功能
rosnode list 列出当前运行node的信息
rosnode info [node_name] 显示某个node的详细信息
rosnode kill [node_name] 结束某个node

roslaunch启动master和多个node

roslaunch [pkg_name] [file_name.launch]

[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]_第3张图片

launch文件的写法:
具体参见官方网页

             
               
            
            
         
              
           
                
              
              
            

以下是运行PR2机器人时所需要运行的节点
[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]_第4张图片

我们运行时只需要运行launch文件即可

roslaunch pr2_bringup pr2.launch

以下为我在Linux16.04下的操作

先到官方下载的文件夹下

roslaunch robot_sim_demo robot_spawn.launch 

然后会出现仿真环境
[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]_第5张图片
以上是参数服务器

然后是节点
[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]_第6张图片

robot_state_publisher 自身状态
spawner 启动机器人模型
cmd_vel_mux速度选择器
gazebo后端
gazebo_gui前段展示
mobile_base_nodelet_manager控制底盘运动
urdf_spawner和机器人自身结构有关系
每个node都是一个进程
[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]_第7张图片

master进程
常伴随启动的rosout

我们现在可以查看有哪些node在运行
rosnode list
[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]_第8张图片
可以看到其发布的topic,订阅的

再运行

rosrun robot_sim_demo robot_keyboard_teleop.py

会显示操作按键
[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]_第9张图片
多出来一个/robot_teleop

然后我们再运行一个node

rosrun image_view image_view image:=/camera/rgb/image_raw

[笔记] MOOC 机器人操作系统入门 ROS --(三) 通信架构(上) [未完]_第10张图片

你可能感兴趣的:(机器人,linux)