理解ROS

节点管理器

节点管理器不参与节点之间的消息传递,这样的好处是减少了节点管理器的负担,也避免了节点管理器成为整个系统的瓶颈。
roscore 可以启动节点管理器,默认占用端口11311,可以通过

roscore -p 1234 

来指定端口
ros::init()可以实现节点的初始化,argc为命令行传入的参数,“helloworld”为节点名称

ros::init(argc,argv,"helloworld");

ros::shutdown()可以用来关闭节点,终结所有开放的订阅、发布、服务、调用;
ros::ok()可以查看节点的当前的状态

节点

节点本质上就是执行运算任务的进程。

ROS启动节点的方式有两种——rosrun和roslaunch。

rosrun一次只能启动一个节点,而roslaunch可以通过launch文件实现一次可以启动多个节点。
rosrun是直接启动程序包里的节点,节点名为CMakeList.txt 中的add_executable宏定义的可执行文件名,经过catkin_make后启动方法如下:

rosrun [程序包名] [节点名]

roslaunch中的launch文件本质上是一个以launch为后缀的XML文件,位于launch目录下,使用方法如下:

roslaunch [选项] [程序包名] <launch文件名> [可变参数]

如果希望指定端口:

roslaunch -p 1234 ros_control controller.lauch

如果希望等待直到检测到roscore发布:

roslaunch - -wait ros_control controller.lauch

如果希望仅启动本地节点,而不启动远程节点:

roslaunch - -local ros_control controller.lauch

如果希望将标准输出显示到终端上:

roslaunch - -screen ros_control controller.lauch

如果希望将标准输出显示到日志文件中:

roslaunch - -log ros_control controller.lauch

查看节点信息

查看当前运行的节点列表

rosnode list

查看特定节点的信息

rosnode info [节点名]

终止节点的运行

rosnode kill [节点名]

清除不可达节点

rosnode cleamup

话题

节点之间的通信可通过消息进行传递,而消息封装在话题中,话题本质上是对套字的一种封装。
rostopic命令可以查看与ROS话题相关的信息,rostopic的常用方法如下:

#显示话题数据的接收速度即宽带
rostopic bw [话题]
#显示话题的延迟
rostopic delay [选项] [话题名]
#显示话题的信息内容
rostopic echo [选项] [话题名]
#查看特定类型的话题
rosropic find [话题类型]
#显示话题数据的发布速度
rostopic hz [选项] [话题名]
#显示活动话题的消息
rostopic info [话题名]
#列出活动话题
rostopic list
#向话题发布数据
rostopic pub [话题名] [消息类型] [参数]
#打印话题/域类型
rostopic type [话题名/域类型]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值