栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

ROS2与C++入门教程-使用参数

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ROS2与C++入门教程-使用参数

来源: https://www.ncnynl.com/archives/201806/2494.html
说明:

介绍如何在ros2中使用参数
步骤:

创建包

cd ~/dev_ws/src
ros2 pkg create --build-type ament_cmake cpp_parameters --dependencies rclcpp

新增cpp_parameters_node.cpp文件在dev_ws/src/cpp_parameters/src目录
内容如下:

#include 
#include 
#include 
#include 

using namespace std::chrono_literals;

class ParametersClass: public rclcpp::Node
{
  public:
    ParametersClass()
      : Node("parameter_node")
    {
      this->declare_parameter("my_parameter", "world");
      timer_ = this->create_wall_timer(
      1000ms, std::bind(&ParametersClass::respond, this));
    }
    void respond()
    {
      this->get_parameter("my_parameter", parameter_string_);
      RCLCPP_INFO(this->get_logger(), "Hello %s", parameter_string_.c_str());
    }
  private:
    std::string parameter_string_;
    rclcpp::TimerBase::SharedPtr timer_;
};

int main(int argc, char** argv)
{
  rclcpp::init(argc, argv);
  rclcpp::spin(std::make_shared());
  rclcpp::shutdown();
  return 0;
}

修改CMakeLists.txt
内容如下:

add_executable(parameter_node src/cpp_parameters_node.cpp)
ament_target_dependencies(parameter_node rclcpp)

install(TARGETS
  parameter_node
  DESTINATION lib/${PROJECT_NAME}
)

安装依赖

cd ~/dev_ws/
rosdep install -i --from-path src --rosdistro foxy -y

编译

colcon build --packages-select cpp_parameters

运行

. install/setup.bash
ros2 run cpp_parameters parameter_node

查看值:

ros2 param get /parameter_node my_parameter

在终端下更改参数值:

运行节点:

ros2 run cpp_parameters parameter_node

新开终端,显示参数列表

ros2 param list

更改值

ros2 param set /parameter_node my_parameter earth

新开终端,查看

ros2 param get /parameter_node my_parameter

在launch文件中更改参数值:

新建cpp_parameters_launch.py,在~/dev_ws/src/cpp_parameters/launch目录下
内容如下:

from launch import LaunchDescription
from launch_ros.actions import Node

def generate_launch_description():
    return LaunchDescription([
        Node(
            package="cpp_parameters",
            executable="parameter_node",
            name="custom_parameter_node",
            output="screen",
            emulate_tty=True,
            parameters=[
                {"my_parameter": "earth"}
            ]
        )
    ])
更改CMakelist.txt
install(
  DIRECTORY launch
  DESTINATION share/${PROJECT_NAME}
)

重新编译

colcon build --packages-select cpp_parameters

运行

. install/setup.bash
ros2 launch cpp_parameters cpp_parameters_launch.py

效果如下:

[parameter_node-1] [INFO] [custom_parameter_node]: Hello earth
暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1015952.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号