GithubHelp home page GithubHelp logo

vayu-robotics / ntrip_client Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lord-microstrain/ntrip_client

0.0 0.0 0.0 65 KB

ROS NTRIP client

Home Page: https://github.com/LORD-MicroStrain/ntrip_client

License: Other

Python 87.02% Makefile 8.71% CMake 4.27%

ntrip_client's Introduction

ROS NTRIP Client

Description

ROS node that will communicate with an NTRIP server to receive RTCM connections and publish them on a ROS topic. Also works with network/VRS mountpoints by subscribing to NMEA messages and sending them to the NTRIP server

Important Branches

There are two important branches that you may want to checkout:

  • ros -- Contains ROS1 implementation for this node.
  • ros2 -- Contains ROS2 implementation for this node.

Build Instructions

Building from source

  1. Install ROS and create a workspace: Installing and Configuring Your ROS Environment

  2. Move the entire ntrip_client folder to the your_workspace/src directory.

  3. Install rosdeps for this package: rosdep install --from-paths ~/your_workspace/src --ignore-src -r -y

  4. Build your workspace:

    cd ~/your_workspace
    catkin_make
    source ~/your_workspace/devel/setup.bash

    The source command may need to be run in each terminal prior to launching a ROS node.

Launch the node and publish data

The following command will launch the node. Keep in mind each instance needs to be run in a separate terminal.

roslaunch ntrip_client ntrip_client.launch

Optional launch parameters:

  • host: Hostname or IP address of the NTRIP server to connect to.
  • port: Port to connect to on the server. Default: 2101
  • mountpoint: Mountpoint to connect to on the NTRIP server.
  • authenticate: Whether to authenticate with the server, or send an unauthenticated request. If set to true, username, and password must be supplied.
  • username: Username to use when authenticating with the NTRIP server. Only used if authenticate is true
  • password: Password to use when authenticating with the NTRIP server. Only used if authenticate is true

Topics

This node currently only has two topics of interest:

  • /rtcm: This node will publish the RTCM corrections received from the server to this topic as RTCM messages. These messages can be consumed by nodes such as the microstrain_inertial_driver
  • /nmea: This node will subscribe on this topic and receive NMEA sentence messages which it will forward to the NTRIP server. This is only needed when using a virtual NTRIP server

Docker Integration

VSCode

The easiest way to use docker while still using an IDE is to use VSCode as an IDE. Follow the steps below to develop on this repo in a docker container

  1. Install the following dependencies:
    1. VSCode
    2. Docker
  2. Open VSCode and install the following plugins:
    1. VSCode Remote Containers plugin
  3. Open this directory in a container by following this guide

Make

If you are comfortable working from the command line, the Makefile in the .devcontainer directory can be used to build a development image, and run a shell inside the docker image. Follow the steps below to setup your environment to use the Makefile

  1. Install the following dependencies:
    1. Make
    2. Docker
    3. qemu-user-static (for multiarch builds)
      1. Run the following command to register the qemu binaries with docker: docker run --rm --privileged multiarch/qemu-user-static:register

The Makefile exposes the following tasks. They can all be run from the .devcontainer directory:

  • make build-shell - Builds the docker image and starts a shell session in the image allowing the user to develop and build the ROS project using common commands such as catkin_make
  • make clean - Cleans up after the above two tasks

License

ntrip_client is released under the MIT License - see the LICENSE file in the source distribution.

Copyright (c) 2021, Parker Hannifin Corp.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.