记录 ROS1 创建工作空间和创建功能包的基本操作

目录

一  ROS 的使用

1  创建ROS工作空间

2  编译ROS工作空间

3  设置环境变量

4  创建ROS功能包

5  操作ROS功能包

二  ROS 功能包

1  目录结构

2  配置文件

3  构建配置文件

         三  ROS 内置命令

         1  ROS Shell 命令

         2  ROS 节点管理

         3  ROS 消息命令

         4  ROS catkin 命令

         5  ROS 功能包命令


一. ROS 的使用

 1. 创建ROS工作空间

# 创建源码文件夹:
mkdir -p ~/catkin_ws/src

# 进入 src 文件夹: 
cd ~/catkin_ws/src

# 初始化文件夹:
catkin_init_workspace

2. 编译ROS工作空间

# 进入工作空间目录
cd ~/catkin_ws/

# 开始编译
catkin_make

3. 设置环境变量

# 设置环境变量
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

# 让终端生效
source ~/.bashrc

# 查看环境变量
echo $ROS_PACKAGE_PATH

4. 创建ROS功能包

# (A)进入ROS源代码目录
     cd ~/catkin_ws/src/

#(B)创建功能包
#    功能包格式:catkin_create_pkg [功能包名称] [依赖功能包1] ... [依赖功能包n]
#    功能包例子:catkin_create_pkg ros_demo std_msgs roscpp rospy
#              std_msgs:包含常见消息类型
#                roscpp:使用C++实现ROS各种功能
#                 rospy:使用python实现ROS各种功能

#(C)编译功能包
#    会自动生成 CMakeList.txt 和 package.xml 文件
     cd ~/catkin_ws
     catkin_make

5. 操作ROS功能包

# 编译所有的功能包
  catkin_make

# 编译指定的功能包
  catkin_make --pkg your_package_name

# 安装指定的功能包
  catkin_make --pkg your_package_name --install

# 清除安装的功能包
  catkin_make --pkg your_package_name --clean

# 强制生成消息和服务(当消息类型msg和服务类型srv有改动时)
  catkin_make --force-cmake

# 指定编译语言(C++/Python)
  catkin_make --only-pkg-with-deps <你的功能包>

二. ROS 功能包

 1. 目录结构

# package_dir:
    CMakeLists.txt 	 → 构建配置文件
    package.xml      → 功能包配置文件
    include 	     → include 目录
    src 		     → 源代码目录

2. 配置文件

# package.xml: 它包含功能包信息,包括功能包名称、作者、许可证和依赖功能包。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<?xml version="1.0"?>
<package format="2">
  <name></name>
  <version>1.0</version>
  <description></description>
  <maintainer email="link@163.com">link</maintainer>

  <license>TODO</license>
  <buildtool_depend>catkin</buildtool_depend>

  <build_depend>roscpp</build_depend>
  <build_depend>std_msgs</build_depend>

  <build_export_depend>roscpp</build_export_depend>
  <build_export_depend>std_msgs</build_export_depend>

  <exec_depend>roscpp</exec_depend>
  <exec_depend>std_msgs</exec_depend>
  <export></export>
</package>

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
<package>           这个语句到</package>的部分是ROS功能包的配置部分。
<name>              功能包名称,默认为创建时的名称,可以随时更改。
<version>           功能包的版本可以自由指定。
<description>       功能包的简要说明。
<maintainer>        功能包维护者的姓名和电子邮建地址。
<license>           记录版权许可证。
<url>               记录描述功能包的说明,如网页、错误管理、存储库的地址等。
<author>            记录参与功能包开发的开发人员的姓名和电子邮件地址。
<build_depend>      构建依赖关系,使用某种特定的依赖关系来构建包。
<build_export_depend>  导出头文件,当其他包需要依赖这个包,使用这个标签用来传递声明。
<exec_depend>       程序包运行中所需的依赖,如:动态库、可执行文件、Python模块、脚本等。
<depend>            以上三种depend的合集,通常使用它添加ROS功能包,是常用而简便的方法。
<buildtool_depend>  构建工具依赖的软件包。通常唯一的构建工具是catkin。
<test_depend>       测试依赖关系仅指定单元测试的附加依赖项
<doc_depend>        文档工具依赖关系指定此软件包需要生成文档的文档工具。

3. 构建配置文件

# ROS 在 CMakeList.txt 文件中描述环境构建,
# 它以设置可执行文件的创建、依赖包优先构建、连接器的创建等等。

#(A)添加要使用的对应的目录下的文件的选项:
# 其中 XXXX 可以是 message、service、actions,xxx 对应 msg、srv、action。
  add_XXXX_files (
      FILES
      XXXX1.xxx
      XXXX1.xxx
  )

#(B)设置依赖的消息的选项:
  generate_messages(
      DEPENDENCIES
      std_msgs
  }

#(C)动态参数配置:
  generate_dynamic_reconfigure_options(
      cfg/DynReconf1.cfg
      cfg/DynReconf2.cfg
  }

#(D)指定包含目录的选项:
  include_directories(${catkin_INCLUDE_DIRS})

#(E)指定要创建的库文件:
  add_library(${PROJECT_NAME} src/${PROJECT_NAME}/demo_ros_pkg.cpp)

#(F)提前生成依赖
# add_dependencies 是在代码生成库之前,提前生成一些依赖,比如:消息生成或者动态的参数。
  add_dependencies(
      ${PROJECT_NAME} 
      ${${PROJECT_NAME}_EXPORTED_TARGETS} 
      ${catkin_EXPORTED_TARGETS}
  )

#(G)构建可执行文件
  add_executable(${PROJECT_NAME}_node src/demo_ros_pkg_node.cpp)

#(H)生成的可执行文件重命名
# 生成的可执行文件重命名,简化操作,
# 比如使用 rosrun demo_pkg node 代替 rosrun demo_pkg demo_pkg_node
  set_target_properties(
      ${PROJECT_NAME}_node 
      PROPERTIES OUTPUT_NAME node PREFIX "")

#(I)添加可执行文件的依赖项:
  target_link_libraries(${PROJECT_NAME}_node
      ${catkin_LIBRARIES}
  )

 三、ROS 内置命令

1. ROS Shell 命令

2. ROS 节点管理

3. ROS 消息命令

4. ROS catkin 命令

5. ROS 功能包命令

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值