本文简述:在 Ubuntu22.04 系统中使用 VS Code 来搭建一个ROS2开发项目。
ROS2 安装:
可以运行下面的命令,一键安装:
wget http://fishros.com/install -O fishros && . fishros
1. 创建工作空间
本文假设配置完成 VS Code,C++ 环境(g++/gdb)。具体步骤可参考:Ubuntu 22.04: VS Code 配置 C++ 编译及 CMake
1.1 创建目录
选择文件夹作为工作空间,并在这个文件夹下,创建 src 子文件夹。
cd btl_ros_project/
mkdir src
1.2 编译工作空间
在创建好的功能包中,继续完成代码的编写,完成后需要编译和配置环境变量,才能正常运行:
colcon build # 编译工作空间所有功能包
source install/local_setup.bash #配置环境初始化
执行命令后,文件夹内出现了一些新的文件夹:build, install, log。
创建工作空间时需要编译,以后创建功能包,修改代码后都要重新编译。
1.3 设置环境变量, 初始化工作区
编译完成后,还需要设置环境变量才能让系统知道这个工作空间内有哪些功能包和可执行文件,因此还需要设置环境变量。这一步的作用是初始化工作区。
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
设置环境变量的操作在每次编译之后都要执行。
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 包含多种语言的功能包
建议一个节点仅使用一种语言,通过修改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
构建项目
在项目工作空间的src目录下,运行:
cd src
colcon build
6. 设环境变量
source install/local_setup.sh
7. 执行该项目节点文件
在终端输入 ros2 run 功能包名 节点名
ros2 run cal_joint_angle joint_node
参考链接:
1. https://blog.csdn.net/qq_51403009/article/details/133415895
2.https://blog.csdn.net/aniclever/article/details/135653069