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.) ...
Try freenect, there are some problems with OpenNI solution.
Firt, install freenect by
sudo apt-get install ros-fuerte-freenect-stack
After installation, connect your kinect (in USB 2.0 port) and run freenect
roslaunch freenect_launch freenect.launch
Then run Rviz and set Fixed frame to /camera_link, you can now add PointCloud2 window and select the ...
With respect to the Arduino + Kinect, see my answer to Start making robots with Kinect (short version: not happening without something with more CPU power than a Raspberry Pi, which you then have to carry onboard with sufficient additional battery power).
The other obstacle in your case is that the specifications of the Kinect are not well-suited for any ...
From Microsoft site:
What's the difference between the Kinect for Windows sensor and the Kinect for Xbox 360 sensor?
The Kinect for Windows sensor is a fully-tested and supported Kinect experience on Windows with features such as “near mode,” skeletal tracking control, API improvements, and improved USB support across a range of Windows computers and ...
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?
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 ...
It actually makes sense that the dot product in both cases is the same (zero) because the dot product of two vectors does not consider the vectors' origins. Or in other words the math for the dot product places the two vectors at the same origin. In this sense there is no way to distinguish converging or diverging vectors.
I think what you need to do is to ...
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 ...
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 ...
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 ...
Can Kinect data be stored directly onto a USB drive?
Yes. In ROS that would be easily done using bag files. In Windows, however, you might have to look for something native in the Microsoft SDK/OpenNI or code it yourself. Edit: In OpenNI there is something called .oni files for that purpose.
The implicit question: Does Kinect for Windows work in Linux?
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 ...
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, ...
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.
You should start here
Or if you are unfamiliar with ROS, start doing the beginner tutorials.
After that set up your Robot and install ROS on it.
gmapping will automatically build a map of your room as you move the robot around.
Finally after having a map file, all you need is to set up the navigation
There MCU which provide enough calculation power. I'd say "the bigger, the better". For example a ARM-CORTEX M4
This is enough with you just want to extract some coordinates
The protocol of the kinect is pretty simple (http://openkinect.org/wiki/Protocol_Documentation). You can easily implement a communication between the Kinect and the MCU
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 ...
I have used ROS and Ubuntu with a Kinect on many platforms and it has yet to let me down. I used it on a Pentium laptop without dedicated GPU as well as on powerfull desktops.
If the board has a USB port (which it does) and it can run Ubuntu, I don't see that there would be any problems with this setup.
I have also used MatLab on Windows and it is much ...
I don't think the degree of distance, which I assume you mean rotation between cameras, is relevant to computing the homography. Could you clarify what you mean by degrees of distance? The only requirement to compute a homography between two cameras is that there are at least 4 point correspondences (aka matching points) between the two images captured by ...