23

Wilderness survival might be a better place to look for "finding north without a compass" than in robotics, but here are some electronic adaptations of those techniques that might actually work on a robot. Finding North GPS method Of course, your first choice would be to use a GPS -- the line between each pair of fixes will give you your direction of ...


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


18

The issue you're running into is often referred to as sample impoverishment. We can see why your approach suffers from it with a fairly simple example. Let's say you have 3 particles and their normalized weights are 0.1, 0.1, 0.8. Then multiplying by each weight by the 3 yields 0.3, 0.3, and 2.4. Then rounding yields 0, 0, 2. This means you would not pick ...


10

You can get experimental data, and perform some statistical analysis to determine the process noise (noise between time steps), and sensor noise (compared to a ground truth). To get the ground truth for sensor noise, you either need a more accurate sensor, or else experimentally test while keeping the state of interest at a known (usually fixed) value. If ...


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

First, we need to define optimal. Since you do not say what you consider optimal, most people choose a quadratic expression. For example, suppose your current joint angles are given by the vector $\vec{\alpha}$. We can consider minimizing the movement required - with an error $\vec{x} = \vec{\alpha} - \vec{\alpha}_{start}$, you can define a cost function $J=\...


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

As I guess you found out yourself, the resampling method you are proposing is slightly flawed, as it should not alter the number of particles (unless you want to). The principle is that the weight represents the relative probability with respect to the other particles. In the resampling step, you draw from the set of particles such that for each particle, ...


9

You have asked two questions. As I interpret them they are: Is it necessary to linearize the odometry motion model for use with an extended Kalman filter (EKF)? Is it better to use the odometry motion model instead of the velocity motion model. Regarding question 1, the short answer is "yes." The guarantees of the Kalman filter (KF) only apply to linear ...


9

Typically, a coordinate frame is placed at the robot center. The x-axis points forward, the y-axis points left, and the z-axis points up. Then, we measure angles with respect to the x-axis. So, a 90 degree angle would mean along the y-axis, as shown, So, "12" corresponds to 0 yaw, or straight forward. "9" corresponds to 90 degree yaw, or along the y-axis....


9

It may be worthwhile to consider how laser scanners work. We know that it is possible to send a beam of light at an object, and detect how long it takes to be reflected back to the sensor to measure its distance. First of all, we use lasers because reflection of the light from the object is so important. lasers keep the light concentrated in a narrow beam, ...


8

Particle filters or Monte Carlo localization can be used. Basically you distribute a set of points at random across the maps and see which points would have sensor readings most similar to the reading from your map. The best points survive and you create new points and so forth. After some iterations you have a group of points, hopefully, all in the same ...


8

Can't answer all your questions, but based on your use case Differential-GPS might help you. Modern tractors are using this for precisely navigating on fields (in autonomous mode). Here fixed ground stations are used, which know their exact position and calculate the error in the current signal. This adjustment is then used by the other GPS receiver in the ...


8

Many gyros are sensitive enough to detect the Earth's rotation, and so get an estimate of "true North" (rotational North, as opposed to magnetic North). I've been told the first person to detect the rotation of the Earth using a gyroscope was Léon Foucault, in 1852. ( a ) That is the operating principle of the gyrocompass and the gyro-theodolite, which are ...


8

It is both acceptable and standard to use camera observations with a Kalman filter if you are talking about landmark positions in pixel or real-world space. Pixel space observations are usually randomly Caushy distributed but it turns out the Gaussian Kalman filter works pretty well in this case. The method you're describing using the Mahalonobis distance ...


6

You might be able to do this using inductive coupling to give the quad copter some indication as to which direction it should move to approach the landing pad. On the landing pad is a single coil on the vertical axis (this is the transmitter). On the quad-copter are two coils, 90º apart and on the horizontal axis (these are the receivers). An alternating ...


6

A traditional approach is to use an error correcting algorithm like a Kalman filter. By combining dead reckoning from wheel encoders and heading commands with GPS you can smooth out GPS jitter. This is not an instantaneous improvement as it requires a series of measurements to estimate the error inherent in the GPS signal.


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

I would model this as a one-state system (x), with the gyro as the control input. The gyro noise becomes state input noise, the compass noise becomes measurement noise. So your system model becomes $$\hat{\dot \theta} = \omega_{gyro} + w$$ $$\hat y = \hat x$$ where $\hat y$ is the filter's estimate of direction, which you compare to the compass direction ...


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

Here are a few possible points of consideration. Certainly the UKF has many counterpoints where it has an advantage too. The most obvious advantage is computation power. Don't forget that traditionally, these filters are implemented on embedded systems with very limited computational resources. Also, while I don't have much experience with UKFs myself, one ...


6

Your question addresses three very different problems, all of which are hard with complicated research-type algorithms. Localization: When you have a known map of the environment and an unknown robot position. The most common algorithm for this is Monte Carlo Localizataion. This is a particle filter exactly like what you're describing. Mapping: When the ...


6

Hi and welcome to the wide, ambiguous, sometimes confusing world of research. But seriously, looking at 20 years of papers will sometimes produce these confusions. Let's look at what's going on. In the first reference, what they are saying is: An INS/Gyro is nice, but has an error in it. That error changes (drifts) over time. Therefore, the error in the ...


6

Localization under water was always a problem in ocean robotics as electromagnetic signals do not propagate very well in water. I think your best localization sensor in that case would be the good old sonar, which works much faster in water. You could have four of them and detect how far are the pool walls on each side then with a triangulation algorithm ...


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

For an example of python code that properly implements resampling, you might find this github project to be useful: https://github.com/mjl/particle_filter_demo Plus, it comes with its own visual representation of the resampling process, that should help you debug your own implementation. In this visualization, the green turtle shows the actual position, ...


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

Monte Carlo localization is just another name for a particle filter. Monte Carlo methods are a broader name for computational algorithms that rely on random sampling. A particle filter is a specific application of the general Monte Carlo method for localization, and so it is simply referred to sometimes as Monte Carlo localization. If you ask Lord Google, ...


5

The gyrometer gives you angular velocity about each axis. You simply integrate these values to get the roll, pitch and yaw of the robot. Since this is 2D, all you care about is yaw, and you'll integrate one value. Of course, there are many different ways of integrating the value you read from the gyrometer. The easiest way is to sample the gyro, timestamp ...


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


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