ros基础学习(二)

注:

本文主要是学习ros中关于各个内容的命令行的基本操作。

节点

节点都是独立运行的可执行文件,通过主题,服务,参数服务器与其他节点通信,ros通过使用节点讲代码和功能解耦,
    ros中还有一种节点,名nodelet,这种节点一个进程运行多个节点,这样可以再不使用ros网络情况下进行节点
    交互,通信效率高,避免网络阻塞,nodelet对于摄像头和3D传感器等数据传输量大的设备特别有用。
rosnode为处理节点的工具
    rosnode info node 输出当前节点信息。
    rosnode kill node 结束当前节点或发送给定信号。
    rosnode list      当前活动节点
    rosnode cleanup   将无法访问的节点注册信息清楚
        更多信息访问帮助文档  rosnode help,

节点另一个强大的功能是在启动时更改参数,我们能改变节点名称,主题,参数名称
    eg: rosrun book_tutorials tutorialx topic1:=/level1/toptic1
        改变主题名称。

主题

节点用来传输数据的总线,节点数据交互不需要节点直接链接,节点通过发布和订阅进行数据交互,同个主题可由多个
    节点订阅,一个节点可以订阅多个主题,
rostopic:用于主题操作。
    rostopic info /topic 输出活动的主题,发布的主题,主题订阅者和服务的信息。
    rostopic list  显示活动的主题
    rostopic pub /topic type args 将数据发布到主题。
    rostopic type /topic 输出主题类型。
    rostopic bw /topic  显示主题所用带宽
    rostopic echo /topic 讲主题上的消息输出到屏幕
    rostopic find messsage_type 按照消息类型查找主题
    rostopic hz /topic 显示主题发布的频率

服务

当你需要直接与节点进行通信并应答时,就需要服务来实现。服务需要我们自己开发,服务关联一个功能包中的.srv文件
名称来命名的服务类型,它与其他基于ros的类型一样,
    管理服务的命令有2个rossrv:查看服务有关的数据结构信息,  rosservice:服务列表和查询某个服务,
    rosservice call /service args 根据命令行参数调用服务
    rossservice find msg-type 根据服务类型查询服务
    rosservice info /service 输出服务信息
    rosservice list
    rosservice type /service 输出服务类型。
    rosservice uri /service 输出服务的rosrpc uri

消息

一个节点通过向特定主题发布消息,从而将数据发送到另一个节点,
消息有一定的数据结构,包括ros提供的标准类型和用户自定义类型。

使用rosmsg命令来获取ros消息信息。
    rosmsg show 显示一条信息的字段
    rosmsg list 列出多有消息
    rosmsg package 列出功能包的所有消息
    rosmsg packages 列出所有具有该消息的功能包
    rosmsg users  搜索使用该消息类型的代码文件
    rosmsg md5 显示一条消息的md5求和结果。

消息记录包

消息记录包由ros创建的一组文件,使用.bag格式保存消息,主题,服务,和其他ros数据信息,可以通过可视化工具
    调用和回放数据,
 要使用记录包文件,可以使用ros工具
     rosbag :用来录制 播放 执行其他操作
     rqt_bag:用于可视化图形环境中的数据 
     rostopic 帮助我们看到节点发送的主题。

节点管理器

节点管理器向ros系统中其他节点提供命名和注册服务,它像服务一样跟踪主题的发布者和订阅者,它的作用是
使节点之间能够相互查找,一旦找到节点就能建立点对点通信,

节点管理器通过roscore运行,同时加载其他ros核心组件。

参数服务器

是可通过网络访问的共享的多变量字典,节点使用它来存储和检索运行时的参数。
    rosparam list 列出服务器中的所有参数
    rosparam get parameter 获取参数值
    rosparam set parameter value 设置参数值
    rosparam delete parameter 删除参数
    rosparam dump file 将参数服务器保存到一个文件
    rosparam load file 加载参数文件到参数服务器。



下面要进行ros系统的练习。

1:rospack 获取功能包的路径和依赖等信息
    rosstack:获取功能包集的路径和依赖信息
  eg: rospack find turtlesim
      rosstack find ros_comm
2:rosls 获取功能包,功能包集下的文件列表,与linux的ls一致
    rosls turtlesim
3:roscd 进入某个功能包,与cd命令一致
    roscd turtlesim        roscd turtlesim/srv

创建工作空间

工作开始前必须创建工作空间。首先查看ros正再使用的工作空间。
      echo #ROS_PACKAGE_PATH
1:开始创建工作空间
    $mkdir -p ~/dev/catkin_ws/src
    $cd ~/dev/catkin_ws/src
    $catkin_init_workspace   //初始化工作空间。
2:编译工作空间
    $cd ~/dev/catkin_ws/
    $catkin_make   //编译工作空间命令。运行结束后会创建build和devel文件夹。
3:完成工作空间的配置
    source devel/setup.bash   这个是临时配置
    经常使用这个工作空间要将source devel/setup.bash  加入到.bashrc文件中。

创建功能包和综合功能包

1:使用catkin_create_pkg创建功能包
    eg:$cd ~/dev/catkin_ws/src
       $:catkin_create_pkg chapter2_tutorials std_msgs roscpp rospy

  catkin_create_pkg [package_name] [depend1]  [depend2] [depend3]
    depend为功能包的依赖
    std_msgs包含了常见的消息类型。
    roscpp:使用C++实现ros各种功能
    rospy:使用python实现ros的各种功能。

2:编译ros功能包
  $cd ~/dev/catkin_ws
  $catkin_make   注意是在工作空间命令执行这个命令。

猜你喜欢

转载自blog.csdn.net/tst116/article/details/79388420
今日推荐