ROS学习笔记

跟着官方教程学习,这里做个简单记录

http://wiki.ros.org/cn/ROS/Tutorials

ROS文件系统介绍

rospack find [包名称]
# 返回软件包的路径信息。
roscd [本地包名称[/子目录]]
# 快速打开包所在路径
roscd log
# 切换到ROS保存日记文件的目录下
rosls [本地包名称[/子目录]]
# 允许你直接按软件包的名称而不是绝对路径执行ls命令(罗列目录)。

创建ROS程序包

开发catkin程序包的一个推荐方法是使用catkin工作空间,但是你也可以单独开发(standalone)catkin 软件包。一个简单的工作空间也许看起来像这样:

workspace_folder/        -- WORKSPACE
  src/                   -- SOURCE SPACE
    CMakeLists.txt       -- 'Toplevel' CMake file, provided by catkin
    package_1/
      CMakeLists.txt     -- CMakeLists.txt file for package_1
      package.xml        -- Package manifest for package_1
    ...
    package_n/
      CMakeLists.txt     -- CMakeLists.txt file for package_n
      package.xml        -- Package manifest for package_n

确定程序包依赖关系

rospack depends1 [包名称]
# 一级依赖
rospack depends [包名称]
# 递归检索依赖

cd ~/catkin_ws
rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y
# 安装全部依赖
cd ~/catkin_ws/src
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
# 创建一个名为'beginner_tutorials'的新程序包,这个程序包依赖于std_msgs、roscpp和rospy

自定义 package.xml

主要信息包括 描述标签、维护者标签、许可标签、依赖项标签。很简单

编译ROS程序包

catkin_make 是一个命令行工具,它简化了catkin的标准工作流程。你可以认为catkin_make是在CMake标准工作流程中依次调用了cmake 和 make。

# 在catkin工作空间下
catkin_make [make_targets] [-DCMAKE_VARIABLES=...]

理解 ROS节点

一个节点其实只不过是ROS程序包中的一个可执行文件。ROS节点可以使用ROS客户库与其他节点通信。节点可以发布或接收一个话题。节点也可以提供或使用某种服务。

rosnode list
# 列出活跃的节点

rosnode info [/rosout]
# 返回的是关于一个特定节点的信息

rosrun [package_name] [node_name]
# 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)。

rosrun turtlesim turtlesim_node __name:=my_turtle
# 通过命令行重新配置名称,ROS的一个优势

 

rostopic -h
# 显示帮助信息如下
    rostopic bw     display bandwidth used by topic
    rostopic echo   print messages to screen
    rostopic hz     display publishing rate of topic
    rostopic list   print information about active topics
    rostopic pub    publish data to topic
    rostopic type   print topic type
rostopic type [topic]
# 查看所发布话题的消息类型,应该看到
    turtlesim/Velocity
rosmsg show turtlesim/Velocity
# 查看详细

rostopic pub [topic] [msg_type] [args]
# 示例
rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, 1.8]'
rostopic pub /turtl/cmd_vel geometry_msgs/Twist -r 1 "linear:
  x: 1.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 3.0"

用rqt_plot、rqt_graph可视化

理解ROS服务和参数

# 常用指令
rosservice list         输出可用服务的信息
rosservice call         调用带参数的服务
rosservice type         输出服务类型
rosservice find         依据类型寻找服务find services by service type
rosservice uri          输出服务的ROSRPC uri

rosservice list
# 显示turtlesim节点提供了9个服务
rosservice type [service]
# 更进一步查看clear服务,显示std_srvs/Empty
rosservice call [service] [args]
# 调用服务,如rosservice call clear
rosservice type spawn| rossrv show
# 通过查看再生(spawn)服务的信息,我们来了解带参数的服务,显示
    float32 x
    float32 y
    float32 theta
    string name
    ---
    string nameing name


rosparam使得我们能够存储并操作ROS 参数服务器(Parameter Server)上的数据。参数服务器能够存储整型、浮点、布尔、字符串、字典和列表等数据类型。rosparam使用YAML标记语言的语法。一般而言,YAML的表述很自然:1 是整型, 1.0 是浮点型, one是字符串, true是布尔, [1, 2, 3]是整型列表, {a: b, c: d}是字典. rosparam有很多指令可以用来操作参数,如下所示:

# 使用方法:
rosparam set            设置参数
rosparam get            获取参数
rosparam load           从文件读取参数
rosparam dump           向文件中写入参数
rosparam delete         删除参数
rosparam list           列出参数名

rosparam list
# 我们来看看现在参数服务器上都有哪些参数:
    /background_b
    /background_g
    /background_r
    /roslaunch/uris/aqy:51932
    /run_id
rosparam set [param_name]
rosparam get [param_name]
# 如rosparam set background_r 150,调用下面清除生效
rosservice call clear
rosparam get /
# 显示参数服务器上的所有内容
rosparam dump [file_name]
rosparam load [file_name] [namespace]
# 现在我们将所有的参数写入params.yaml文件:
# rosparam dump params.yaml
# 你甚至可以将yaml文件重载入新的命名空间,比如说copy空间:
# rosparam load params.yaml copy
# rosparam get copy/background_b

rqt_console和rqt_logger_level显示和修改日志信息

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值