README.md 3.14 KB
Newer Older
1 2 3 4
# AGTECH
bridging application to connect the harvest vehicle robots with the robotics operating system.

### Documentation
Nicholas Shindler's avatar
Nicholas Shindler committed
5
see [wiki](https://gitsvn-nt.oru.se/hkan/harvest-automation/wikis/home) for full documentation.
6

7 8 9 10 11
#### Project Notes
This project manages comunication with the Harvest Automation Robots and ROS Melodic. This project has been designed to be run using Ubuntu 18 on a PC or Ubuntu Server 18 on a RaspberryPi 4. No other configurations have been tested, and not other versions of ROS have been tested. 

A preconfigured RaspberryPi disk image (for a 32GB disk) can be downloaded [here](https://cloud.oru.se/s/DJ4sG9yTLsiMZ38), specific instructions for setup can be found in the [Wiki](https://gitsvn-nt.oru.se/hkan/harvest-automation/wikis/setup).

12 13 14 15 16 17 18 19
### Open Source
this is being developed with Orebro University and is for academic use.

### Harvest AI
this is for harvest vehicle robots, property of a private company and therefore some of the resources being used for development are not publically available.

### Project Structure
```
Nicholas Shindler's avatar
Nicholas Shindler committed
20 21 22 23 24 25
*harvey*: demo project written in c++
	|--- include: header files
	|--- src: main 
	|--- srv: service files
	|--- lib: suplemental classes
*hv_bridge*: interface between mindprobe and ros
Nicholas Shindler's avatar
Nicholas Shindler committed
26
	|--- libs 
Nicholas Shindler's avatar
Nicholas Shindler committed
27 28 29 30
		|--- Controllers
			|--- arm: subcribes to arm commands and writes to robot
			|--- gipper: subcribes to gripper commands and writes to robot
			|--- drive: subcribes to velocity commands and writes to robot
Nicholas Shindler's avatar
Nicholas Shindler committed
31 32
		|--- Resources: utility python scripts for the python nodes
			|--- client: base class for the client application for communicating with the robot
Nicholas Shindler's avatar
Nicholas Shindler committed
33
			|--- config: static variables shared by the hv_bridge classes
Nicholas Shindler's avatar
Nicholas Shindler committed
34 35 36 37
			|--- listener: class for creating a listener thread in the client connection to the robot
			|--- reader: base class for reading from the robots
			|--- utils: for functions that are used in multiple classes/files
			|--- writer: base class for writing to the robots
Nicholas Shindler's avatar
Nicholas Shindler committed
38 39 40 41 42 43 44 45 46 47 48
		|--- Sensors
			|--- hub: central connection for all sensor listener classes, handles assigning data to each listener
			|--- ir: class for the collection, formating, and publishing of IR camera data
			|--- lidar: class for the collection, formating, and publishing of LIDAR sensor data
			|--- odometry: class for the collection, formatting, and publishing of positional data
			|--- gripper: class for the collection, formatting, and publishing of the gripper and gripper arm states
		|--- Services
			|--- avoid: toggle the avoid obstacle functionality
			|--- follow: toggle the follow person functionality
			|--- pick_target: set a pot location
	|--- scripts
Nicholas Shindler's avatar
Nicholas Shindler committed
49 50
		|--- hv_client: extension of the client application for connecting to the hv robot
		|--- main_node: ros node file
Nicholas Shindler's avatar
Nicholas Shindler committed
51 52 53 54 55
	|--- srv: ros services
		|--- mp_set_target: set xy coordinates for a probe 
		|--- mp_toggle: toggle a boolian value for a probe
*hv_teleop*: ros teleop node
	|--- teleop_node: remote control of the gripper using computer keyboard commands
56
*hai_launch*: ROS launch files
Nicholas Shindler's avatar
Nicholas Shindler committed
57 58 59
	|--- hv_bridge: lauch the bridge
	|--- harvey: lauch the bridge + the demo application
	|--- hv_teleop: lauch the bridge + the teleop node
60
*mindprobe_scripts*: HAi scripts for mindprobe server and client.
Nicholas Shindler's avatar
Nicholas Shindler committed
61
```