/VerticalFarmingAutomation

mobile manipulation to harvest tomatoes in vertical farms

VerticalFarmingAutomation

A three-semester capstone project.
Paper Link

Our team is building a robot that traverses a vertical farming environment to pollinate and harvest tomatoes.
We implemented vertical farming automation software on the Stretch-RE1 platform.
We mainly used ROS as middleware and used Python to code perception, navigation, and manipulation functions on each node and implemented corresponding launch files. For the customized harvester and pollinator to be integrated, we modified the URDF file of the robot and the YAML file to configure motors.
Code Link

Click to view the full video ↓
Full Video Link

I was responsible for manipulation and project management in the Spring 22 semester.

  • Use head camera to detect ArUco marker
  • Subscribe to the ArUco marker topic, which is a twist coordinate published
  • Extract a constant coordinate from the subscribed ArUco marker coordinates
  • Implement inverse kinematics using move_to_pose() Stretch ROS package by
    • Use TF2 to conduct homogeneous transformation for the coordinate viewed at the base link of the robot
    • measure the distance between the base link of the robot and the end of the fully retracted telescopic arm link at its lowest lift height to calculate the offset
    • Add the offset to the desired goal positions
  • Conduct direct offset calibration to improve positional accuracy

I will be focusing on the perception part in the Fall 22 semester.

Manipulation
Manipulation