Autonomous Golem Limbo

Abhishek Verma, Martin Levihn, Scott Koziol

Project Abstract:

In this project we are going to mount a laser-sensor on the wheeled humanoid robot to get distance information about obstacles in front of the robot. With the help of this information we will then enable the robot to do a kind of "dynamic limbo" where he dynamically tries to duck underneath "suddenly appearing" objects while trying to not lose a lot of speed.

Below is a picture of the wheeled humanoid robot being developed at Mike Stilman's Humanoid Robotics Lab at Georgia Tech. We plan to use this robot for our project, however with the arm and hand removed.


Related Work:

There has already been previous limbo/ducking work in the Humanoid Robotics Lab at Georgia Tech. The image below shows previous work of sequences of a robot going under an obstacle.


In the following videos (see link below), you will see a robot with NO torso limboing. There are static initial conditions and a pre-computed control plan based on a known obstacle. This work used Particle Swarm Optimization to generate the control parameters.

  • K. Teeyapan, J. Wang, M. Stilman "Robot Limbo: Optimized planning and control for dynamically stable robots under vertical obstacles",IN REVIEW for ICRA 2010, PLEASE SEE THE AUTHORS FOR THE PAPER.- This paper demonstrates a limbo method for the humanoid robot with no torso. The plan is made using PSO. We propose to use the same PSO method used in this paper, but with updated dynamics equations that include the torso.
  • M. Stilman, J. Wang, K. Teeyapan, R. Marceau "Optimized control strategies for wheeled humanoids and mobile manipulators", 9th IEEE-RAS International Conference on Humanoid Robots, Paris, France, December 2009.- This paper demonstrates control strategies for a humanoid robot with a torso. We plan to use the dynamics equations in this paper in conjuntion with the PSO algorithm descirbed in K. Teeyapan's paper to generate a matrix of optimum control plans.
  • J. Kennedy, R. Eberhart, “Particle swarm optimization”: IEEE International Conference on Neural Networks, vol. 4, 1995. - This paper describes the method used to form optimum control plans in the above two papers. According to [Stilman, Wang, Teeyapan, Marceau], the benefits of PSO "lie in its ability to quickly converge to globally optimal solutions, even in large and non-convex solution spaces."

Proposed Work:

Planning Challenges
  • Short Processing Time: Previous work on robot limbo relied on Particle Swarm Optimization technique to "statically" generate motion plans for the limbo move. This technique being very slow will not be useful for the real-time motion plan generation that we require.
  • Large Search Space: In our problem, the robot will be traveling along in a certain state and will encounter an obstacle. There are many (infinite?) configurations/combinations of robot state and obstacle location.
  • Non-linear dynamics: The complexity of the dynamics of our system also adds to the challenges of our planner.
Proposed Solutions
  • Short Processing Time solution: We propose "Quasi-real-time planning". We propose to maintain a set of precomputed optimal plans (using PSO) for a defined range of obstacle and system parameters i.e. giving the robot a restricted set of limbo maneuvers. Apply a matching maneuver if found, else apply some corrective actions (on-line optimization) to make an optimal plan. This may be done with some sort of gradient descent algorithm. The pre-computed plans will be formatted as a look-up-table.

Below is an example look-up-table:

  • Large Search Space solution: PSO optimization, although slow, is amenable for developing our look-up-table (LUT) of possible control solutions. We then plan to use some sort of on-line learning to further optimize the approximate solution from the LUT.
  • Non-linear dynamics solution: We plan to continue to build upon the dynamics and controls solutions developed by Stilman, et al.

The precomputed set of motion plans will be maintained as a lookup table, so a "lookup-hit" would provide the optimal motion plan instantly.
In case of a "lookup-miss", the main challenge is to come up with a set of heuristics to come up with "best-effort" corrective actions. Apart from the heuristics, some analysis of the interaction of control parameters would also be required.

Implementation Challenges
  • Obstacle detection: We are using the laser to detect the obstacles. Anytime one deals with actual hardware there are issues!
  • Sensor placement: The laser is going to move based on the torso and robot location.
  • Sensor noise: The laser sensor will have noise that we must mitigate.
Proposed Solutions
  • Obstacle detection Solution: Use laser mounted vertically
  • Sensor placement Solution: Use robot’s state to compensate for position
  • Sensor noise Solution: Filtering


General Task Abhishek Martin Scott
Week 0 Laser Evaluation Extracting a driver for Hokuyo lasers from ROS, getting it platform independent and writing a simple graphic visualization
Week 1 Initial discussions. Write Document. Create Presentation for class. Laser Scanner Evaluation, start planning and controls work Search Strategies for pre-computed plans Use graphic visualization tool to evaluate Laser Performance and purchase appropriate laser; Start mounting laser on robot and writing code for real-time obstacle recognition taking into account the robot's state Create pre-computed plans using matlab and SRLib based on various object distance and height metrics
Week 2 More brainstorming on planner design and heuristics, continued laser integration Get torso model code
Week 3 Hands on with PSO planner toolkit. Start with sensor interfacing on golem. Start using torso model PSO code. Get srLib with torso model. Start simulating new Matlab results with srLIB
Week 4 Prototyping to evaluate the design and heuristics. Iterate and discuss refinements.
Week 5 Implementation and simulations.
Week 6 Implementation and simulations. Platform setup and experiment design.
Week 7 Start testing with the humanoid. Debugging. Iterations.
Week 8 More testing. Analysis and documentation of results. write paper and prepare final presentation

Week 0

Task Accomplished! Successfully extracted a driver for Hokuyo lasers from ROS, got it platform independent and wrote a simple graphic visualization. We borrowed a Hokuyo laser from another group and wanted to evaluate this laser's sampling rate performance to see if it
it quick enough for our application.

Week 1 (Oct 18-24)

  • Brainstorming. Came up with the idea of a lookup table to re-utilize the existing work in an efficient manner
  • Need to discuss further on heuristics for the lookup-failure cases
  • Mon 19 Oct: Met with Mike to discuss our plan of using a lookup table. He recommended that we use an on-line method of optimizing our plan
  • Tue 20 Oct: Presented project proposal in class
  • Thurs 22 Oct:
    • All: Met with Mike and Jon in lab and figured out how and where to mount the laser…TASK: Get CAD files or schematic details of the laser to Mike so that we can get a mount made.
    • Scott: worked with Kasemset and got srLib running on Scott's PC so that he can start running simulations. They also discussed the dynamics of the system and control possibilities.
    • Martin: got in contact with hokuyo and acroname in order to get a hold of CAD-Models for the new laser
  • Fri 23 Oct:
    • Scott: Read through some of the refereces to help understand the math behind the dymanics and controls of the past work on limbo and stand up/sit down/accel/decel.

Week 2 (Oct 25-31)

  • Scott: Met with Will, Mike and Martin and discussed laser placement on the robot. Soldered wires on new laser and tested new Laser with Martin. Got new PSO Matlab code from Jiuguang Wang. This code has the torso model.
  • Martin: Got new laser to work, talked to Hokuyo about the wiring and decided to mount an external power source to it and use the provided USB-Port. Started writing simple object detection software returning a hight and distance to an object in case one is closer than a cut-off distance.

Week 3 (Nov 1-7)

  • Mon 2 Nov:
    • Martin: Finished writting software to return the hight and distance from an object appearing infront of the robot.
  • Scott: Worked with Golem 3d simulators? (Gateway PC C:\GolemKrang2LinkBranch\ ….and Gateway PC C:\Programs\srLib-latest_win\srLib-0.9.9_win\Limbo_sk1)

Week 4 (Nov 8-14)

  • Scott: Worked with Golem full torso 3d simulator? (Gateway PC C:\GolemKrang2LinkBranch\ VS2008))….these file names and paths help me identify What I did and When by using the time stamps.

Week 5 (Nov 15-21)

  • Scott: Studied the equations for full torso dynamics models and figured out how they are implemented in the Matlab. Wrote extensive comments in the Matlab code with reference to Mike's paper and Craig's Robotics textbook. Learned about Matlab's ODE45 and how it is used in the Dynamic Simulation (note to self: C:\Scotts_files\CS8803_RIP_09\understanding_ODE45) . Craig's text was a big help with understanding the dynamic simulation (p. 215 2nd Edition). (other note to self: C:\Scotts_files\CS8803_RIP_09\JW_torso_balance_simulation\simulation\TorsoBalance_Matlab\Scotts_Simulation\Standing\SimulateSystem.asv….and C:\GolemKrang2LinkBranch\VS2008)….these file names and paths help me identify What I did and When by using the time stamps.

Week 6 (Nov 22-28)

  • Scott: Continuing to work with the controls part… to include using Visual Studio for the 3d simulator (note to self: C:\GolemKrang2LinkBranch\VS2008…..and C:\Scotts_files\CS8803_RIP_09\JW_torso_balance_simulation\simulation\TorsoBalance_Matlab\Acc)

Week 7 (Nov 29- Dec 5)

  • Scott: Can control the full torso model at the level of Mike's paper, and simulate with 3d simulator. (C:\GolemKrang2LinkBranch\VS2008\srlib)

Week 8 (Dec 6-12)

  • Scott: Putting the full torso dynamics into the limbo Matlab code. Found a reference about switched control systems [L. Balbis]. Generating plans for simple limbo (no torso model) to demonstrate my algorithm that chooses an appropriate plan from a matrix of pre-computed optimal plans. Wrote simulator that will control the robot to a set of desired initial conditions (based on the plan choice) and evaluates how far it is from the exact initial conditions. Wrote Matlab code to generate a matrix of plans and generated plans. Developed a method of choosing a plan and wrote Matlab routine to execute. Developed a timeline for plan choice that includes plan evaluation based on predicted robot position. Started slides for final presentation.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License

Subscription expired — please renew

Pro account upgrade has expired for this site and the site is now locked. If you are the master administrator for this site, please renew your subscription or delete your outstanding sites or stored files, so that your account fits in the free plan.