Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9085167
  • 博文数量: 1732
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 19830
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1732)

文章存档

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: 其他平台

2020-08-03 19:38:17

在 rclcpp中
    motor_node = std::make_shared();
    motor_node->declare_parameter("wheels.radius");    
    motor_node->declare_parameter("wheels.separation");
    
    motor_node->declare_parameter("chasiss_sv.max_linear");   
    motor_node->declare_parameter("chasiss_sv.min_linear");
    motor_node->declare_parameter("chasiss_sv.max_angular");
    motor_node->declare_parameter("chasiss_sv.min_angular");


    motor_node->declare_parameter("chasiss_sensors.inc_compass");   
    motor_node->declare_parameter("chasiss_sensors.inc_beep");
    motor_node->declare_parameter("chasiss_sensors.inc_fall");
    motor_node->declare_parameter("chasiss_sensors.inc_bumper");


    def_chassis_config.wheel_radius = motor_node->get_parameter("wheels.radius").as_double();
    def_chassis_config.wheel_separation = motor_node->get_parameter("wheels.separation").as_double();
    def_chassis_config.max_linear_velocity = motor_node->get_parameter("chasiss_sv.max_linear").as_double();
    def_chassis_config.min_linear_velocity = motor_node->get_parameter("chasiss_sv.min_linear").as_double();
    def_chassis_config.max_angular_velcity = motor_node->get_parameter("chasiss_sv.max_angular").as_double();
    def_chassis_config.min_angular_velcity = motor_node->get_parameter("chasiss_sv.min_angular").as_double();


    def_chassis_config.inc_compass = motor_node->get_parameter("chasiss_sensors.inc_compass").as_bool();
    def_chassis_config.inc_beep = motor_node->get_parameter("chasiss_sensors.inc_beep").as_bool();
    def_chassis_config.inc_fall = motor_node->get_parameter("chasiss_sensors.inc_fall").as_int();


=======================================================================================================
=============================== 范例  =========================================================
=======================================================================================================
motor_node:  -->要和 launch 文件的 node 的name 相同.
  ros__parameters:


    wheels:
      radius: 0.0750
      separation: 0.360


    chasiss_sv:
      max_linear: 0.78540
      min_linear: -0.78540
      max_angular: 2.8435
      min_angular: -2.8435


    chasiss_sensors:
      inc_compass: true
      inc_fall: 0
      inc_bumper: 0
      inc_beep : true




=============  launch 文件中 =============================
def generate_launch_description():
# 从 ROS2_ENV获取当前机器人的型号.
    BIGROBOT_MODEL = os.environ['BIGROBOT_MODEL']
    #找到配置文件的路径
    big_param_dir = LaunchConfiguration(
        'big_param_dir',
        default=os.path.join(
            get_package_share_directory('big_bringup'),
            'param',
            BIGROBOT_MODEL + '_size.yaml'))


    return LaunchDescription([
        DeclareLaunchArgument(
            'big_param_dir',
            default_value=big_param_dir,
            description='Full path to bigrobot size parameter file to load'),


        Node(
            package='big_bringup',
    name='motor_node',  ---> 对应 yaml 的 定义头.
            executable='hw_motor_node',
            parameters=[big_param_dir],
            output='screen'),
    ])


直接执行. 能够取到对应的参数.
ros2 launch big_bringup motor.launch.py 
或者
ros2 run big_bringup hw_motor_node --ros-args -r __ns:=/  --params-file /work/ROS2/rolling_ridley/install/big_bringup/share/big_bringup/param/ant_robot_size.yaml
阅读(3084) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~