ROS学习笔记二:通信架构(上)

通信架构

一、master

每个node启动时都要向master注册,管理node之间通信。

通过roscore启动,同时会启动rosout(日志输出)和parameter server(参数服务器)

二、node

ROS的进程;一个node(静态)就是一个进程。
pkg里的可执行文件(动态)运行的实例。

通过rosrun启动,$ rosrun [pkg_name] [node_name]
-list 列出当前运动的node信息;
-info [node_name]:显示某个node的详细信息;
-kill rosnode kill [node_name]
roslaunch:启动master和多个node
$ roslaunch [pkg_name] [file_name.launch] ; 可以自动master ; [file_name.launch]定义了启动规则,放在/pkg/launch/~launch*中

三、rosrun运行模型并操纵

ERROR:通过roslaunch运行Gazebo时只有地板:

git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git
之后默认是在master分支上,要手动调整分支到melodic下。具体操作方法我看老师提到但是没有具体指引,下面附上解决方式供参考。

$ git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git
$ cd ~/path/catkin_ws/src/ROS-Academy-for-Beginners
$ git branch -r
$ git checkout origin/melodic
$ git checkout -b origin/melodic
$ cd ~/path/catkin_ws
$ rosdep install --from-paths src --ignore-src --rosdistro=melodic -y
$ source ~/2020.4.4/ros3/catkin_ws/devel/setup.bash
$ roslaunch robot_sim_demo robot_spawn.launch//启动gazebo

这样成功解决!

NODES
  /
    cmd_vel_mux (nodelet/nodelet)//速度选择
    gazebo (gazebo_ros/gzserver)//后端
    gazebo_gui (gazebo_ros/gzclient)//前端展示
    mobile_base_nodelet_manager (nodelet/nodelet)//控制底盘运动
    urdf_spawner (gazebo_ros/spawn_model)//机器人自身结构
  /xbot/
    robot_state_publisher (robot_state_publisher/robot_state_publisher)//获取机器人状态信息
    spawner (controller_manager/spawner)//启动模型

(2)rosrun robot_sim_demo robot_keyboard_teleop.py
唤出操纵键盘,注意置顶是在此命令的终端上。

(3)唤出摄像头 rosrun image_view

ERROR

Usage: rosrun [--prefix cmd] [--debug] PACKAGE EXECUTABLE [ARGS]
  rosrun will locate PACKAGE and try to find
  an executable named EXECUTABLE in the PACKAGE tree.
  If it finds it, it will run it with ARGS.

通过此命令解决

sudo apt-get install ros-melodic-image-view

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

即成功

四、通信方式

1、Topic
特点:
(1)异步通信方式
(2)node间通过publish-subscribe机制通信

nodeA --(publish)–> /Topic (是一个string也就是一个频道) --(publish)–> nodeB
在这里插入图片描述2、Message(类,结构体;发布的内容就是对象)
(1)topic内容的数据类型
(2)定义在*.msg文件中(pkg/msg/*.msg)在这里插入图片描述常用命令
在这里插入图片描述
①查看topic中详细信息:$ rostopic echo /cmd_vel
②查看msg的内容:$ rosmsg show +数据类型
③-pub 用法:不用改源程序,通过在话题的发布中改变一些参数的值,然后用subscriber接收
rostopic pub +话题名+话题类型+需要改的参数以及值

注意:topic地址要加斜杠

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值