Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
sainavaneet committed Dec 10, 2024
1 parent 40064ff commit d21aef9
Show file tree
Hide file tree
Showing 27 changed files with 871 additions and 5 deletions.
Binary file modified .DS_Store
Binary file not shown.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
*.Rmd
*.Rproj

*.html
87 changes: 87 additions & 0 deletions Harvesting.egg-info/PKG-INFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
Metadata-Version: 2.1
Name: Harvesting
Version: 0.1.0
Summary: A package for the harvesting robot project
Home-page: https://github.com/sainavaneet/Harvesting
Author: Sai Navaneet
Author-email: sainavaneet@knu.ac.kr
License: UNKNOWN
Description: Cucumber harvesting using Object Detecion
================

## Introduction

This repository is dedicated to the development of a cucumber harvesting
system that utilizes custom object detection with `YOLOv11`. After
detecting cucumbers, we generate specific actions for two types of
robots: the `ViperX 300s` arm robot and an `Automated Guided Vehicle`
(AGV) robot.

The primary aim of this project is to create a comprehensive `dataset`
that captures both the actions performed by the robots and the images
taken during the harvesting process. This dataset is a crucial resource
for developing and refining algorithms that will enhance future robotic
harvesting techniques.

By systematically recording a wide array of interactions and scenarios,
we not only improve the efficiency of current systems but also lay a
robust foundation for future advancements in agricultural robotics. This
initiative represents a significant step forward in automating and
optimizing the harvesting process through the integration of advanced
machine learning models and robotic technology.

## 🛠️ Prerequisites

- **Ubuntu 20.04** 🐧

- **Interbotix Packages** 🤖

- **Python** 🐍

- **ROS** 🤖

- **interbotix_ws : -**

## 🚀 Installation

To get started with this frame work, follow these steps:

``` bash

git clone https://github.com/sainavaneet/Harvesting.git

cd Harvesting/

conda create -n harvest python=3.8.10
conda activate harvest
pip install pyquaternion
pip install pyyaml
pip install rospkg
pip install pexpect
pip install opencv-python
pip install matplotlib
pip install einops
pip install packaging
pip install h5py
pip install ipython

```

## 🗂 Project Structure

## Launch

``` bash
source interbotix_ws/devel.setup.bash

cd ~/Harvesting/launch/

roslaunch robot.launch use_rviz:=false use_sim:=False # if you need in simulation use True
```

Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8, <3.9
Description-Content-Type: text/markdown
7 changes: 7 additions & 0 deletions Harvesting.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
README.md
setup.py
Harvesting.egg-info/PKG-INFO
Harvesting.egg-info/SOURCES.txt
Harvesting.egg-info/dependency_links.txt
Harvesting.egg-info/requires.txt
Harvesting.egg-info/top_level.txt
1 change: 1 addition & 0 deletions Harvesting.egg-info/dependency_links.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

11 changes: 11 additions & 0 deletions Harvesting.egg-info/requires.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
einops
h5py
ipython
matplotlib
opencv-python
packaging
pexpect
pyquaternion
pyyaml
rospkg
ultralytics
1 change: 1 addition & 0 deletions Harvesting.egg-info/top_level.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

15 changes: 14 additions & 1 deletion README.md
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,24 @@ machine learning models and robotic technology.
To get started with this frame work, follow these steps:

``` bash

git clone https://github.com/sainavaneet/Harvesting.git

cd Harvesting/

pip install -r requirements.txt
conda create -n harvest python=3.8.10
conda activate harvest
pip install pyquaternion
pip install pyyaml
pip install rospkg
pip install pexpect
pip install opencv-python
pip install matplotlib
pip install einops
pip install packaging
pip install h5py
pip install ipython

```

## 🗂 Project Structure
Expand Down
Empty file added __init__.py
Empty file.
Binary file added __pycache__/var.cpython-38.pyc
Binary file not shown.
Empty file modified base_control/__pycache__/agv_control.cpython-38.pyc
100644 → 100755
Empty file.
Empty file modified base_control/agv_control.py
100644 → 100755
Empty file.
Empty file modified base_control/examples/move_6s_back.py
100644 → 100755
Empty file.
Empty file modified base_control/examples/move_6s_forward.py
100644 → 100755
Empty file.
15 changes: 15 additions & 0 deletions config/vx300s.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
port: /dev/ttyDXL_puppet_left


groups:
arm:
operating_mode: position
profile_type: time
profile_velocity: 5000
profile_acceleration: 300
torque_enable: false

singles:
gripper:
operating_mode: position
torque_enable: True
33 changes: 32 additions & 1 deletion harvest.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,9 @@ def set_end_effector_pose(self, x, y, z, moving_time):
self.bot.arm.set_ee_pose_components(x=x, y=y, z=z, moving_time=moving_time)


def move_to_start(self):
self.base_robot.move_to_start()


def operation(self, cucu_id):

Expand Down Expand Up @@ -90,11 +93,39 @@ def operation(self, cucu_id):

self.place_in_basket()

def perform_task(self):

self.operation('cucu1')

self.move_forward()

self.operation('cucu2')

self.operation('cucu3')

self.move_forward()

self.operation('cucu4')
self.operation('cucu5')

self.move_forward()

self.operation('cucu6')
self.operation('cucu7')

self.move_forward()

self.operation('cucu8')
self.move_forward()
self.operation('cucu9')

self.move_to_start()



if __name__ == "__main__":
task = Harvest()

task.operation('cucu1')
task.perform_task()


Binary file added images/obj_detection.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Empty file modified index.md
100644 → 100755
Empty file.
38 changes: 38 additions & 0 deletions launch/robot.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<launch>

<!-- Arguments -->
<arg name="robot_model_puppet" default="vx300s"/>

<arg name="base_link_puppet" default="base_link"/>

<arg name="puppet_modes_left" default="/home/dexweaver/Github/cucumber-harvesting/config/vx300s.yaml"/>

<arg name="launch_driver" default="true"/>
<arg name="use_sim" default="true"/>
<arg name="use_rviz" default="false"/>


<arg name="robot_name_puppet_left" value="puppet_left"/>


<!-- Puppet Left Robot -->
<include if="$(arg launch_driver)" file="$(find interbotix_xsarm_control)/launch/xsarm_control.launch">
<arg name="robot_model" value="$(arg robot_model_puppet)"/>
<arg name="robot_name" value="$(arg robot_name_puppet_left)"/>
<arg name="base_link_frame" value="$(arg base_link_puppet)"/>
<arg name="use_world_frame" value="false"/>
<arg name="use_rviz" value="false"/>
<arg name="mode_configs" value="$(arg puppet_modes_left)"/>
<arg name="use_sim" value="$(arg use_sim)"/>
</include>


<node
name="puppet_left_transform_broadcaster"
pkg="tf2_ros"
type="static_transform_publisher"
args="0.0 0.0 0 0 0 0 /world /$(arg robot_name_puppet_left)/base_link"/>

<node if="$(arg use_rviz)" pkg="rviz" type="rviz" name="rviz_puppet_left" args="-d /home/dexweaver/Github/cucumber-harvesting/rviz/puppet_left.rviz"/>

</launch>
11 changes: 11 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
pyquaternion
pyyaml
rospkg
pexpect
opencv-python
matplotlib
einops
packaging
h5py
ipython
ultralytics
Loading

0 comments on commit d21aef9

Please sign in to comment.