MSCL icon indicating copy to clipboard operation
MSCL copied to clipboard

question about getting "CH_FIELD_SENSOR_RAW_GYRO_VEC"

Open sizsJEon opened this issue 1 year ago • 0 comments

I'm trying to get the gyroscope sensor values via "CH_FIELD_SENSOR_SCALED_GYRO_VEC"

but I can't get the scaled value for it, so I was thinking about getting real sensor value via "CH_FIELD_SENSOR_RAW_GYRO_VEC"

but below code give me a error like

MSCL Version : 62.0.0 rawGyro push euler push setActiveChannelFields terminate called after throwing an instance of 'mscl::Error_MipCmdFailed' what(): The MessageFormat command has failed. (Error Code: 3)

CH_FIELD_SENSOR_RAW_GYRO_VEC are not supported in CLASS_AHRS_IMU? it so, what class I should use for ?

    static float IMUdata;
    std::string str = " ";
    std::cout << "MSCL Version : " << mscl::MSCL_VERSION.str() << std::endl;
    mscl::Connection connection = mscl::Connection::Serial("/dev/ttyACM0", 115200);
    mscl::InertialNode node(connection);
    uint32_t samples_per_second = 500;



    if (node.features().supportsCategory(mscl::MipTypes::CLASS_AHRS_IMU))
    {
      mscl::MipChannels ahrsImuChs;
      ahrsImuChs.push_back(mscl::MipChannel(mscl::MipTypes::CH_FIELD_SENSOR_RAW_GYRO_VEC,
                                                  mscl::SampleRate::Hertz(samples_per_second)));
      std::cout<<"rawGyro push"<<std::endl;

      ahrsImuChs.push_back(mscl::MipChannel(mscl::MipTypes::CH_FIELD_SENSOR_EULER_ANGLES,
                                                  mscl::SampleRate::Hertz(samples_per_second)));
      std::cout<<"euler push"<<std::endl;
      // ahrsImuChs.push_back(mscl::MipChannel(mscl::MipTypes::CH_FIELD_SENSOR_SCALED_GYRO_VEC,
      //                                       mscl::SampleRate::Hertz(samples_per_second)));
      // ahrsImuChs.push_back(mscl::MipChannel(mscl::MipTypes::CH_FIELD_ESTFILTER_ESTIMATED_ORIENT_EULER,
      //                                       mscl::SampleRate::Hertz(samples_per_second)));
      // apply to the node
      std::cout<<"setActiveChannelFields"<<std::endl;
      node.setActiveChannelFields(mscl::MipTypes::CLASS_AHRS_IMU, ahrsImuChs);
      std::cout<<"setActiveChannelFields done"<<std::endl;
    }
    // start sampling

    node.enableDataStream(mscl::MipTypes::CLASS_AHRS_IMU);
    std::cout<<"enableDataStream"<<std::endl;

sizsJEon avatar Apr 24 '24 12:04 sizsJEon