ROS学习(two)

接上一篇文章: ROS学习(one)
manifest: 就理解为一个文档的描述符,记录这关于该文件的各种信息。

Filesystem 工具

使用ls 或者 cd 比较繁琐乏味, 所以ros提供了更加方便的命令行工具

rospack = ros + pack(age)
roscd = ros + cd
rosls = ros + ls

rospack:允许你得到关于包的信息,
find 命令
	rospack find package_name # 将会返回包的路径

roscd:可以让你直接跳转到相应文件的目录下面 跳转 ros + cd
	roscd 只能跳转到在 ROS_PACKAGE_PATH 下存在的路径 (echo $ROS_PACKAGE_PATH 查看ROS_PACKAGE_PATH下所含有的包)
	roscd roscpp # 直接跳转到 roscpp 路径下
	roscd roscpp/cmake # 跳转到roscpp/cmake路径下面
	roscd log # 跳转到log文件夹下面, f you have not run any ROS programs yet, this will yield an error saying that it does not yet exist.

rosls: 列出后面文件夹下面的子文件 , 没有 rosll 命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Creating a catkin Package

使用 roscreate_pkg 和 catkin 创建一个ros package, 并且通过rospack来列出包的依赖

一个最简单的 catkin Package 必须包含下面的文件: package.xml & CMakeLists.txt

使用 catkin_create_pkg脚本来创建一个新的catkin包

# 创建一个新的包 begginner_tutorials , 依赖于 std_msgs rospy 和 roscpp
# catkin_create_pkg package_name depend1 depend2 ... 
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp

在这里插入图片描述

Building a catkin workspace and sourcing the setup file

building a catkin workspace : 在工作空间目录下, 使用catkin_make
在这里插入图片描述catkin_make 之后会在 devel 目录下创建一个和 /opt/ros/$ROSDISTRO_NAME 相似的结构 的目录

你需要去source 生成的 setup 文件( source catkin_ws/devel/setup.bash ),增加该工作空间,到你的ros环境中

fengxuewei@fengxuewei:~/C++_myself$ source catkin_ws/devel/setup.bash 
fengxuewei@fengxuewei:~/C++_myself$ echo $ROS_PACKAGE_PATH 
/home/fengxuewei/C++_myself/catkin_ws/src:
/home/fengxuewei/mavlink_ws/src:
/home/fengxuewei/catkin_ws/src/mavlink:
/home/fengxuewei/catkin_ws/src/mavros/libmavconn:
/home/fengxuewei/catkin_ws/src/mavros/mavros_msgs:
/home/fengxuewei/catkin_ws/src/mavros/mavros:
/home/fengxuewei/catkin_ws/src/mavros/mavros_extras:
/home/fengxuewei/catkin_ws/src/mavros/test_mavros:
/opt/ros/melodic/share

包的依赖

First-order dependencies
rospack depends1 catkin_package_name # 输出关于该包的依赖包, 这些内容在该包文件夹的 package.xml文件中
rospack depends1 catkin_package_name # 输出所有间接依赖

<?xml version="1.0"?>
<package format="2">
  <!-- package.xml  -->
  <name>beginner_tutorials</name>
  <version>0.0.0</version>
  <description>The beginner_tutorials package</description>

  <!-- One maintainer tag required, multiple allowed, one person per tag -->
  <!-- Example:  -->
  <!-- <maintainer email="[email protected]">Jane Doe</maintainer> -->
  <maintainer email="[email protected]">fengxuewei</maintainer>


  <!-- One license tag required, multiple allowed, one license per tag -->
  <!-- Commonly used license strings: -->
  <!--   BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
  <license>TODO</license>


  <!-- Url tags are optional, but multiple are allowed, one per tag -->
  <!-- Optional attribute type can be: website, bugtracker, or repository -->
  <!-- Example: -->
  <!-- <url type="website">http://wiki.ros.org/beginner_tutorials</url> -->


  <!-- Author tags are optional, multiple are allowed, one per tag -->
  <!-- Authors do not have to be maintainers, but could be -->
  <!-- Example: -->
  <!-- <author email="[email protected]">Jane Doe</author> -->


  <!-- The *depend tags are used to specify dependencies -->
  <!-- Dependencies can be catkin packages or system dependencies -->
  <!-- Examples: -->
  <!-- Use depend as a shortcut for packages that are both build and exec dependencies -->
  <!--   <depend>roscpp</depend> -->
  <!--   Note that this is equivalent to the following: -->
  <!--   <build_depend>roscpp</build_depend> -->
  <!--   <exec_depend>roscpp</exec_depend> -->
  <!-- Use build_depend for packages you need at compile time: -->
  <!--   <build_depend>message_generation</build_depend> -->
  <!-- Use build_export_depend for packages you need in order to build against this package: -->
  <!--   <build_export_depend>message_generation</build_export_depend> -->
  <!-- Use buildtool_depend for build tool packages: -->
  <!--   <buildtool_depend>catkin</buildtool_depend> -->
  <!-- Use exec_depend for packages you need at runtime: -->
  <!--   <exec_depend>message_runtime</exec_depend> -->
  <!-- Use test_depend for packages you need only for testing: -->
  <!--   <test_depend>gtest</test_depend> -->
  <!-- Use doc_depend for packages you need only for building documentation: -->
  <!--   <doc_depend>doxygen</doc_depend> -->
  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>roscpp</build_depend>
  <build_depend>rospy</build_depend>
  <build_depend>std_msgs</build_depend>
  <build_export_depend>roscpp</build_export_depend>
  <build_export_depend>rospy</build_export_depend>
  <build_export_depend>std_msgs</build_export_depend>
  <exec_depend>roscpp</exec_depend>
  <exec_depend>rospy</exec_depend>
  <exec_depend>std_msgs</exec_depend>


  <!-- The export tag contains other, unspecified, tags -->
  <export>
    <!-- Other tools can request additional information be placed here -->

  </export>
</package>
发布了25 篇原创文章 · 获赞 0 · 访问量 387

猜你喜欢

转载自blog.csdn.net/fengxuewei123/article/details/104058643