Coder Social home page Coder Social logo

water_sampler_ros's Introduction

water-sampler-ros

ROS driver for the Atlas Scientific water sampler

Description

This ROS package provides a driver for Atlas Scienfitic's EZO-PMP water dosing pumps (in python), as well as a ROS node for advertising services for operations with the pump, such as check pump state, fill pump, etc. Specifically, the PMP driver implements functions which issue commands to the pumps via I2C (e.g., report dosing volume, fill doser up to X mL), and the ROS sampler service node externalizes these functions as ROS services, so any system in the ROS environment can call them.

This package was primarily designed to be used on a Raspberry Pi Zero, controlling four pumps on a Platypus Lutra Prop autonomous boat, for water quality monitoring applications. Although the water sampler was designed and built by Platypus LLC, the electronics and software were replaced compared to the original. The hardware and electrical connection schematics required to use it are illustrated below in Fritzing. Alt text

We named the four pumps with numbers from 0 to 3, and address them internally in the PMP driver. Some modification may be required to use the package with other platforms and/or pump addresses. Our conventions for naming and addressing the pumps are:

  • Pump 0 <--> Address 0x01
  • Pump 1 <--> Address 0x02
  • Pump 2 <--> Address 0x03
  • Pump 3 <--> Address 0x04

When fully assembled, the Sampler should look like the figure below. The four pumps are each connected to a container, with a diameter and height of aproximately 82.6 mm and 96 mm, respectively. Alt text

Alt text

Usage

With a roscore running, simply run the sampler_srv_node.py node:

rosrun water_sampler_ros sampler_srv_node.py

This will advertise the sampler services, which can be seen with the "rosservice list" command. The services and their arguments are:

  • /sampler/fill_pump ----> Args: pump_number mL
  • /sampler/check_pump_state ----> Args: pump_number
  • /sampler/empty_pump ----> Args: pump_number
  • /sampler/stop_pump ----> Args: pump_number

Installation

  • Clone the package to your catkin workspace
cd ~/catkin_ws/src
git clone https://github.com/disaster-robotics-proalertas/water-sampler-ros
  • Make the catkin environment
cd ~/catkin_ws/
catkin_make
  • Source your catkin environment
source ~/catkin_ws/devel/setup.bash

Dependencies

To-Do:

  • Test the package on-site (river or basin) in the autonomous boat [DONE]
  • Advertise the PMP driver functions as actions instead of services (can interrupt, halt or abort actions, with appropriate feedback)

Acknowledgements

  • Platypus LLC: Mechanical design and physical construction of the water sampler

Collaborators

water_sampler_ros's People

Contributors

amamory avatar igorsouzaa avatar marquesghm avatar rgmaidana avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

benjamesbabala

water_sampler_ros's Issues

design credit to Platypus

Please include at the end the credits to Platypus for the physical/mechanical design. Also mention the electronics/software has been replaced compared to the original.

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.