C Programmer Needed
Paid on delivery
Title: C programmer needed for robotics task
C programmer needed for a robotics task. Bonus points if you have PID or control theory experience. Must be in the United States.
There is a 5 DoF (degree of freedom) robot arm. There are low-level routines to home, read the current position of all the actuators, move to a coordinate, plan and execute a trajectory.
There are some objects fixed relative to the robot arm. The general number, shape and position of the objects are known, but not their exact shape and not their exact position. The task:
1) Create a generic map of the objects based on key points and orientations of the objects. Encode this map in data structures.
2) Use the generic map to position the robot arm effector in the general vicinity of the objects and probe for the exact locations and orientations of the objects by sweeping the robot arm effector and touching off the objects to determine their exact locations and orientations. Store the updated map of the objects.
3) The relative locations and orientations between the objects will not change, but the robot arm may have a different location and orientation to the next group of objects. When the next group of objects is positioned in front of the robot arm, the software needs to manoever the robot arm effector to probe a few key points (like 3) on the group of objects in order to determine the relative location and orientation of the group of objects relative to the robot arm base. The software should then translate the coordinates of all objects in the map so that the map reflects the updated position of the objects relative to the robot arm base.
4) The software then needs to position the robot arm effector over each of the objects in turn and execute an operation on each object. As each object is processed, the software should use the positioning data from the operation to update and refine the stored map.
5) After the operation has been run on all of the objects, the software should command the robot arm effector to the home position while avoiding contact with any of the objects.
To give a more concrete (but fictional) example, imagine a pallet with some finished goods bolted to the pallet in specific positions. A robot arm has a labeller and a touch probe on the end of the arm. The software needs to map the locations and orientations of the objects on the pallet based on touching off the exterior surfaces of the objects in order to determine a few key points and orientations on each object and store that map as a data structure of coordinates and orientations. The robot arm then positions the labeller over the top of each of the objects in a defined orientation and applies a label to each object in turn. The robot arm then retracts to the home position while avoiding hitting any of the objects.
Then a forklift drops a new pallet of objects in front of the robot arm. The software must first use the touch probe to sweep and touch off a few key points on the pallet and/or objects in order to determine the relative location and orientation relative to the robot base. Based on those key reference points, the software translates the map data structure coordinates to reflect the relative position of the objects. The robot arm then applies labels to each of the objects and returns to the home position.
Please give an estimated time and cost to develop this software, with the understanding that a binding job cost is dependent on fully reviewing the scope of the work. Also please list any relevant experience you have as well as your availability (i.e. whether you can work on this full-time or part-time).
Project ID: #37476639