ROS学习笔记(7)进一步深入了解ROS第一步

0.前提

        最近在学习宾夕法尼亚大学工程学院的ROS公开课,在尽力的去融入全英语的环境(哪怕我的英语水准并不是很高)。既然是在学习,笔记也就是必须的了,当然这些笔记都是课程当中提出的问题,我去寻找后得出的答案,可能并不是最准确的,请一定要认真辨别。

1. (Python & C++) What is a CMakeList? Is it related to a make file used for compiling C++ objects? If yes then what is the difference between the two?(什么是CMakeList?是否作用于c++文件的编译?python和c++文件的编译有何区别?)

1.What is a CMakeList?(什么是CMakeList?)

1.CMakeLists.txt 

        CMakeLists.txt用于构建软件包的 CMake 构建系统的输入。任何符合CMake 的包都包含一个或多个 CMakeLists.txt 文件,用于描述如何生成代码以及将其安装到的位置。用于 catkin 项目的 CMakeLists.txt 文件是一个标准的 CMakeLists.txt 文件,具有一些附加约束。(通俗了讲就是记录了功能包的编译规则。)

2.CMakeLists.txt 文件格式

1.CMake版本:cmake_minimum_required()

2.包名:project()

3.构建所需的其他CMake/Catkin软件包:find_package()

4.开启Python模块支持:catkin_python_setup()

5.消息/服务/操作生成器:add_message_files()、add_service_files()、add_action_files()

6.调用消息/服务/操作生成:generate_messages()

7.指定包构建信息导出 catkin_package()

8.构建的库/可执行文件 add_library()/add_executable()/target_link_libraries()

9.构建测试:catkin_add_gtest()

10.安装规则:install()

详情请查阅ROS官方文档(查看官方资料比网络流传更重要)catkin/CMakeLists.txt - ROS Wiki

2.Is it related to a make file used for compiling C++ objects?(是否作用于c++文件的编译?)

是的,作用于C++文件的编译。

3.If yes then what is the difference between the two?(python和c++文件的编译有何区别?)

Python代码没有使用add_library()和 add_executable()函数

2. (Python & C++) Are you using CMakeList.txt for Python in ROS? Is there a executable object being created for Python?(在ROS中对python文件会使用CMakeList.txt吗?是否为Python创建了可执行对象?)

1.Are you using CMakeList.txt for Python in ROS?(在ROS中对python文件会使用CMakeList.txt吗?)

会的,但我目前还未经历过要使用的情况(我资历太浅)。

2.Is there a executable object being created for Python?(是否为Python创建了可执行对象?)

创建了。

3. (Python & C++) In which directory would you run catkin make?(catkin_make在哪使用?)

在工作空间路径(也就是ws的位置)

4. (Python & C++) The following commands were used in the tutorial:

       $ source / opt / ros / kinetic ( melodic )/ setup . bash

       $ source devel / setup . bash

Why do we need to source setup.bash? What does it do? Why do we have to different setup.bash files here and what is there difference?(为什么我们要source setup.bash?如何做?为什么两者不同?不同在哪?)

设置环境变量 (source devel/setup.bash)是为了系统能够找到这个工作空间,Ubuntu默认使用的终端是bash,需要在bash中设置ros环境变量,最好把它放在家目录的.bashrc目录下,以便系统启动时能够执行其中的source /opt/ros/kinetic/setup.bash指令,使得工作空间中的环境变量可以生效,这样系统终端能够读懂ros命令,执行相应的操作。

相关推荐

  1. ROS笔记四:ROS通信

    2024-01-03 17:40:02       41 阅读
  2. ROS2学习笔记二:开发准备

    2024-01-03 17:40:02       29 阅读
  3. ROS学习笔记8:TF坐标变换

    2024-01-03 17:40:02       35 阅读
  4. ROS学习笔记15:动态参数

    2024-01-03 17:40:02       37 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-03 17:40:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-03 17:40:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-03 17:40:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-03 17:40:02       20 阅读

热门阅读

  1. 数字孪生项目中的导航片及寻路实现算法的探索

    2024-01-03 17:40:02       38 阅读
  2. Unity 关于点击不同物品移动并触发不同事件

    2024-01-03 17:40:02       40 阅读
  3. Jenkinsfile构建

    2024-01-03 17:40:02       39 阅读
  4. 关于数据集的了解

    2024-01-03 17:40:02       39 阅读
  5. 前端工作细节提升总结

    2024-01-03 17:40:02       37 阅读
  6. 搭建golang开发环境

    2024-01-03 17:40:02       45 阅读
  7. 前端面试

    2024-01-03 17:40:02       35 阅读
  8. Python日期和时间详解

    2024-01-03 17:40:02       36 阅读
  9. React Proxy跨域配置(纯代码-可直接拉取使用)

    2024-01-03 17:40:02       39 阅读
  10. FreeRTOS任务通知

    2024-01-03 17:40:02       39 阅读
  11. 有效的APP推广策略:引领用户走向成功

    2024-01-03 17:40:02       43 阅读
  12. Python中的数据分析和数据处理

    2024-01-03 17:40:02       43 阅读
  13. 15、异常处理

    2024-01-03 17:40:02       32 阅读