My favorite is the Learning OpenCV book. It has a fantastic stereo / 3D section that introduces concepts from the ground up. If you're at a university, you might be able to find the digital version available from the library website.
Depends, especially on how you are going to combine scans into a full 3D pointclound (if you need 360 degree views.) ...
The Kinect is certainly a popular choice these days for robotics. However, time-of-flight, structured light, and stereo cameras all have their own strengths and weaknesses. These two threads have a good discussion:
What main factors/features explain the high price of most industrial computer vision hardware?
Question for those who have experience using ...
Kinect 1 is a structured Light sensor, Kinect 2 is a Time of Flight camera.
Structured Light gives you better performance on edges where a ToF camera smoothes the data due to multipath-measurements. ToF has less problems with ambient light.
What is your use case?
So the Kinect uses a set of IR points to determine depth, not true stereoscopy. the DUO M and the Bumbee both use two cameras to achieve this, I am not familiar enough with them to give a good comparison between them and the Kinect but I am familiar with a new product that I have been using for a little bit called the ZED It has a detection range of ...
Excellent answer by George. If I may, I'd like add more details and suggestions. (I would recommend googling terms that are new to you).
Your entire robot (input) configuration depends on what kind of data your code is going to process. If it's more vision oriented, the data can be depth maps, point clouds, rgb images or a combination of the 3. This means ...
The information matrix is the inverse of the covariance matrix. In this case, the covariance is over the variables (x,y,z,qx,qy,qz). It is assumed that your quaternion is normalized to be unit magnitude.
You should be able to get an estimate of the information matrix from the ICP.
In general the covariance estimate can be found by the following ...
You can use all versions of the Kinect for Windows SDK, even with an Xbox-version. Some parts are limited and you require a Kinect for Windows in commercial scenarios (more information on my blog).
In your scenario you should be able to use the official Kinect for Windows SDK v1.8 to use the speech/sound scenario. If you are going to do speech/voice ...
active system (works also on textureless surfaces)
defined range (low maximal range)
does not work good outdoors in direct sunlight
- adjustable (different camera, different baseline possible for different ranges)
higher framerate possible
hard to built right (...
You should simply use the callback method since you can have an object in your code that is always updated with the latest measurement. Then you can simply poll the measurement in that object whenever you want (say in some while loop running at a given rate). I notice you are linking to help related to using Python, whereas I am more familiar with coding ROS ...
The movement of the ping pong ball is going to be ballistic, so you really only need to know its 3d position in 3 different locations in order to fully constrain its motion. In reality, you will probably want more. This excellent paper An Application of human-robot interaction: Development of a ping-pong playing robotic arm uses around 8-10 locations in ...
There are several platforms possible, depending on your experience level and needs.
If you are comfortable working with the Raspberry Pi or the Beagle Bone... the next step up might be the Jetson TX1 or TX2 from Nvidia. Please note that the default install of OpenCV4Tegra does not include the slam modules, so you will have to install OpenCV from source if ...
The information matrix is just the inverse of the covariance matrix.
I recommend you read the page I linked, or just google covariance matrix. Essentially it contains how certain you are in your measurements. (The lower the number the less uncertain you are).
As an example:
The translation matrix between nodes(ignoring rotation for now). Your covariance ...
The Structure sensor is a "3D sensor for mobile devices". Reading over the details it sounds like a smaller version of Kinect. It has open source drivers, openNI support etc. It's been on my to buy list for awhile but I don't have an immediate application just yet.
From the site,
The magic of 3D depth sensing begins with the ability to capture fast, ...
You can install the a package for kinect:
sudo apt-get install ros-hydro-openni-launch
Then to make the package publish kinect's topics:
roslaunch openni_launch openni.launch
To visualize the depth image run:
rosrun image_view image_view image:=/camera/depth/image
To visualize for example the Point Cloud in rviz you can add a PointCloud2 Display ad ...
If cost is a factor, you can also do 3D reconstruction using stereo vision with a pair of commercial digital cameras. Many algorithms are available online to reconstruct 3D scenes from a pair of stereo images since this is a popular research topic.
The quality and range of the reconstructed scene will be a function of the image resolution, the image ...
As Mark Omo mentioned, the Kinect is a fundamentally different technology than a simple stereo pair. There are also other technologies such as a "standard" time-of-flight cameras like the Swiss Ranger and PMD, and infrared stereo with projected texture of the Intel RealSense.
I believe each technology has its own strengths and weaknesses. For example, ...
The critical part is the registration between depth data and RGB data. If the registration is calibrated properly then you can just extract the depth for the particular target pixel (X,Y), using interpolation for sub-pixel coordinates. See this answer for help with the registration -- it is a common problem that has already been solved.
Once you have the ...
Until you learn more about ROS the best approach is to use a callback. You can copy the data to a global variable and use that in your main program if it helps you reason about the data flow better.
If you are trying to do this to reduce network congestion, your best bet is to change the driver parameters to reduce the framerate or resolution. For the ...
Consider this - what is the process of doing SLAM? First, get some sensor data, then move in the world, get some more sensor data, then try to do feature identification and matching to build up a map.
You could, theoretically, still build a map in "depth" units instead of in meters or feet or whatever units your camera model spits out. After all, what is a ...
These values are relative to the camera. Z is always positive as the camera can't see what is behind. X and Y can be positive or negative depending on if an object is left/right or higher/lower than the camera's viewing direction.
As others mentioned the Kinect is a different technology which has different trade offs. Stereo performs better in sunlight than a Kinect and it is easier to adapt the range, particularly if longer range is desired.
The reason that the stereo modules are more expensive than a couple of web cams is because they are not the same thing. The technology itself ...
Well, from the last post in the thread you linked states it's a USB speed issue, then says you need 20 MB/s to do depth and RGB, which means you cannot do it on a USB 1.0 port; you need 2.0 or 3.0.
See this support page on Apple's site for how to determine the speed of your USB ports. You didn't give the model of your computer, but if it's an older laptop ...
I only have experience with the kinect, but it will definitely not work outside no matter what (unless the sun is down) and I have had problems when giving demos near large windows with sun.
Tldr near windows or outside during the day is a nogo
If you want a low cost vision sensor that does all the work for you I sugest you look here -> Pixy Cam
From here you can work with two cameras and build your application using stereo vision to achieve 3D. You will have some work, because you have to use some kind of controller (arduino, netduino, whatever), build your own algorithm, build a case, etc... but ...
What kind of processing power are you hoping to carry to do the depth sensing/processing? I would recommend the ZED camera when paired with an Nvidia K1 it works great for mobile vision processing, it is not environmentally sealed so it can only operate in good weather. It works from about 2-30m for most applications. if you are looking for bigger objects (...
PCL library has all the functionality you need for 3D scanning, as well as it have the complete GPU pipeline, take a look at kinfu. Here is some tutorial regarding 3D scanning. Take a look at MeshLab too see how to do it manually.
Any approach will work. With object rotating on the platform you potentially has more information of object position, thus making ...
Your sensor does not measure state
Kinect does not provide any "measurements" of state. It scans the environment and provides a point cloud. To use this to localize a robot, you must compare currently-sensed point clouds to past-sensed point clouds to provide a "correction" term. ICP (as mentioned) will provide such a "correction" term. That correction is ...
From the wiki of the g2o file format:
The information matrix or precision matrix which represent the
uncertainty of the measurement error is the inverse of the
covariance matrix. Hence, it is symmetric and positive semi-definite.
Unfortunately there is no mentioning of the representation for the covariance matrix for that file format, that I ...
Kinect is an active 3D depth estimation setup that employs IR laser
structured patterns for Depth calculation and are reliable for Indoor
Stereo Camera setup is a passive 3d depth estimation setup that
typically involves use of Stereo calibration procedure in order to
compute projection matrix that will transform a 2D ...
I guess that the approach in structured cameras is pretty much the same.
However, the world is trying to minify this kind of sensors.
Some people speculate that the reason for kinect to be so big is the array of microphones that allows to localize source of noise.
I haven't ...