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.
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
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
harvester_contol
: Contains launch file to start harvester controllersharvester_description
: Contains meshes and URDF specificationsharvester_gazebo
: Contains launch files to start harvester gazebo world. Also includes world sdf filesharvester_moveit
: Contains launch files for MoveIt drivers
Run harvester_test.launch to spawn arm and randomly generated plant.
roslaunch harvester_gazebo harvester_test.launch
The camera view can be seen on the RQT image viewer.
rqt
After testing, interface with harvester-python or your own agent. See havester-python for more details.
- Jonathon Sather
This project is licensed under the BSD 2-CLAUSE - see LICENSE for details.
- harvester-sim based off of kinova-ros