ros2
创建节点
ros2 pkg create --build-type ament_cmake --license Apache-2.0
cmakelists添加
find_package(rclcpp REQUIRED)
add_executable(启动名字 cpp文件地址)
ament_target_dependencies(启动名字 rclcpp)
install(TARGETS 启动名字
DESTINATION lib/${PROJECT_NAME}
)
add_executable( [source1] [source2] [source3] ...)
写代码
头文件
/opt/ros/humble/include/**
#include "rclcpp/rclcpp.hpp"
// 步骤1: 初始化ROS 2客户端库
rclcpp::init(argc, argv);
// 步骤2: 创建名为"chao_node"的节点
auto node = std::make_shared<rclcpp::Node>("xxx_node");
// 步骤3: 使用节点(这里只是打印日志)
RCLCPP_INFO(node->get_logger(), "节点已启动!");
// 步骤4: 让节点持续运行,等待消息和请求
rclcpp::spin(node);
// 步骤5: 关闭ROS 2客户端库
rclcpp::shutdown();
编译(对包的)
pkg路径下
colcon build
source install/setup.bash
ros2 run 包名 启动名
ros2 run demo_cpp_pkg cpp_node
ros1的包都在catkin_ws/src 中 可以自己命名为xxx_pkg
package.xml 这个文件包包括依赖信息
写新的的时候要注意添加
gedit ~/.bashrc
source /opt/ros/humble/setup.bash
在 ~/.bashrc
中添加 setup.bash
文件的源(source)命令,是为了在每次打开新的终端时自动设置ROS(ROS 1或ROS 2)或其他软件框架的工作环境
source ~/ros_ws/devel/setup.bash # ROS 1
source ~/ros2_ws/install/setup.bash # ROS 2
对代码的
cd build
cmake ../
make
./xxx_node