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.