Landing : Athabascau University
  • Blogs
  • Simple Control Example: Maintaining Constant Distance to Surface

Simple Control Example: Maintaining Constant Distance to Surface

Simple Control Example: Maintaining Constant Distance to Surface

A system was developed to maintain an approximate distance between an end-effector and a surface. The effector is part of a robotic arm system with two servo actuated joints in the arm, though only one is used to adjust position. A sonar distance sensor is mounted on the end-effector, which maintains a constant planar angle with respect to the ground through mechanical links. The code was designed to be simple, made for exposition rather than performance. A 10 mm (+/- 5 mm) hysteresis window and measurement averaging (5 point) was used to get rid of noisy measurements and unneeded actuation.

It performed better than I expected after some simple tweaks to angle adjustment values, delays, and hysteresis width, maintaining distances to surfaces and some objects as they moved. I expect to be able to use a similar algorithm to control end-effector height and distance to relatively large objects instead of having to use kinematics (reverse kinematics).

image

Many improvements could be made, including (but not limited to) the following:

  • incorporate fundamentals of control theory to improve performance;
  • use both the boom arm and turret arm servos to manipulate end-effector height;
  • include the use of kinematic equations to better respond to the error signal, for example: to translate the distance error signal into an angular error signal;
  • improve mechanical rigidity and actuator quality (strength, rigidity, accuracy); and
  • improve distance sensing with more effort put into filtering measurements.

Code is here: https://github.com/tyblu/comp444-random/blob/master/robot_arm_assign2_extra/robot_arm_assign2_extra.ino

YouTube video link: https://goo.gl/hxeEBs 

 


Note: The study guide states an assignment (#2) requirement not covered by units 3 and 4: "Working examples will include employing actuators to interact with the environment as well as using sensors to complete an assigned task." The preceeding example fulfills this requirement.

Comments

  • Susanne Cardwell October 5, 2017 - 8:38am

    Hi Tyler.  Great robotic arm. Very sophisticated.  Sonar is a sound wave to detect distances.  I wonder if all distance sensors work on sonar or if you chose it for a specific reason.  

    Why do you want the robotic hand to repel from surfaces?

    I believe the hand will grasp items ... maybe at a set distance higher than a surface.  How will you figure the grasping in?

    Awesome robot. 

  • Tyler Lucas October 5, 2017 - 9:15am

    I don't actually want the arm to stay away from all surfaces. A method similar to this will keep the end-effector from bumping into large objects and the 'floor', and to scan an area to figure out where objects are. This blog post was to fulfill one of the requirements in assignment 2. Though I will first have this gizmo pick up a standard object at a set location, I may get it to look for various objects within an area, figure out if any of them are small and isolated enough (claw won't knock into other objects), then attempt to grab one of them and move it to another standard location or area.

    There are many types of distance sensors, though sonar is pretty great for how cheap it is. Runner-up is infrared (see [link] for examples). The cheap versions of these technologies use time-of-flight to determine distance. (Phase difference is used in other arrangements of similar tech. Some motion sensors, which could tell you the distance to something with the right sensor arrangement, is often done with changes in infrared intensity.) I think Mataric goes through several distance sensors.

  • Susanne Cardwell October 5, 2017 - 12:25pm

    I looked at your code. Nice and lean. I feel encouraged that it didn't take a hundred pages of sketches to make that arm move.