Message Boards Message Boards

[WSS16] Mapping of indoor environments with the Wolfram language

For the Wolfram Science Summer School, I had the opportunity to talk with Stephen Wolfram about the current situation of robotics. He talked about the possibility of using Mathematica to control a robot that would gather information about its environment to generate 2D contours of indoor environments.

The topic discussed is formally know as Simultaneous Localization And Mapping (SLAM), which is a field in Robotics that has gained a considerable amount of attention in the past decade.

Introduction to SLAM

The Simultaneous Localization and Mapping (SLAM) problem asks if it is possible for a mobile robot to be placed at an unknown location in an unknown environment and for the robot to incrementally build a consistent map of this environment while simultaneously determining its location within this map.

SLAM in Mathematica

A program was developed to simulate the behavior of a robot inside of a room with obstacles to detect. The robot is considered to have sensors on all four sides, detecting objects adjacent to it. A room was created to contain the robot, and test its detection capabilities.

Generated map for the robot SLAM simulation in Mathematica

Physical implementation

Given that a free version of Mathematica is available on the Raspberry Pi, a robot was built based on this platform. The program was adjusted to adapt to the Pi's hardware limitations (3.3V digital logic), and a GUI to control the robot was also developed.

More info to be added later

2 Replies
Posted 9 years ago

I am interesting in your project and looking forward to reading more detail coding.

I have two questions.

1). Usually a robot is always moving forward, so the front sensor is more important for guiding, the rear sensor is almost useless. Is that possible to implement SLAM algorithm with only front sensor? Here is good Mathematica example: http://community.wolfram.com/groups/-/m/t/872077

2). Raspberry Pi is usually cheap and slow, what can be your strategy for speed improving of programming. Let's say your hardware and software is able to support with a mobile robot with a good moving speed ( like 500mm/s - 1000mm/s) ?

POSTED BY: Frederick Wu

Hello Mr Wu, Sorry for not replying earlier, I was presenting a project in CIncinnati during the last two weeks and did not have the opportunity to see your question.

1). Usually a robot is always moving forward, so the front sensor is more important for guiding, the rear sensor is almost useless. Is that possible to implement SLAM algorithm with only front sensor?

The thing about SLAM is that it pretty much depends on how you design the robot. In my case, I designed a robot that did not need to turn, hence it could move in one of four cardinal directions withouth rotating. Thus I needed a minimum of one sensor on each side.

2). Raspberry Pi is usually cheap and slow, what can be your strategy for speed improving of programming. Let's say your hardware and software is able to support with a mobile robot with a good moving speed ( like 500mm/s - 1000mm/s) ?

The first thing I'll do is research why the program takes so much time at startup. I already achieved a speed increase by removing the need to connect to the cloud constantly, but there is still a 10 - 30 second delay everytime the programs starts because of how Mathematica configures GPIO ports.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract