Hot answers tagged

11

Off the top of my head I would go by the following selection criteria color/b&w - usually b&w is better, since the stereo algorithms only use one channel anyway baseline - this really depends on the scene. With the baseline you control how much accuracy you get with distance. Wider baseline results in higher disparity values and thus less noise on ...


9

3D/Depth-Camera: The most inclusive terms, only means that the camera gives you 3d data. Stereo-Camera: One kind of 3D-Camera, consists (in most cases) of two gray-scale Cameras. RGBD-Camera: A sensor that gives you depth and color. In most cases, this refers to a Kinect-Style camera (or Primesense, Realsense), But a stereo-camera could also create ...


8

It all depends on the video quality that you require. The short answer is to use a 3G or 4G transmitter, assuming that you are in an area with mobile coverage, to either a local device (Mobile phone) or a cloud based service. Other options exist, including the use of XBee networks. XBee networks (depending on the series used and protocol, and whether you ...


8

Raspberry Pi has only one hardware PWM channel and Linux distribution it runs is not a real time system, so software PWM may be very unstable. You are not guaranteed, that your program will be executed at exact frequency you want, so you will have trouble getting precise timing required to drive servos. If you already have Arduino Mega and SSC-32, I would ...


7

The following diagram (1) illustrates a method by which a Lancaster navigator determined airplane height above the water of a lake. Such a method is useful if the ground lacks features needed for other forms of Visual Servoing. A program I saw about mission Chastise showed one spotlight shining green and the other red, to avoid confusion about which way to ...


7

A few things you should be on the lookout for: Global shutter basically means all pixels get captured at the same time, as opposed to Rolling shutter where they are captured sequentially in a line scan fashion. Since your UGV will be moving around and performing stereo algorithms over the images you capture, it could be important that you avoid aberrations ...


7

I still think this is off-topic, but it seems I need more space than a comment to show (answer?) why that is so. You are starting from some performance specifications and are looking to get to a set of features you need in your camera. Here is a post from NI about stereo vision that gives a formula for depth resolution: $$ \Delta z = \frac{z^2}{fb}\...


6

You should start by calculating how many frames per second you need, and how much camera resolution you can process at that framerate. If nothing else, that will prevent you from overspending or from buying a camera that won't suit your needs. Beyond that, there are a variety of features that make the choice more difficult/interesting. Different cameras ...


6

Using a so-called optical flow sensor is the best way to help with holding the horizontal (i.e. in X-Y plane) position. I don't see any reason why you couldn't do the same for vertical control, although a sonar is probably easier and cheaper to use for this (likewise, if you are indoors, you could use 2 sonars for the horizontal position as well) People ...


5

You probably are asking too much of inexpensive components. The raspberry Pi does not have 2 camera connections, but its brother, the Pi Compute board does. http://makezine.com/2014/11/03/stereo-depth-perception-with-raspberry-pi/ Even then, you will have to write optimized GPU Code in assembler to get anything near acceptable performance if you try to do ...


4

That is an interesting topic, and not very easy to get right on the first try. From experience with this, here are the most important things. Synchronization. The camera must be 100% synced. For example, say the UGV is driving at a modest 36Km/hr (10m/s) and recording frames at 30 frames per second. That is, at every frame the UGV would cover 3m. Now, say ...


4

Common solutions are from those who fly FPV (First Person View), they use simple analog cameras connected to 900 MHz, 2.4 GHz, and 5 GHz the lower the frequency generally the longer the transmission distance. With a 1 W 900 MHz transmitter with a cloverleaf antenna (a common antenna type), and a 18 dB gain patch antenna directed at your craft you can easily ...


4

The first thing is to make sure that the cameras will get the coordinates of the object at the same time (I don't know if Pixy has a FREX or STROBE signal for synchronization), or that the object is not moving. Then, have a look at OpenCV, it has a section on 3D calibration and reconstruction (i.e. find the depth of an object based on the coordinates of two ...


4

You need a controller like this that can address them individually over I2C. These can be chained together to control more than you'll likely ever need: Adafruit 16-Channel 12-bit PWM/Servo Driver - I2C interface - PCA9685 https://www.adafruit.com/products/815 How to use them with a Raspberry Pi: https://learn.adafruit.com/adafruit-16-channel-servo-driver-...


4

My experience with ready-made stereo solutions is that they (as @Ben has said) provide you with synchronized image pairs and well-defined baseline geometry. If you are on a low-budget, and you have the capability to fabricate your own stereo rig, then I'd suggest making your own aluminium stereo rig and buying two identical cameras and lenses, as you can ...


4

This AR.Drone provides SDK, therefore, you can access the images on real-time. It is fully compatible with Linux. They have examples also for smartphones. I believe android and iPhone. It has two cameras. I've bought it and its price is reasonable. At that time, the price was roughly 272 CAD. Of course, the price is now more expensive than before but I ...


4

Each camera needs to be defined by 6 variables (3 position, 3 orientation). This would mean that during the calibration process, a solver needs to find 12 variables. As this is done usually with an nonlinear optimization process, the solutions are quite sensitive to the initial guess. By making them parallel and giving them a fixed width, you can give the ...


4

Performance differences between using an embedded GPU vs. the cloud? For your context (to my mind, gesture recognition would ideally be realtime), the latency of going over the cloud would push me towards hardware. Cost differences between using an embedded GPU vs. the cloud? Depends on your volume. The cloud is not necessarily cheaper than hardware in ...


3

This representative sample of what's out there may give you some idea of what's out there at various price points: Unfortunately, you're talking several thousand dollars for an outdoor unit with 10's to 100's of meter range (as of March 2015). The chart is from a blog article I wrote on the topic. Google used a $70-80K unit on their original vehicles. The ...


3

I would like to suggest you to use Beaglebone Black , it is smaller than size compared to Raspberry pie. It is just the size of a credit card. And has a faster processor of 1 GHz and has an inbuilt 3D graphics Accelerator. There is already a Cape Board for BBB that supports HD Video sensors. Update : And if you want to use OpenCL then I would suggest you ...


3

"All I need to do".... Famous last words. This is a very complicated project to attempt for multiple reasons. I'll try to break down these challenges. For documentation, the datasheet has all the information that you need, but there is probably not any code available that is ready to use. Sparkfun has recently introduced a 'degree of difficulty' rating for ...


3

The best answer is probably going to be an ultrasonic sensor on a servo, you can get them in a huge range of values, from very close to very far range depending on your application, and varying beam widths depending on your accuracy needs. If you need more than 255 steps you could go with a motor and a encoder but that will be slightly more complex.


3

Kinect: Pro: cheap already calibrated active system (works also on textureless surfaces) dense stereo Con: defined range (low maximal range) does not work good outdoors in direct sunlight Stereo: Pro: - adjustable (different camera, different baseline possible for different ranges) higher framerate possible works outdoors Cons: hard to built right (...


3

I bought an AR done 2.0 for my research. I used Labview to process the realtime video feed from either the bottom camera of the drone or the front camera. You can read more details on how to setup the 3rd party free library to use Labview to control and to receive realtime sensors data and video feed as well: AR Drone Toolkit for LabVIEW - LVH


3

It happens many times that set-points fed in our systems do change in a step-wise manner. Your intuition of filtering those variations is correct and represents a common practice. Here I'd give two cases: You have direct access to $\dot{s}$, which is thus your velocity reference varying step-wise. Then, you could consider a simple frequency based filter, ...


3

"3D camera" is a generalisation that covers sensors that can observe a point-cloud or depth map of the scene they are observing. Some 3D cameras use a projector (via various ways) to improve the resolution and/or reduce noise of these sensors. The fact that the projector is IR is not important, it could be a red laser projector instead, but IR is used so ...


3

It looks like what I saw when a colleague of mine was working with fisheye lenses; I found this post after doing an image search for "rectify fisheye image" and following the link from this picture. At that post, they're using openCV to do the rectification. I'm always reluctant to bulk copy/paste someone else's content, so I'll just say that the tl;dr ...


3

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


3

You can only say that the distorted image coordinates are in the range (0-240, 0-180), since that's the image you are starting with. Typically you assume the dimensions of the undistorted image as being the same as the distorted image, and for every pixel in the undistorted image work out the corresponding coordinate in the distorted (input) image. It will ...


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