paper for pcsc

we have just submitted our paper to our advisers for the pcsc. it is an annual conference hosted by the computing society of the philippines. our advisers will choose which papers will be submitted to the conference. since we haven’t produced results for the em simulation and all 3 implementations, we just revised our previous paper based on suggestions within our group and ma’am chris.

go cvmig! :)

em slam simulation and ekf slam implementation

we are currently on our em slam simulation as well as our ekf slam implementation (again). below is a screenshot of the latest developments on the ekf implementation:

ekf slam

there are still problems with this current implementation. we will post our updates as soon as possible, including the map produced.

meeting with sir mong before christmas vacation

We were able to meet with sir mong before christmas vacation. We talked to him about our ekf slam c implementation. We were already finished with the code but we encountered certain problems. The matrix used in our ekf slam implementation grows exponentially with time and thus reaches a point where our machines (desktop and laptop) cannot continue and thus interrupt the program on its own. If the code cannot be run on our PCs, then how can we run it on a linux OS with 16MB memory?

another problem is that our implementation does not use an occupancy grid but a feature-based map. Unlike the occupancy grid which makes use of a matrix, a feature-based map uses a column vector to store the map of its environment.

knowing this, we were told to fix our code to implement occupancy grid mapping.

good luck naman. >.<

EKF SLAM C Code

Last week, we were able to go to the mobot lab to try porting our code into the robot. sir mong’s student (we forgot his name, but we will try to know asap) helped us a lot and they helped us install OpenWrt. although at first we did take a lot of time trying to connect to the internet since my laptop is *not working well*. we ended up using a wired connection and was able to successfully connect to the internet and the robot. we also tried porting some code (the one made by kuya) into the robot hehe.

so here is how it works. we simply our folder inside the package folder that is inside the OpenWrt folder. we compile it from there and OpenWrt creates an .ipkg file that is ready for porting into the robot. ^_^

I just finished coding augment.c and revising update.c for our EKF SLAM C Code which will be compiled using OpenWrt and then ported into the robot. and i am about to resume coding fastSLAM.

October 16, 2008 – 1st Semester Final Demo CVMIG

Deliverables for the first semester:

  • EKF SLAM Simulation
  • FastSLAM Simulation
  • EKF SLAM Implementation

Based on results, FastSLAM is better at Data Association compared to EKF SLAM. FastSLAM gave more detailed maps because it was able to map smaller obstacles which EKF SLAM was not able to map. Moreover, FastSLAM was also able to give better results within less amount of time.

The EKF SLAM Hardware Implementation was not possible due to MOBOT Lab’s Schedule. So, we were instead asked to simulate EKF SLAM using Real-world data. We got our real-world data from openslam.org. It was the map of an entire floor. We were not able to finish our EKF SLAM implementation completely by October 16, 2008. The simulation was only able to generate a portion of the map and it took a long time before that portion of the map appeared. So, we were given one more week to finish the EKF SLAM implementation. Initially, our simulation ran for two hours, but Carl was able to shorten that into 10-15 minutes without changing the quality of the output.

Progress:

  • EKF SLAM Simulation
  • EKF SLAM Simulation with real world data
  • FastSLAM Simulation

September 22, 2008 – First Semester 198 Presentation

This wass the final presentation for the 1st semester. We presented our special projects before the whole DCS Faculty as well as some representatives from the industry. It was a whole day event.

Below is the script of our group for the said event:

Good afternoon everyone. We are the CaLaMau group and our project is the Comparison of Simultaneous Localization and Mapping (SLAM) Methods. I am Lalaine Chen and I will be representing our group for today’s presentation. These are my group mates, Maureen Geray and Carl Manalo.

You’ve seen in the movies and on TV how robots manage to find their way around places. Have you ever thought about how they manage to do it? How about driverless cars? They may seem fictional but we will soon be proving you wrong. So how does a robot know where it is? How does it know where the objects around it are placed?

Localization is establishment of the robot’s position with respect to the objects in the environment. Here we assume that we know the exact location of objects in the robot’s environment and that the robot cannot determine its own exact location.

Mapping, on the other hand, is determining the location of objects in the robot’s environment and effectively creating a metric or topological map of the environment. Here we assume that the robot knows its exact location at all times. However, it cannot accurately determine the exact location of the objects in its surroundings.

So we now come to this question: “Is it possible for an autonomous robot to start in an unknown location in an unknown environment and then to incrementally build a map of this environment while simultaneously using this map to compute robot location?” The answer is yes. This problem is called Simultaneous Localization and Mapping (SLAM).

There are currently several existing SLAM methods and there have been several applications of these methods. Shown here are some of the existing applications of SLAM. First is Carnegie Mellon University’s Groundhog is an autonomous, four-wheel robot with big, heavy-duty tires. On May 30, 2003, it took a trip into the Mathies abandoned coal mine in southwestern Pennsylvania. The robotic unit was able to create accurate three-dimensional maps of its surroundings. It uses GraphSLAM. Next is the University of Sydney’s Oberon. It is an underwater vehicle that implements EKF SLAM. Stanley is an autonomous car developed by Stanford University. It won the 2005 DARPA Grand Challenge. NASA embedded SLAM in two of its recent Mars Rovers Spirit and Opportunity. Zerg is a rescue robot designed to be deployed to areas after a disaster occurs. It is designed to create a 2D map of an area.

As said earlier, there are already several existing SLAM methods. However, there are only a few quantitative studies that focus on the comparison of the different methods. The analysis of the usage of computing resources and performance helps in determining the benefits and pitfalls of an algorithm. So our group decided to compare 3 implementations of SLAM and assess the performance of an algorithm given three different indoor environments.

We will be comparing the following SLAM methods: EKF SLAM, EM SLAM and Fast SLAM. EKF SLAM uses all available data to simultaneously estimate the position of the robot and generate a map. The Expectation Maximization (EM) algorithm is a statistical algorithm that determines the value of certain missing data using the values of existing data. It predicts the robot’s previous position and creates the map of the robot’s environment using the sensor readings and the robot’s motion commands. FastSLAM uses a tree-based data structure to store information about its environment unlike EKF SLAM which uses a matrix. By using a tree-based data structure, updating the map in FastSLAM involves updating certain portions of the map instead of updating the entire map.

We will be comparing the said SLAM methods based on the following:

l Actual and esitmated position of the landmarks

l Actual and estimated position of the robot

l Real map and SLAM-generated map

l Map creation speed

l Number of loops required in order to create a complete map

Our group is currently simulating the SLAM methods using Microsoft Robotics Studio. After we are done with the simulations, we will be implementing them on a real robot equipped with Sonar Sensors. We will be collaborating with the MOBOT Lab from the Department of Electrical and Electronics Engineering during our implementation phase.

*Future work*

We also asked Sir Mong before about the robot. since we are required to do on-board processing, we were allowed by sir mong to use the big red robot which they plan to finish by the end of the 1st semester. It has a linux OS and can already be controlled from the PC.

Progress: EKF SLAM, FastSLAM Simulations

September 1, 2008 Presentation

For this presentation, we were to report our progress thus far.

On the noise model issue from the previous presentation, we were told by Sir Mong that we have two options. We can use either a Linear noise model or a Gaussian noise model. The Gaussian Noise Model is more accurate but more difficult to implement and this is the noise model usually used based on our review of related literature.

For both our simulations and implementations, we will be having 3x3m environments. We have prepared 4 environments. The robot that will be used for the simulations is the Lego Mindstorms NXT robot. It will be equipped with a laser range finder modelled as a sonar with 1-meter range.

Progress: EKF SLAM Simulation

August 1, 2008 Project Proposal Presentation

We presented our project proposal to the CVMIG faculty. Below is the outline of the presentation:

  • Localization
  • Mapping
  • Simultaneous Localization and Mapping
  • SLAM Applications
  • Significance of the Study
  • Background of the Study
  • Statement of the Research Problem
  • Objectives
  • SLAM Methods (EKF, FastSLAM, EM)
  • Spirals of Work (Timeline)

gantt_chart_v3

After our presentation, we were told to choose a more suitable and realistic noise model.

MSRS: mapping with sonar range finder

Last week, we were able to finish our SLAM Preliminaries and our simulated robot can now map its environment. However, it still cannot map all kinds of environments properly.

These are screenshots from msrs. In the first picture, the sonar has a 1-m range, while on the second picture, it has a 1.5m-range.

When the sonar range is 1 meter, the robor is unable to explore the rightmost part of the maze. While on the second scenario, it is able to complete the map. However,  it is possible for it to be stuck somewhere in the map, as shown in the picture.

We would like to fix this problem during the EKF SLAM coding phase.

Hello SLAM!

Follow

Get every new post delivered to your Inbox.