Hot answers tagged

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 ...


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

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

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{...


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

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

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

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

Perhaps the best way to get started on this kind of problem is to take relevant coursework(either online or in real life) or to read an introductory book on this topic. A good introductory book on motion planning and SLAM is Principles of Robotic Motion. A good course on SLAM/Mobile Robots: Control of Mobile Robots


5

If you know the wheel radius and the speed of the robot, you will be able to calculate its location at any time relatively to its initial position. travelled_distance = Speed * time; current_position = initial_position + travelled_distance; This is a simplified 1-dimensional equation than can help you. But keep in mind that without sensors and odometry the ...


5

There are now some sub and around ~1000USD 3D Lidars available. I wanted to provide an answer for future reference if anyone else comes looking for "cheap" Lidars. LeddarTech M16 ~500 USD on Ebay Range: 110 m FOV: 19x3.0 degrees (up to 8.0 degrees depending on model, with 30 m range at that FoV) Refresh rate: 6.25 Hz https://store.leddartech.com/ BeneWake ...


4

As it says in the description of the file format, it is for graph based SLAM approaches. These work on minimizing the error of a pose constraint network. You can think of it this way: There are a number of reference frames (your vertices) and then you have knowledge on the transformation between these frames. These transformations are associated with an ...


4

Yes, as defined in literature, all localization requires a prior map. This is because the goal of localization is to localize a robot with respect to some feature. If you don't know where the feature is, you can't know where the robot is. If you are uncertain about the features, then you are doing Simultaneous Localization and Mapping (SLAM).


4

My understanding of your problem is that you would like to discover and navigate a 2D maze of irregular obstacles with a non-holonomic robot using a single forward-looking ultrasonic range sensor and wheel odometry. This is a hard problem. "Best" solution Although a "best" or "optimal" solution to this problem possibly could be implemented on an 8-bit ...


4

Imagine someone put you in a wheelchair and blindfolded you, then let you reach your arm out and touch a wall. You could tell how far away the wall was, but as long as you were pushed parallel to the wall, how would you know how far you had gone? You can't count steps or see the end of the hall, so you do not have a way to index your samples of where the ...


4

Lidar, sonar, and radar all work generally the same: Emit a pulse. For radar, this means briefly energizing an antenna. For sonar, it means briefly energizing a sound transducer/speaker. For lider, this is means briefly flashing a light (typically a laser). As you emit the pulse, start a timer. Wait for a reflection to return. For radar, this means an ...


3

Just to add up on this, using odometry to estimate the robot position is much faster than using data from a laser scanner. In most situations, data from a range scanner is handled as a 2D PointCloud. This means that in order to estimate the relative pose between positions A, B you need to align their corresponding PointClouds and find the most probable pose ...


3

You might want to have a look at my maze solving robot solution (http://www.benaxelrod.com/robots/maze/index.html). I used a Lego RCX which is more powerful than an 8bit microcontroller, but is still pretty resource constrained. I abstracted away most of the hardware problems to focus on the algorithm. It uses a flood-fill or A* type algorithm.


3

I assume that your target environment is indoors as you use RGB-D camera. When you want to use it with quadrotor, you need high update rate for accurate pose estimation. Some packages that you can look at are http://vision.in.tum.de/data/software/dvo http://wiki.ros.org/demo_rgbd https://github.com/ccny-ros-pkg/ccny_rgbd_tools Next, if you want to use ...


3

What you are referring to is plotting the estimate with the uncertainty bounds - in particular the $3\sigma$ ($\pm3$ standard deviations) bounds which corresponds to 99.7% probability that the true state is within this region. The uncertainty bounds can be extracted from the state covariance matrix. I think what you are plotting is the residuals of some ...


3

I wasn't totally sure what you meant by "draw and arc and check where the arc is on valid map position. Then move the robot there and calculate the angle to rotate the robot". Perhaps you mean something like this: You draw an arc starting at the face, coming straight out of the all (tangent to the face's normal vector), and ending at the robot. That's ...


3

Frontier based exploration is concerned primarily with exploring the physical space in order to produce an occupancy grid (or cost map) of the terrain traversibility. The control actions follow a set of rules which work empirically well (but not theoretically optimally) to achieve for the frontier-exploration goal. Information-gain methods can be used to ...


3

Your intuition is mostly correct. Returning to where you started and re-observing landmarks you mapped earlier is called closing the loop in the SLAM literature. As you mentioned, your uncertainty will grow as the errors accumulate before you return to the start, if you don't have an absolute sensor. An absolute sensor is one that directly measures your ...


3

I'm pretty sure that a very basic IR proximity sensor would do the trick. Glass is opaque to all but visible light. IR (as well as UV) will not penetrate the glass and you ought to be getting reliable distance measurements to the glass's surface.


3

I don't think what you're asking is possible with the state of the art sadly. You cannot, AFAIK, generate a 3D map from a hand held 2D LIDAR without any other sensors. It's a very interesting question you're raising but I think it's a research question :) A LIDAR is going to give you a 2D laserscan/Pointcloud. That 2D data will not possible to extrapolate ...


3

That is an already solved problem. As Squelsh mentioned CSIRO released its initial version in 2009 and their work is commercialized by GEOSLAM already. One of a CMU student released a open source version of CSIRO's work, called LOAM. Unfortunately, he also commercialized his work and closed the original git. Good news is that many people have a copy of ...


3

As the wikipedia page of Occupancy grid mapping explains, the result of the mapping process is a binary 1 or 0, occupied or not, the decision itself may be based on noisy data, which involves the probabilistic assessment of prior information to infer the posterior probability of the occupancy.


2

To do SLAM, you will need a relatively good estimate of position. Robots that use laser scanners can make do with just odometry, because the data is relatively accurate, and the scanner data can be used to help localize in subsequent time steps. Ultrasound sensors are very fuzzy, they generally have a direction fuzziness of 20+ degrees, and anything in the ...


2

There are many ways to measure the statistical difference between two distributions. For your case, you might consider the Bhattacharyya distance. From that page, the Bhattacharyya distance $D_B$ is $$ D_B={1\over 8}(\boldsymbol\mu_1-\boldsymbol\mu_2)^T \boldsymbol\Sigma^{-1}(\boldsymbol\mu_1-\boldsymbol\mu_2)+{1\over 2}\ln \,\left({\det \boldsymbol\Sigma \...


2

The world is always bigger than the robot's memory can hold (it's bigger than your memory can hold, too). There are 2 ways to reduce the space that you need. The first is to consider whether you need to pre-allocate the storage space, and the second is to consider what kind of compression you can use. Pre-allocating space makes sense if you already have ...


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