February 8th, 2013

ManyEars: open source framework for sound processing - article


The ManyEars open framework
François Grondin, Dominic Létourneau, François Ferland, Vincent Rousseau, François Michaud

Making robots that are able to localize, track and separate multiple sound sources, even in noisy places, is essential for their deployment in our everyday environments. This could for example allow them to process human speech, even in crowded places, or identify noises of interest and where they came from. Unlike vision however, there are few software and hardware tools that can easily be integrated to robotic platforms.

The ManyEars open source framework allows users to easily experiment with robot audition. The software, which can be downloaded here, is compatible with ROS (Robot Operating System). Its modular design makes it possible to interface with different microphone configurations and hardware, thereby allowing the same software package to be used for different robots. A Graphical User Interface is provided for tuning parameters and visualizing information about the sound sources in real-time. The figure below illustrates the architecture of the ManyEars software library. It is composed of five modules: Preprocessing, Localization, Tracking, Separation and Postprocessing.

To make use of the ManyEars software, a computer, a sound card and microphones are required. ManyEars can be used with commercially available sound cards and microphones. However, commercial sound cards present limitations when used for embedded robotic applications: they can be expensive and have functionalities which are not required for robot audition. They also require significant amount of power and size. For these reasons, the authors introduce a customized microphone board and sound card available as an open hardware solution that can be used on your robot and interfaced with the software package. The board uses an array of microphones, instead of only one or two, thereby allowing a robot to localize, track, and separate multiple sound sources.

The framework is demonstrated using the the microphones array on the IRL-1 robot shown below. The placement of the microphones is marked by red circles. Results show that the robot is able to track two human speakers producing uninterrupted speech sequences, even when they are moving, and crossing paths. For videos of the IRL-1, check out the lab’s YouTube Channel.

| More

November 10th, 2012

Tracking 3D objects in real-time using active stereo vision - article


Real-time visuomotor update of an active binocular head
Michael Sapienza, Miles Hansard, Radu Horaud

Humans have the ability to track objects by turning their head to and gazing at areas of interest. Integrating images from both eyes provides depth information that allows us to represent 3D objects. Such feats could prove useful in robotic systems with similar vision functionalities. POPEYE, shown in the video below, is able to independently move its head and two cameras used for stereo vision.

To perform 3D reconstruction of object features, the robot needs to know the spatial relationship between its two cameras. For this purpose, Sapienza et al. calibrate the robot vision system before the experiment by placing cards with known patterns in the environment and systematically moving the camera motors to learn how these motor changes impact the images captured. After calibration, and thanks to some math (homography-based method), the robot is able to measure how much its motors have moved and relate that to changes in the image features. Measuring motor changes is very fast, allowing for real-time 3D tracking.

Results show that the robot is able to keep track of a human face while performing 3D reconstruction. In the future, the authors hope to add zooming functionalities to their method.

| More

Related posts


September 30th, 2012

Using 3D snapshots to control a small helicopter - article


Design of a 3D snapshot based visual flight control system using a single camera in hover
Matthew A. Garratt, Andrew J. Lambert, Hamid Teimoori

To control a flying robot, you usually need to know the attitude of the robot (roll, pitch, yaw), where it is in the horizontal plane (x,y), and how high it is from the ground (z). While attitude measurements are provided by inertial sensors on board the robot, most flying robots rely on GPS and additional range sensors such as ultra-sound sensors, lasers or radars to determine their position and altitude. GPS signal however is not always available in cluttered environments and can be jammed. Additional sensors increase the weight that needs to be carried by the robot. Instead Garratt et al. propose to replace position sensors with a single small, low cost camera.

By comparing a snapshot taken from a downward pointing camera and a reference snapshot taken at an earlier time, the robot is able to calculate its displacement in the horizontal plane. The loom of the image is used to calculate the change in altitude. Image loom corresponds to image expansion or contraction as can be seen in the images below. By reacting to image displacements, the robot is able to control its position.

Grass as seen from altitudes of 0.25 m, 0.5 m, 1.0 m and 2.0 m (from left to right).

Using this strategy, the researchers were able to show in simulation that a helicopter could perform take-off, hover and the transition from low speed forward flight to hover. The ability to track horizontal and vertical displacements using 3D snapshots from a single camera was then confirmed in reality using a Vario XLC gas-turbine helicopter.

In the future, the authors intend to further test the 3D snapshot control strategy in flight using their Vario XLC helicopter before moving to smaller platforms such as an Asctec Pelican quadrotor. Additional challenges include taking into account the shadow of the robot, which might change position from snapshot to snapshot.

| More

Related posts


July 16th, 2012

Explosive motions - article


Optimal variable stiffness control: formulation and application to explosive movement tasks
David Braun, Matthew Howard, Sethu Vijayakumar

Throwing, hitting, jumping or kicking are often referred to as explosive movements since they require the sudden release of large amounts of energy to be successful. Instead of using large and powerful motors to achieve such movements, researchers are turning to compliant actuators with elastic components capable of passively storing and releasing energy. Varying the stiffness of the actuator can be interesting to go from highly compliant actuators that are safe for human-robot interactions to stiffer actuators that are optimized for the task at hand. Exploring how stiffness impacts task performance is highly complex and is usually done through trial and error.

Instead, Braun et al. propose a framework that optimizes the control of actuator stiffness and torque automatically. Demonstrations are performed using a robot arm in simulation and reality on a ball throwing task (see video below). Interestingly, controlling the torque and stiffness independently leads to better performance than systems where stiffness can not be independently controlled.

Currently, the authors are implementing the proposed framework on anthropomorphic variable stiffness devices with many degrees of freedom, such as the DLR Hand-Arm System. This work provides a blueprint for achieving optimal control in the next generation of robotic devices where variable stiffness actuation is likely to play a dominant role.

| More

Related posts


May 28th, 2012

Ingredients for autonomous construction - article


Autonomous construction using scarce resources in unknown environments Ingredients for an intelligent robotic interaction with the physical world
Stéphane Magnenat, Roland Philippsen, Francesco Mondada

Most research in robotics focuses on a specific problem: building better hardware, implementing new algorithms, or demonstrating a new task. Combining all these state-of-the-art ingredients into a single system is the key to making autonomous robots capable of performing useful work in realistic environments. With this in mind, Stéphane Magnenat walks us through all the steps needed to perform autonomous construction using the marXbot in the video below. To make the task challenging, the building blocks from which robots build towers are distributed throughout the environment, which is riddled with ditches that can only be overcome by using these same building blocks as bridges. Because there are few building blocks, the robot has to figure out how to move the blocks in an near-to-optimal way so that it can navigate the environment while still building the tower. Furthermore, the robot does not have any information about its environment beforehand and can only use limited computational resources, as is often the case in realistic robot scenarios.

Solving this challenge requires an integrated system architecture (see figure below) that leverages modern algorithms and representations. The architecture is implemented using ASEBA, which is an open-source control architecture for microcontrollers. The low-level implements reactive behaviors such as avoiding obstacles and ditches or grasping objects. The high-level instead takes care of mapping the environment (using a version of FastSLAM), path-planning and reasoning.

The authors hope that such an integrated approach could help shed light on the capabilities required for intelligent physical interaction with the real world.

| More

April 17th, 2012

Learning acrobatic maneuvers for quadrocopters - article


Adaptive fast open-loop maneuvers for quadrocopters
Sergei Lupashin, Raffaello D'Andrea

Have you ever seen those videos of quadrocopters performing acrobatic maneuvers?

The latest paper on the Autonomous Robots website presents a simple method to make your robot achieve adaptive fast open-loop maneuvers, whether it’s performing multiple flips or fast translation motions. The method is thought to be straightforward to implement and understand, and general enough that it could be applied to problems outside of aerial acrobatics.

Before the experiment, an engineer with knowledge of the problem defines a maneuver as an initial state, a desired final state, and a parameterized control function responsible for producing the maneuver. A model of the robot motion is used to initialize the parameters of this control function. Because models are never perfect, the parameters then need to be refined during experiments. The error between the robot’s desired state and its achieved state after each maneuver is used to iteratively correct parameter values. More details can be found in the figure below or in the paper.

Method to achieve adaptive fast open-loop maneuver. p represents the parameters to be adapted, C is a first-order correction matrix, γ is a correction step size, and e is a vector of error measurements. (1) The user defines a motion in terms of initial and desired final states and a parameterized input function. (2) A first-principles continuous-time model is used to find nominal parameters p0 and C. (3) The motion is performed on the physical vehicle, (4) the error is measured and (5) a correction is applied to the parameters. The process is then repeated.

Experiments were performed in the ETH Flying Machine Arena which is equipped with an 8-camera motion capture system providing robot position and rotation measurements used for parametric learning.

| More

January 17th, 2012

iCub drums and crawls using bio-inspired control - article


Toward simple control for complex, autonomous robotic applications: combining discrete and rhythmic motor primitives
Sarah Degallier, Ludovic Righetti, Sebastien Gay, Auke Ijspeert

Ever see a lizard effortlessly run up a wall?

Like most vertebrates, lizards are able to quickly adapt to new environments in a robust way thanks to a special type of movement generator. The idea is that a high-level planner (the brain) is responsible for determining the key characteristics of a movement such as the position that needs to be reached by a limb or the amplitude and frequency with which the limbs should perform rhythmic motions. These high-level commands then serve as an input to motion primitives responsible for activating muscles in the correct sequence. Motion primitives are typically organized at the spinal level through neural networks called central pattern generators (CPGs).

This control architecture has many advantages for robotics. First, once the motion primitives are designed, only high-level commands are required to control the entire motion of the robot. Therefor, instead of planning the positions of all joints, the motion planner only needs to issue high-level goals such as “reach there” or “move your arm rhythmically with this amplitude and this frequency”. This greatly reduces the complexity of planning motions for robots with many degrees of freedom. Furthermore, CPGs are very fast, have low computational cost and can be modulated by sensory feedback in order to obtain adaptive behaviors.

Using this control architecture, Degallier et al. were able to turn the iCub humanoid seen in the video below into an on-demand drummer. Random users at a robotics conference were able to change on-line a score that the iCub was playing or test how well it could adapt when its drums were moved. To show the generality of their approach, they then applied the same architecture to make the iCub crawl and reach for objects. Although one behaviour was rhythmic (crawling) and the other discrete (reaching), the robot was easily able to switch between the two.

| More

Related posts


January 2nd, 2012

Cooperative modular satellites - article


Cooperative control of modular space robots
Chiara Toglia, Fred Kennedy, Steven Dubowsky

In Modular Space Robotics, modules self-assemble while in orbit to create larger satellites for specific missions. Modular satellites have the potential to reduce mission costs (small satellites are cheaper to launch), increase reliability, and enable on-orbit repair and refueling. Each of the modules has its load of sensors, fuel and attitude control actuators (thrusters). Assembled modules therefore have redundant sensor and actuation capabilities. By fusing sensor data, the modular satellites can follow its trajectory more precisely and smart thruster activation can help save fuel.

The challenge is to figure out how to control such a self-assembled robot to minimize fuel consumption while balancing fuel distribution and improve trajectory following. To this end, Toglia et al. propose a cooperative controller where one of the modules, with information about the configuration of all other modules, is responsible for computing an optimal control schema. An extended Kalman-Bucy Filter is used to implement sensor fusion.

The cooperative controller was compared to an independent controller where each module attempts to follow its own trajectory while minimizing its own fuel usage and trajectory errors. Results from simulation and reality show that the cooperative controller can save significant amounts of fuel, up to 43% in one experiment, while making the trajectories more precise.

Experiments in reality were performed with two satellites using the MIT Field and Space Robotics Laboratory Free-Flying Space Robot Test Bed shown below.

| More

Related posts


December 1st, 2011

Teaching motion primitives - article


Incremental kinesthetic teaching of motion primitives using the motion refinement tube
Dongheui Lee, Christian Ott

Finding ways to easily teach service robots new motions will be key to their integration in our everyday environments. Ideally, teaching a robot should be no different than teaching a human.

For example, to teach someone a new dance, you might first show them the basic steps. You will most likely mention motion primitives, such as “right foot forward” and not the actual position of all your body joints. The apprentice dancer will then try to imitate your steps. To refine dance moves, the teacher can physically correct the motion by pushing the elbow higher, straightening the back or guiding the steps. However, if the student has been taught to move forward with its right foot, and the teacher pushes in the opposite direction, the dancer will most likely freeze. This is due to the fact that refinements should fit within a certain region around the movement that the person expects (refinement tube). Over time, the dancer iteratively improves its movements, forgetting older clumsy moves along the way.

Following this exact idea, Lee et al. have been teaching motion primitives to the humanoid upper-body robot “Justin”. Experiments use the 19 joints of the arms (2 times 7 DOF), torso (3 DOF), and head (2 DOF). The framework shown in the schematic below, uses imitation learning followed by iterative kinesthetic motion refinements (physically guided corrections) within a refinement tube. Motion primitives are represented as a hidden Markov Model.

The authors hope that in the future, these algorithms can contribute to making humanoid robots, which are capable of autonomous long-term learning and adaptation.

| More

Related posts


November 30th, 2011

Robotic Musicianship - article


Interactive improvisation with a robotic marimba player
Guy Hoffman, Gil Weinberg

Shimon is an interactive robotic marimba player that can improvise both music and choreography in real-time to the melody of a human pianist.

Playing an instrument does not make you a musician. To become a musician you need to listen, analyze, improvise, and interact through the sound you produce and your body language.

With this in mind, Hoffman et al. explore robotic musicianship. Unlike robots that simply perform a sequence of notes, Shimon’s performances are composed of a sequence of gestures that may or may not produce sound. Using gestures as the building blocks of musical expression is particularly appropriate for robotic musicianship, and nicely fits with our embodied view of human-robot interaction.

The robot is able to improvise by following basic aspects of standard Jazz joint improvisation and can anticipate gestures to easily synchronize with duet partners. Building on this, the human and robot could perform three types of interactions. In the first interaction, the robot and human played two distinct musical phrases, where the second phrase is a commentary on the first phrase. The second interaction was centered around the choreographic aspect of movement with the notes appearing as a “side-effect” of the performance. The third interaction was a rhythmic phrase-matching improvisation.

Using this improvisation system, the pair performed full-length performances of nearly 7 minutes in front of live public audiences and more than 70’000 online viewers.

After the live performances, additional experiments were conducted to investigate the importance of physical embodiment and visual contact in Robotic Musicianship. Results show that synchronization between the robot and musician can be aided by visual contact when the tempo is uncertain and slow. In addition, the audience perceives Shimon as playing better, more like a human, as more responsive, and even more inspired when compared to a “computer musician”. Shimon was also rated as better synchronized, more coherent, communicating, and coordinated; and the human as more inspired and more responsive.

In the future, Hoffman et al. hope to further explore robot musicianship by giving Shimon a socially expressive robot head, vision and new gestures.

| More

Related posts