Rotation & translation Matrix between rgb camera and IR sensor asus xtion PRO live - projection

Anyone knows if there are some informations about transformation(Rotation and translation) between rgb camera and IR sensor? Calibration is the only way?
I have to project 3D points on the RGB image.

I guess you need to perform the extrinsic calibration for this case.

Related

How do I turn a Fitec FS90R servo motor 90 degrees clockwise and anti-clockwise using a PIC18F4550

I have tried varying the duty cycle of the servo motor but it only turns 180 degrees clockwise and anti-clockwise.
You need some measurement device to read the angle, if you want to stick with that servo. With the angle you can implement a closed-loop transfer function to approach the angle you want.
Servos as the FS90R are "continuously rotation servos" and the control signals sets the speed (exactly: the driving current, giving the torque) and direction. For example, see this fine explanation.
If you want to control the angle directly by the control signal, you need "the other" type of servo, described earlier in the linked Wikipedia page.

Quaternion issues

I'm working with a MPU9250 to control a 3D position. I have an object that can rotate in 3 axis ( Roll, Pitch and Yaw) but I found some problems.
Initially I tried to calculate Euler Angles from Quaternions, but I discover that Euler Angles have 2 discontinuity in +/- 90 degrees, and so if I rotate the MPU for 365 deg it gives me wrong values like it's shifting while rotating.
I read that there is the possibility to convert Quaternions to DCM (Direction Cosine Matrix) but I find this algorithm fills too much the Arduino processor for calculations.
The last possibility that comes to my mind is to control the position directly with Quaternions, so I have to "forecast" the arriving Quaternion to stop the rotation when the MPU will give me the same Quaternion.
If anyone knows how to implement this or any other way please let me know your suggestions.
Many thanks,
Luca

how to transform accelerometer data from device coordinates to absolute coordinates?

I'm using arduino to read from an accelerometer and gyroscope, from which I can get a vector of accelerations and also a vector of speeds of rotations in the device's coordinates, now I want to transform the accelerometer data into the absolute coordinates, in which the Z axis straightly points up aligned with the direction of gravity force, and X, Y form an absolute horizontal plane.
I've read many posts on internet, but cannot find a good solution yet. These posts either discuss how to remove noise by combining gyroscope with accelerometer (e.g., http://www.starlino.com/imu_guide.html) or provide a solution based on Android, which could directly leverages the rotation matrix provided by Android API (For example, this post: Transforming accelerometer's data from device's coordinates to real world coordinates).
But now, I only have raw readings of accelerometer and gyroscope, how can I transform accelerations from device coordinates to absolute coordinates via python?
BTW, in my experiments, the device will be always in an relative stable state in a while, which can be used to estimate the direction of gravity in device's coordinates.

Camera Pose Estimation synthetic data

I'm working on camera calibration and pose estimation.Do you know any software for producing synthetic data? I want to put my camera and my calibration object in the scene and move the calibration object. I want the simulator to give me the positions of calibration object in world's coordinate system and camera's coordinate system and some info like this...
Do you know such a thing?
You can have a look at Blender: you specify the positions of camera and objects in the scene by means of 3D coordinates; then with the render command you get the image for the camera.

Accelerometer tilt error correction

I am using arduino and accelerometer MMA7341 to measure the acceleration in x direction of an oscillating metal table. But the mounting of the accelerometer is tilted by a small angle (say Q) . Is it affect the acceleration?. If it is affect the acceleration in x direction , how can correct it without changing the tilt of the acceleration sensor.
"Tilt" and "acceleration" are both the same, from the perspective of most sensors, since both measure a force, rather than an actual angle (tilt) or change in velocity (acceleration).
What you should do is make sure the object on which the sensor is mounted is "level", within the best of your ability to determine such a thing, and use the values from analogRead() or whatever else your device provides, as the "0" values.
For the MMA7341 you'll also need to calibrate your analog signals, or else use a high precision reference as input to the Aref pin, assuming you're Arduino exposes that pin.
I think this depends on what you are measuring. THe MMA7341 looks to be able to be used for acceleration as well as tilt. If you are measuring acceleration then the mounting position doesn't matter since acceleration is a change of velocity and the velocity delta will be constant regardless of orientation.
If you are measuring tilt then thats obviously different. You could theoretically measure the initial tilt and then compensate for that in your code if you wanted to of course.

Resources