ROS中文件系统与常见概念的理解(随时更新)

ROS工作空间

关于ROS工作空间,以下图为例。工程的目录位置为 ~/catkin_ws/src


创建新程序包

使用catkin_create_pkg命令来创建一个名为'beginner_tutorials'的新程序包,这个程序包依赖于std_msgs、roscpp和rospy:

catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

这将会创建一个名为beginner_tutorials的文件夹,这个文件夹里面包含一个package.xml文件和一个CMakeLists.txt文件,这两个文件都已经自动包含了部分你在执行catkin_create_pkg命令时提供的信息。

catkin_create_pkg命令会要求你输入package_name,如果有需要你还可以在后面添加一些需要依赖的其它程序包:

# This is an example, do not try to run this
# catkin_create_pkg <package_name> [depend1] [depend2] [depend3]

package.xml文件

package.xml文件主要包含以下几部分内容:

描述标签

维护者标签

许可标签

依赖项标签



Launch文件

ROS提供了一个同时启动节点管理器(master)和多个节点的途径,即使用启动文件(launchfile.roslaunchROS中非常常用的工具了,借用一句话描述:roslaunchis a tool for easily launching multiple ROS nodes, and settingparameters on the Parameter Server.

rosrun只能运行一个nodes, roslaunch可以同时运行多个nodes.


简单的launch文件例子:

<launch>     
    <!-- run turtlesim -->
    <node pkg="turtlesim" type="turtlesim_node" name="turtlesim">
    </node>
    <!-- run turtle_teleop_key.launch -->
    <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_teleop_key" output="screen">
      <param name="twist_name" value="/turtle1/cmd_vel" />
    </node>
</launch>



ROS中常用指令

  1. roscore
  2. rosrun
  3. roscd:方便直接cd到相关目录
  4. rosed:编辑
  5. roslaunch:运行launch文件
  6. rosnode list:查看节点
  7. chmod +x:给予可执行权限(表示增加权限,r 表示可读取,w 表示可写入,x 表示可执行)更多可以参照chmod命令
  8. pkg-config --modversion opencv:查看安装的opencv版本

文件系统


上图所示为自己在Qt Creator中建立的工作空间workspace官网提供的demo是使用C++开发的。因为ROS是支持多种语言的,因此自己在src文件夹下添加了一个talker2.py文件作为发布节点,随后将此文件修改权限为可执行文件,即可正常运行。因此在同一个工作空间中,可以有的节点为C++编写,有的节点使用Python编写,十分便于开发。

因此自己考虑对之前已有的C++代码进行保留,自己新编写的部分尽量使用Python编写。

心得

使用Python编写比使用C++方便很多。

  1. Python语法更加简单
  2. Python为脚本语言,可以对.py文件修改权限后直接在终端中进行运行。
  3. 使用C++开发需要在CMakeLists.txt文件中进行一番操作,添加编译语句等,稍有不慎就会出错,很麻烦。使用Python则省去这些编译上的操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值