目标:创建和运行一个具有ROS参数的类
背景
当实现自己节点的时候,可能需要从launch文件中添加参数。本教程的目的是告诉你怎样在c++类中创建这些参数,以及怎样在launch文件中设置。
任务
1、创建一个包
ros2 pkg create --build-type ament_cmake cpp_parameters --dependencies rclcpp
1.1 更新package.xml
<description>C++ parameter tutorial</description> <maintainer email="you@email.com">Your Name</maintainer> <license>Apache License 2.0</license>
2、实现C++节点
创建文件cpp_parameters_node.cpp
#include <chrono> #include <functional> #include <string> #include <rclcpp/rclcpp.hpp> using namespace std::chrono_literals; class MinimalParam : public rclcpp::Node { public: MinimalParam() : Node("minimal_param_node") { this->declare_parameter("my_parameter", "world"); timer_ = this->create_wall_timer( 1000ms, std::bind(&MinimalParam::timer_callback, this)); } void timer_callback() { std::string my_param = this->get_parameter("my_parameter").as_string(); RCLCPP_INFO(this->get_logger(), "Hello %s!", my_param.c_str()); std::vector<rclcpp::Parameter> all_new_parameters{rclcpp::Parameter("my_parameter", "world")}; this->set_parameters(all_new_parameters); } private: rclcpp::TimerBase::SharedPtr timer_; }; int main(int argc, char ** argv) { rclcpp::init(argc, argv); rclcpp::spin(std::make_shared<MinimalParam>()); rclcpp::shutdown(); return 0; }
- libraries Beginner 参数 Clientlibraries beginner参数client libraries beginner接口client libraries插件beginner client libraries beginner文件client libraries beginner client libraries beginner client空间 libraries beginner client colcon prometheus library python client prometheus library client go libraries客户端beginner客户