ROS2 - 创建项目 (Ubuntu22.04)

本文简述:在 Ubuntu22.04 系统中使用 VS CODE 来搭建一个ROS2开发项目。

1. 创建工作空间

本文使用 Ubuntu 22.04, 已安装配置完成 VS Code,C++ 环境(g++/gdb)

1.1 创建目录

选择文件夹作为工作空间,并在这个文件夹下,创建 src 子文件夹。

cd btl_ros_project/
mkdir src

2. 创建功能包 

2.1 创建只有一种语言的功能包

创建 C++ 功能包:

cd src

ros2 pkg create cal_joint_angle --node-name joint_node --build-type ament_cmake --dependencies rclcpp std_msgs

ros2 pkg create <你的功能包名字> --build-type <选择cmake/ament_camke/ament_python三者之一作为项目的编译工具> --node-name <节点名称,这一项可以不写,后续手动配置> --dependencies <依赖项名字,例如在ROS1中常用的rclpy rclcpp std_msgs sensor_msgs等>

创建 Python 功能包:

cd src

ros2 pkg create cal_joint_angle_py --node-name joint_node --build-type ament_cmake --dependencies rclpy std_msgs

package.xml 文件是ROS2项目的功能包管理文件。上述命令中依赖项可以先不写,可以在创建完成后在package.xml中修改CMakeLists.txt 是ROS2项目的编译配置文件。

2.2 编译工作空间

在创建好的功能包中,继续完成代码的编写,完成后需要编译和配置环境变量,才能正常运行:

colcon build   # 编译工作空间所有功能包
source install/local_setup.bash    #配置环境初始化

执行命令后,文件夹内出现了一些新的文件夹:build, install, log。

创建工作空间时需要编译,以后创建功能包,修改代码后都要重新编译。 

2.2 包含多种语言的功能包

建议一个节点仅使用一种语言,通过修改CMakeLists.txt的内容,也可以创建包含多种语言的节点。

3. 进行节点编程

3.1 代码存放位置

C++功能包,将代码文件新建到功能包文件夹下的 src 文件夹内。

Python功能包,将代码文件新建到功能包文件夹下的与功能包同名的文件夹下。

上述两个功能包分别位于:

btl_ros_project/src/cal_joint_angle/src/

btl_ros_project/src/cal_joint_angle_py/cal_joint_angle_py/ 

3.2 VS Code 配置 ROS

1.创建 VS Code 工作目录

cd btl_ros_project/src (进入src文件夹)
code . (在该目录下打开VS CODE)

2. <ROS2工程目录下>/src/<节点cpp>.cpp 节点代码编写

3. 配置 settings.json文件

需要自己在项目下面新建 .vscode 文件夹,然后在在该文件夹下新建 settings.json文件 , 添加下列内容:

{

//添加/opt/ros/humble文件夹下的ros2的include路径

"files.associations": {

"iostream": "cpp"

},

"C_Cpp.default.includePath": ["/opt/ros/humble/include/**"]

}

4. ROS2项目的 package.xml 文件和配置 CMakeLists.txt 文件:

  package.xml 文件是ROS2项目的功能包管理文件。 CMakeLists.txt 是ROS2项目的编译配置文件,ROS2项目采用ament_cmake工具。

5. colcon 构建项目:

        在项目工作空间的目录下,运行

colcon build

6. 设置环境变量, 初始化工作区

编译完成后,还需要设置环境变量才能让系统知道这个工作空间内有哪些功能包和可执行文件,因此还需要设置环境变量。这一步的作用是初始化工作区。

1)使环境变量只在当前终端内生效

cd btl_ros_project/
source install/local_setup.sh

2)使环境变量在所有终端生效。使用第二种后,也可以使用第一种手动刷新环境变量。

cd btl_ros_project/
echo " source ~/myProjects/btl_ros_project/install/local_setup.sh" >> ~/.bashrc

设置环境变量的操作在每次编译之后都要执行。

7.执行该项目节点文件

在终端输入 ros2 run 功能包名 节点名

ros2 run cal_joint_angle joint_node

参考链接:

https://blog.csdn.net/qq_51403009/article/details/133415895

https://blog.csdn.net/aniclever/article/details/135653069

相关推荐

  1. ubuntu22 安装ROS2

    2024-05-13 11:06:07       26 阅读
  2. ubuntu20.04 创建ros环境、创建rospackage

    2024-05-13 11:06:07       47 阅读
  3. Ubuntu 20.04 ROS1 与 ROS2 通讯

    2024-05-13 11:06:07       36 阅读
  4. ros2 ubuntu 20.04 安装 foxy

    2024-05-13 11:06:07       58 阅读
  5. ROS 2 Humble (Ubuntu Jammy)安装配置

    2024-05-13 11:06:07       63 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 11:06:07       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 11:06:07       74 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 11:06:07       61 阅读
  4. Python语言-面向对象

    2024-05-13 11:06:07       71 阅读

热门阅读

  1. Python小程序 - 文件处理1(使用AI工具)

    2024-05-13 11:06:07       31 阅读
  2. 规则引擎drools Part5

    2024-05-13 11:06:07       33 阅读
  3. 开发一款抓大鹅游戏

    2024-05-13 11:06:07       45 阅读
  4. Debug: Pytorch dataloaders OSError: Bad file descriptor

    2024-05-13 11:06:07       35 阅读
  5. leetcode题目7

    2024-05-13 11:06:07       30 阅读
  6. 【二叉树算法题记录】404. 左叶子之和

    2024-05-13 11:06:07       35 阅读
  7. 安卓LeakCanary研究

    2024-05-13 11:06:07       38 阅读
  8. SQLite 语法大全

    2024-05-13 11:06:07       81 阅读
  9. codeforce#939 (div2) 题解

    2024-05-13 11:06:07       124 阅读
  10. 什么是结对编程?

    2024-05-13 11:06:07       31 阅读
  11. Caffe: Convolutional Architecture for Fast Feature Embedding

    2024-05-13 11:06:07       33 阅读
  12. Docker 部署Redis

    2024-05-13 11:06:07       35 阅读