ROS Interface for harvest automation robots
This project is made up the
hv_bridge and two demo nodes,
harvey. The hv_bridge node is the ROS communication interface with the hv robots and must be run along with either demo node. This bridge takes ros topics and sends them over a network connection to the hv robot. The data is sent from a python client to a C server, so the data is parsed on the client side by the struct package. The teleop node handles remote operation of the wheels, arm and gripper of the hv robot. The Harvey node extends the built in follow me functionality, with a basic track back and and pick up pot features.
This project is intended to cover standard communication needs with the robots, however it is also setup to be easily extended to add additional functionality. The robots themselves support almost 4000 message types or probes and the system is configured to handle data that is written to the robot at an interval from a ROS subscriber, data that is read from the robot at an interval to a ROS publisher, and data that is written to the robot a single time from a ROS service.
To run this connection with the hv robots a computer that can run ROS Melodic is required, and a network connection to the robot.
For information on how to connect to the robots, configure the project and run the project go to Setup
Modifying The Connection
This project is intended to be extended if required to gain the full benefits from the hv robots. If you need additional data from the robot follow the simple steps on a fork of the project, or submit the addition to be added to this project.
For information on how to add in a new controller go to Writers
For information on how to add in a new sensor interface go to Readers
For information on how to add in a new controller go to ROS Services
If less information is required, the launch files can be modified to only use a subset of the sensors, controllers, and services. running
rosrun hv_bridge main_node -h will give you the information about the various options.
The client connection is based on Harvest Automation Mindprobe and creates a single pipe connection between the the python client and the C server. This connection uses TLV packets to transmit data in a simple form that can be interpreted by both languages. The
client.py contains basic client connection functionality, and the
hv_client.py is a child class that extends the client with functionality specific to the connection to ROS.
For information on the Client connection go to Client