polyhobbyist / ros_qwiic_icm_20948

MIT License
3 stars 1 forks source link

Parameter not being set #2

Open Usimian opened 1 year ago

Usimian commented 1 year ago

In the process of debugging something else, I tried setting a parameter in the launch file and nothing happened. Looks like the parameters were being read before they were declared. I moved the declare_parameter stmts to the node before being read:

  I2CPublisher()
      : Node("ros_qwiic_icm_20948"), _id(0)
  {
    declare_parameter<uint8_t>("i2c_address", 0x5D);
    declare_parameter<std::string>("frame_id", "imu");
    declare_parameter<std::string>("topicImu", "/imu/data_raw");
    declare_parameter<std::string>("topicMag", "/imu/mag");
    declare_parameter<double>("poll", 15.0);

    get_parameter<uint8_t>("id", _id);
    get_parameter<std::string>("frame_id", _frameId);
    get_parameter<std::string>("topicImu", _topicImu);
    get_parameter<std::string>("topicMag", _topicMag);
    get_parameter<double>("poll", _poll);

    Wire.begin();
...