Problem Statement (WIP)

What's implemented?

There are 3 seperate components that implement modular pieces of the solution in an almost satisfactory way:

  • A behavior tree that uses an available C-space to plan and navigate the robot to pre-defined points of interest in the kitchen. If the C-space is not available, it goes on a mapping tour of the environment using pre-defined obstacle-free waypoints  and generates a C-space. 
  • A behavior tree that picks up an object using pre-defined joint angles.
  • A behavior tree that retrieves the pose of known objects (like a jam jar) and uses forward kinematics to convert it into robot frame.

What needs to be implemented?

Taken word by word from the assignment, here's the problem statement :

In order to obtain a 90% score, your robot will need to do the following:

  • navigate on a map of the environment

  • reliably pick three jars from the kitchen counter and place them on the table

  • chairs can be removed from the table

  • the robot arm can remain in a single configuration, with motion only provided by the lift joint

The following features of your system will lead to bonus (up to 8% each)

  • a reactive layer that uses the Lidar sensor to avoid obstacles such as the chairs in the environment anywhere on the map (the evaluator will move the chairs using the mouse)

  • implementing non-trivial kinematics such as bending at the elbow to move back and forth, using the shoulder joint to steer the arm toward the target, or implementing a complete IK solution, e.g. using the ikpy library.

  • retrieving also the three cereal boxes using non-prehensile manipulation such as pushing or poking them to rotate them prior to grasping.

Solution requirements

Here's how I would define the requirements in terms of the most pressing problems needed to address them:

  • The Configuration space generated from mapping shall include all navigable points for the robot and any occupied space must be truly un-navigable.
  • The robot shall be able to navigate from Point A to Point B using a smooth trajectory provided a path exists
  • The robot arm must be able to derive joint angles given a goal in Cartesian space and given a relatively obstacle-free workspace.

With that, let's move on to the Solution.