GSoC2013

= Accepted Proposal for GSoC 2013 =

Description
When computing motions for robot arms it is often the case that the inverse kinematics (IK) problem needs to be solved. For certain types of robot arms, an analytic solver may not be available. In this case, numerical solvers can be used. The numerical solvers however need a seed as input. This project is about constructing a cache of valid arm configurations to provide good seeds that will lead to quick solutions from the numerical IK solver.

Student
Nghiem Do

Progress
Public Google Document

= Proposals for GSoC 2013 =

Cache of Inverse Kinematics Solutions
Brief explanation

When computing motions for robot arms it is often the case that the inverse kinematics (IK) problem needs to be solved. For certain types of robot arms, an analytic solver may not be available. In this case, numerical solvers can be used. The numerical solvers however need a seed as input. This project is about constructing a cache of valid arm configurations to provide good seeds that will lead to quick solutions from the numerical IK solver.

Expected results

A library that can report a near by robot configuration when given a desired pose to be reached. That configuration can then be used as a seed in a numerical IK solver. Experimental evaluation of the evaluated approaches is also expected.

Knowledge Prerequisite

C++ coding experience. Experience with kinematics, numerical solvers for kinematics and control recommended.

Skill level Medium.

Mentor Ioan Sucan

Collision Checking with Bullet
Brief explanation MoveIt! is designed to be modular to allow different types of capabilities and software components to be easily plugged in. Collision checking is an integral part of MoveIt! and this project will involve integrating the collision checkers in Bullet into MoveIt! to live side-by-side with the existing collision checkers in MoveIt!

Expected results (1) An integration of the collision checking in Bullet with the Collision checking API in MoveIt! (2) Regression tests for the collision checking built around different environments and robots using the tools in MoveIt! (3) Tests that run the new collision checker against the existing collision checkers in MoveIt! and benchmark the capabilities

Knowledge Prerequisite C++ coding experience. Previous experience with collision checking, game development, simulation or similar applications useful.

Skill level Medium.

Mentor Sachin Chitta, Ioan Sucan

Integrating Sensing and Control with MoveIt! on New Robots
Brief explanation MoveIt! is designed to integrate with a wide variety of robots and sensors. This project will make it easier to perform this integration by defining and integrating an XML or YAML based spec for controllers or sensors with the MoveIt! Setup Assistant. This will allow quick integration of new robots with MoveIt!

Expected results (1) XML/YAML based spec for new sensors incorporated into the SRDF format in ROS (Robot Operating System). (2) XML/YAML based spec for controllers for a new robot. (3) Ability to import sensing and control specs and start working with the sensors and controllers out of the box for a new robot.

Knowledge Prerequisite C++ coding experience - including Qt, GUI design, threading.

Skill level Medium.

Mentor Sachin Chitta

Integration of the IKFast kinematics solvers
Brief explanation

The IKFast package allows for generation of inverse kinematic solver code for a variety of robot arms. This project will involve automating the process of generating this code given a new robot model and integrating it directly as a kinematics solver in MoveIt!

Expected results

A library component that (from the MoveIt! Setup Assistant) allows for auto-generation of IKFast solvers for new robots from the ROS robot formats (URDF and SRDF) and integration with MoveIt!

Knowledge Prerequisite

C++ coding experience. Experience with kinematics, Qt recommended.

Skill level Medium to high.

Mentor Sachin Chitta