Coder Social home page Coder Social logo

viam-ros-module's Introduction

Viam & ROS Melodic

In the office we have an old Yahboom ROS Robot which was parked in the lab closet. We thought it would be fun to see if we could use Viam and integrate it with ROS to

  1. collect data from the robot in real time
  2. store the data in the cloud
  3. integrated with both the Viam ML and SLAM services
  4. Build an internet enabled web app and mobile app

Installation

First, we need to install viam on the system where ROS is running.

If you have a transbot (or similar yahboom robot) running ROS Melodic and would like to see how viam works with ROS, you can install this module from the viam registry. If you have a Robot running ROS that is not a yahboom, we might need to add some custom messages as well as new topics.

see the BUILDING.md document for more instructions.

Design Decisions

After getting the jetson flashed and built according to the Yahboom tutorial, we made a decision to use the goroslib open source library to integrate with the Viam GO SDK. ROS Melodic makes use of Python 3.6.9, the viam SDK requires Python 3.9 or greater.

To prove out our idea we wanted to implement the basic set of options:

  1. twist messages
  2. capture image data
  3. capture lidar data
  4. capture imu data
  5. capture sensor data from custom messages

The cmd/module/cmd.go file is the entry point into the program, this will start a rosnode using the goroslib module, we create one node per roscore primary address. Typically only one node will be created.

This node will support subscriptions and publishers to the various nodes.

We wanted to stay away from adding any ros packages (i.e. ros-bridge etc.) to ensure we don't cause any collision with software that was existing.

Contributing

We welcome pull requests and issues, if there are any issues you can email:

[email protected] [email protected]

Supported components

  1. The base converts Viam grpc calls to twist messages which are published to the /cmd_vel topic
  2. The camera converts ROS Image messages to jpg format to be processed by Viam.
  3. The lidar converts ROS LaserScan messages to Viam pointcloud data.
  4. The imu converts ROS IMU Message to Viam movementsensor data.
  5. The battery sensor converts the Transbot Battery message to Viam sensor data
  6. The edition sensor converts the Transbot Edition message to Viam sensor data

References

  1. viam documentation
  2. goroslib
  3. ROS Melodic
  4. Yahboom Tutorial
  5. Viam Go Documentation

viam-ros-module's People

Contributors

shawnbmccarthy avatar erh avatar

Watchers

James Cloos avatar  avatar  avatar

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.