Conveyor Interface

This package handles Niryo’s Conveyors.
It allows you to control up to two Conveyors at the same time.

Two version of the conveyor exist: The Conveyor Belt, communicating via a CAN bus, and the Conveyor Belt (V2), communicating via a TTL bus. Both of them are directly compatible for the Ned and One. For Ned2, you will need to change the stepper card of the CAN Conveyor Belt to be able to use it on a TTL port (there is no CAN port on Ned2).

Conveyor Interface node (For development and debugging purpose only)

This ROS Node has been conceived to:
  • Use the correct low level driver according to the hardware version of the robot.
  • Initialize the Conveyor Interface.

Conveyor Interface core

It is instantiated in Niryo Robot Hardware Interface package.

It has been conceived to:
  • Interface itself with low level drivers (CAN or TTL for Ned and Niryo One, TTL only for Ned2)
  • Initialize conveyor motors parameters.
  • Handle the requests from services to set, control or remove the conveyors.
  • Publish conveyor states.

It belongs to the ROS namespace: /niryo_robot/conveyor/.

Parameters

Conveyor Interface’s Parameters
Name Description
publish_frequency
Publishing rate for conveyors state.
Default: ‘2.0’
type
Type of the motor used.
Default: ‘Stepper’
protocol
Protocol of the communication.
It can be ‘CAN’ (for Ned or One) or ‘TTL’ (for Ned or One or Ned 2)
default_id
Default id of the conveyor before the connection.
Pool_id_list
Id of the conveyor after the connection.
Direction
Direction of the conveyor.
max_effort (CAN Only)
Max effort used by the steppers
Default: ‘90’
micro_steps (CAN only)
Micro steps used by the Steppers
Default: ‘8’

Published topics - Conveyor interface

Conveyor Interface’s Published Topics
Name Message Type Description
feedback ConveyorFeedbackArray Conveyors states

Services

Conveyor Interface Package Services
Name Message Type Description
control_conveyor ControlConveyor Sends a command to the desired Conveyor
ping_and_set_conveyor SetConveyor Scans and sets a new Conveyor or removes a connected Conveyor

Dependencies - Conveyor interface

Services & messages files - Conveyor interface

ControlConveyor (Service)

uint8 id

bool control_on
int16 speed
int8 direction 
---
int16 status
string message

SetConveyor (Service)

uint8 cmd
uint8 id

uint8 ADD = 1
uint8 REMOVE = 2

--- 
int16 id
int16 status
string message

ConveyorFeedbackArray (Message)

conveyor_interface/ConveyorFeedback[] conveyors

ConveyorFeedback (Message)

#Conveyor id ( either 12 or 18)
uint8 conveyor_id
#Conveyor Connection state ( if it is enabled) 
bool connection_state
# Conveyor Controls state : ON or OFF
bool running
# Conveyor Speed ( 1-> 100 %)
int16 speed
# Conveyor direction ( backward or forward)
int8 direction