Hot answers tagged

20

Primarily, dead reckoning is used along with some other technique, generally SLAM-like. The robot builds a map, and then tries to localize within that map. For example, using laser range scanners, and based on dead reckoning, the robot has an idea of where it is. By comparing the laser range data to the map, it can improve its estimate. Relevant resources ...


12

The Rao-Blackwellized Particle Filter (RBPF) as you say in your question performs a marginalization of the probability distribution of your state space. The particle filter uses sampling to represent the multivariate probability distribution of your state space. Using samples to represent a distribution is firstly only an approximation, and secondly not ...


11

Features like the sun and clouds and other things that are very far off would have a distance estimate of inf. This can cause a lot of problems. To get around it, the inverse of the distance is estimated. All of the infs become zeros which tend to cause fewer problems.


10

You are reading it too narrowly. You don't "need" odometery. SLAM is simply a way to fuse any sensor estimates into a consistent estimate of the robot's state. "Feature-based" doesn't necessarily mean you need to have identifiable features everywhere in the environment. First principal of sensor fusion: Two estimates are better than one! Example I ...


9

I understand you problem is to find different means to GPS to find your position within a given reference frame. This problem in isolation is called localization, and there are many ways to perform that. Firstly you will have to differentiate between relative methods, so measurements which provide a change in position to a previously known position. This ...


9

According to this SLAM tutorial, The structure of the SLAM problem, the convergence result and the coining of the acronym ‘SLAM’ was first presented in a mobile robotics survey paper presented at the 1995 International Sym- posium on Robotics Research. which refers to this paper -> H. Durrant-Whyte, D. Rye, and E. Nebot. Localisation of ...


8

When using the EKF (or standard KF) on a real robot, you will want to tell the filter how much noise there is in each measurement, and in the process. The purpose of this is so that the Kalman filter can decide how much it "trusts" each source of data, and therefore, the weighting to give each measurement in its final estimation. For real robot data, the ...


8

The inverse depth parameterisation represents a landmark's distance, d, from the camera exactly as it says, as proportional to 1/d within the estimation algorithm. The rational behind the approach is that, filtering approaches such as the extended Kalman filter (EKF) make an assumption that the error associated with features is Gaussian. In a visual ...


8

SLAM is the process of locating oneself in a totally unknown environment where you are simultaneously mapping your environment and plotting your position in that environment. SAM is a technique used in SLAM to help keep the map constant by correlating current data with past data to normalize sensor error, It is simply one of many techniques for this purpose.


7

I think you misunderstand what a landmark is. It is a generic, catch-all term for anything that a robot can recognize and use as part of a map. In particular, "landmarks" are important for feature-based SLAM algorithms, such as EKF-based slam. What you use for "landmarks" depends on what sensors are available to the robot. In your case, since you haven't ...


6

The Arduino has always been horifically underpowered. You can get a stack of stm discovery or other ARM based dev board for the price of a single arduino, and each one of those boards will be orders of magnitude more powerful than the arduino. The ubiquity of the arduino has also hampered many projects that should have known better. Quadrotor ...


6

It depends - on the number of landmarks in the feature map, and how much time you're willing to invest tuning the algorithm for speed, and a number other parameters which you may or may not be able to control for a given application. Edit: As a thought experiment, I think it would theoretically be powerful enough to do extremely simple near-real-time SLAM ...


6

There is a whole area of literature on this topic. The most general idea is that of Simultaneous Localization and Mapping (SLAM), where the robot must build a map at the same time as it locating itself in that map. Depending on how accurate you want your maps to be, you can attempt a simpler problem of creating an occupancy grid map, which assumes you know ...


6

If you read about the principles of sensor fusion, you will always get a better estimate when you combine data in the right way. For example, if you are measuring temperature in a room with 3 different temperature sensors, it is not ideal to only use the best sensor. The ideal case would be to create a weighted combination of each sensor, where the sensor's ...


6

Stereo vision and SLAM are pretty heavy algorithms, both in terms of the processing power and RAM required. You can forget about running this on a little microcontroller like an Arduino. These run at tens of MHz, and have only a few KB RAM. At the very least you'll need something running at hundreds of MHz with hundreds of MBs of RAM. You didn't say exactly ...


6

You can use the Jacobians of the inverse observation model to initialize the new row/column of the covariance matrix. Suppose your observation model is $g(\mathbf{x})$, which maps your state $\mathbf{x}$ to a predicted observation $\hat{\mathbf{z}}$. The inverse observation model $g^{-1}(\mathbf{x}, \tilde{\mathbf{z}})$ maps an observation $\tilde{\mathbf{...


6

Localization is the process of estimating the pose of the robot the environment. Number 5 in your list. Mapping is estimating the position of features in the environment. Number 1. 2, 3, and 4 are not related to SLAM. They are all part of a complete robot system for which SLAM makes up yet another part. The software for a professional or research drone ...


5

The algorithms are essentially the same regardless of what sensors you are using. The real issue, which Chris touched upon, is that SLAM is hard even with very good sensors. I would consider GPS, wheel odometry, and an IMU to be necessary to even attempt slam with ultrasound. If you are just looking for cheap localization I recommend taking a look at ...


5

I just see your post now and it is maybe too late to really help you... but in case you are still interested in this: I think that I identified your problem. You write the innovation covariance matrix in the following way E = jacobian measure * P * jacobian measure It might be alright in theory but what happens is that if your algorithm is effective and ...


5

Assuming the map is a point cloud and that you know the alignment between the ground truth data and the map then calculating the mean squared error (MSE) would give you a relative understanding of the accuracy. A lower MSE would indicate they are very similar, 0 of course mean identical, and a high MSE would idicate they are very different. If you do not ...


5

That very much depends. Since SLAM is a problem (or at least a technique), not a solution, there is no definitive SLAM algorithm. Semantically, you have to decide what goes on a "map" of the environment, and that determines how your algorithm should handle transient (aka moving) signals. But that's a digression. Permanent maps: Permanent maps should ...


5

The value of $\alpha$ is just some threshold Mahalanobis distance. Let's say you have four entries in your map. You take a measurement, then you calculate four predicted measurements (one for each map entry). You can calculate the Mahalanobis distance between your measurement and each of your predictions. You now have four Mahalanobis distances. The ...


5

A kinect mounted on your robot is enough for mapping and localization. There are a few different packages that will work: rgbdslam can create a 3d map using a kinect You can use depthimage_to_laserscan to take in a depth image from the kinect and output a laser scan message which you can then use with gmapping for mapping, and the nav stack to navigate your ...


5

Specifically, the Chi-Square Distribution(or Chi2, $\chi^2$, or equivalently $\chi^2_1$) is used to model the probability of the absolute value of the deviation of the measurement from it's expected value. This calculation is vital to tackle the measurement origin uncertainty problem. It can also be used to determine the "correctness" of a multi-hypothesis ...


5

In my opinion, the main difference is : Positioning : gives information about the robot coordinates. It gives raw data that you can use. Localization : it is the process of the robot (or other actor) locating itself (or the robot) on the map. Here a "method is applied" to locate the robot. Positioning gives you the coordinates. Localization is determining ...


5

From the paper: $\begin{bmatrix} range\\bearing \end{bmatrix} = \begin{bmatrix} \sqrt{(\lambda_x-x)^2 + (\lambda_y - y)^2 } + v_r \\ tan^{-1}(\frac{\lambda_y-y}{\lambda_x-x}) - \theta + v_{\theta} \end{bmatrix}$ The Jacobian is: $H = \begin{bmatrix}\frac{\partial range}{\partial x} & \frac{\partial range}{\partial y} & \frac{\partial range}{\...


5

The most important point is the scale. If you do monocular SLAM, your map will only be accurate up to scale so that you e.g. cannot compute the length of the travelled path in meters. The scale between your map and the world is not even constant over time so that if you come back to your starting point, it's going to be difficult to match the beginning and ...


4

I know this is an old question but I will just add a bit to the currently existing answers. First, this is a very complex problem that everyone is trying to tackle, including google with their Tango project. In general, to localise indoor you either need to rely on your internal sensors, or get assistances from a indoor infrastructure deployed to assist you ...


4

You can try to skip the salient point detection, and just densely sample over the image (as grid or so) and compute a feature descriptor at every sample point. You can probably even go as far as computing a descriptor for every pixel. You might lose scale-invariance, but I think this won't hurt too much for stereo vision as objects will be at approximately ...


4

The raw specs on the Arduino's microcontrollers list clock speeds as high as 16 or 20 MHz -- around the speed of an mid-1990s Intel 386 computer. That sounds promising, until you consider the fact that it doesn't natively support floating point math -- the "FLOPS" measurement by which most CPUs are compared. I've seen some arduino demos that calculate ...


Only top voted, non community-wiki answers of a minimum length are eligible