创建工作区以及功能包方法:
一,什么是工作区以及功能包
工作区:顾名思义就是存放你整个项目的根目录。在接下来的编码中你都是基于这个工作空间进行的。
功能包:功能包都分别存放在工作区中,每个功能包里面都会各自的节点,每个节点又会有各自的功能。
二,如何创建
1.创建工作区node_ws目录
(1)新建一个目录,用来存放你的代码以及项目。
(2)在这个目录中,新建一个工作区,一般命名为“{工作区的名称}_ws”。
2.node_ws中创建工作区:
colcon build
点击node_ws右键,在终端中打开,然后输入“colcon build”
会发现生成了几个文件夹。
3.在src下创建功能包:
再次在左侧工作区,点击src,右键,在终端中打开。
输入这些指令即可创建你的功能包
ros2 pkg create demo_cpp_topic --build-type ament_cmake --dependencies rclcpp geometry_msg turtlesim --license Apache-2.0
ros2 pkg creat demo_python_topic --build-type ament_python --dependencies rclpy example_interfaces --license Apache_2.0
ros2 pkg creat {功能包name} --build-type {创建方式:ament_cmake,ament_python} --dependencies {依赖的包名} --license {证书名}
3.1 CPP
1.在功能包的scr下新建自己的代码文件
2.在C/C++配置文件中更改includepath(当使用依赖的包时,需要导入包的路径)
加入"/opt/ros/jazzy/include/**
"
3.在code_ws/src/demo_cpp_topic/src中编写代码
4.编写CMakeLists.txt
# find dependencies
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(geometry_msgs REQUIRED)
find_package(turtlesim REQUIRED)
#创建可执行文件(可执行文件 代码文件)
add_executable(turtle_circle src/turtle_circle.cpp)
#添加依赖
ament_target_dependencies(turtle_circle rclcpp geometry_msgs turtlesim)
#安装可执行文件到install目录
install(TARGETS
turtle_circle
DESTINATION lib/${PROJECT_NAME}
)
5.在工作区code_ws下执行
colcon build
6.配置setup.bash
source install/setup.bash
7.执行功能包下的节点
ros2 run demo_cpp_topic turtle_circle
3.2Python
1.在功能包的scr下新建自己的代码文件
2.编写代码
3.在setup.py中加入功能包中节点的函数
4.在工作区code_ws下执行
colcon build
5.配置setup.bash
source install/setup.bash
6.执行功能包下的节点
ros2 run demo_cpp_topic turtle_circle