/harvester-sim

Simulated strawberry harvesting environment using ROS and Gazebo.

Primary LanguageCMakeBSD 2-Clause "Simplified" LicenseBSD-2-Clause

harvester-sim

harvester-gif

Virtual harvesting environment using ROS and Gazebo. Originally used by Jonathon Sather in his research on autonomous strawberry harvesting (paper) (video summary).

This stack is a fork of kinova-ros that includes a simulated strawberry world with a procedurally generated strawberry plant.

Dependencies

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

# Set up keys (valid as of 6/30/2019)
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

# Install ROS kinetic
sudo apt-get update
sudo apt-get install -y ros-kinetic-desktop-full

# Initialize rosdep
sudo apt-get update
sudo rosdep init
rosdep update  # No sudo here

# Install related packages
sudo apt-get install python-rosinstall \
                   python-rosinstall-generator \
                   python-wstool \
                   build-essential \
                   ros-kinetic-ros-control \
                   ros-kinetic-ros-controllers \
                   ros-kinetic-gazebo-ros-control \
                   ros-kinetic-trac-ik-kinematics-plugin
sudo apt-get install ruby 
sudo gem install rubystats

Installation

Clone the repo into your catkin workspace and build using catkin_make.

cd ~/catkin_ws/src
git clone https://github.com/jsather/harvester-sim.git
cd ~/catkin_ws
catkin_make
source devel/setup.bash

Add the harvester world and model files to your Gazebo path.

export GAZEBO_RESOURCE_PATH=~/catkin_ws/src/harvester-sim/harvester_gazebo:$GAZEBO_RESOURCE_PATH
export GAZEBO_MODEL_PATH=~/catkin_ws/src/harvester-sim/harvester_gazebo/models:$GAZEBO_MODEL_PATH

File System

  • harvester_contol: Contains launch file to start harvester controllers
  • harvester_description: Contains meshes and URDF specifications
  • harvester_gazebo: Contains launch files to start harvester gazebo world. Also includes world sdf files
  • harvester_moveit: Contains launch files for MoveIt drivers

Usage

Verify setup

Run harvester_test.launch to spawn arm and randomly generated plant.

roslaunch harvester_gazebo harvester_test.launch

env

The camera view can be seen on the RQT image viewer.

rqt

Next steps

After testing, interface with harvester-python or your own agent. See havester-python for more details.

Author

  • Jonathon Sather

License

This project is licensed under the BSD 2-CLAUSE - see LICENSE for details.

Acknowledgments