Esempio n. 1
0
    void Start()
    {
        odometryPublisher = node.CreatePublisher <nav_msgs.msg.Odometry>(OdometryTopic);
        tfPublisher       = node.CreatePublisher <tf2_msgs.msg.TFMessage>(TfTopic);

        clock = new rclcs.Clock();

        odometryMsg = new nav_msgs.msg.Odometry();
        odometryMsg.header.frame_id = "/odom";
        odometryMsg.child_frame_id  = "/base_footprint";
        robotPose  = odometryMsg.pose;
        robotTwist = odometryMsg.twist;

        tfMsg = new tf2_msgs.msg.TFMessage();
        tfMsg.transforms_init(1);
        tfTransformStamped = tfMsg.transforms[0];
        tfTransformStamped.header.frame_id = "/odom";
        tfTransformStamped.child_frame_id  = "/base_footprint";

        odometryMsg.pose.covariance  = poseCovarianceDiagonal.CovarianceMatrixFromDiagonal();
        odometryMsg.twist.covariance = twistCovarianceDiagonal.CovarianceMatrixFromDiagonal();

        if (BaseRigidbody == null)
        {
            BaseRigidbody = GetComponentInChildren <Rigidbody>();
        }
    }
Esempio n. 2
0
    private nav_msgs.msg.Odometry CreateOdometryMsg()
    {
        var msg = new nav_msgs.msg.Odometry();

        msg.Child_frame_id  = "/base_footprint";
        msg.Header.Frame_id = "/odom";

        // TODO(sam): Add support for fixed size arrays to rcl_dotnet
        // msg.Pose.Covariance = poseCovarianceDiagonal.CovarianceMatrixFromDiagonal();
        // msg.Twist.Covariance = twistCovarianceDiagonal.CovarianceMatrixFromDiagonal();

        return(msg);
    }
Esempio n. 3
0
    //private List<double> poseCovarianceDiagonal = new List<double> { 0.001d, 0.001d, 0.001d, 0.001d, 0.001d, 0.03d };
    //private List<double> twistCovarianceDiagonal = new List<double> { 0.001d, 0.001d, 0.001d, 0.001d, 0.001d, 0.03d };

    protected override void StartRos()
    {
        odometryMsg       = CreateOdometryMsg();
        odometryPublisher = node.CreatePublisher <nav_msgs.msg.Odometry>(OdometryTopic);

        tfMsg       = CreateTfMsg();
        tfPublisher = node.CreatePublisher <tf2_msgs.msg.TFMessage>("tf");

        if (BaseRigidbody == null)
        {
            BaseRigidbody = GetComponent <Rigidbody>();
        }

        StartCoroutine("PublishOdometry");
        if (PublishTf)
        {
            StartCoroutine("PublishTfRoutine");
        }
    }