Hot answers tagged

3

I find it easiest to make a class for stuff like this, where you have data you want to use between callbacks, or your want to publish a message inside of another callback. For example, your class might look something like (in the header:) class IMUIntegrator { public: void start(); private: void imu_callback(const your_imu::Message::...


3

The position coordinates x, y, z are inadequate information to compute the roll pitch and yaw. x, y, and z are the position of the vehicle in space. roll, pitch, and yaw are the attitude or orientation. They can change independently. Aka you can change the orientation of the vehicle independently from the position of the vehicle.


2

IMU's are extremely useful in SLAM. Here is just a basic list of some of the benefits/uses. Provides an initial guess on pose for optimization methods. Helps filter out outliers for computer vision feature matching. Provides scale in monocular slam. Provides global pitch and roll estimates. Works much better for Kalman filters prediction then a basic ...


2

Not necessarily, so long you're aware how the IMU's mounting orientation may affect readings. I don't know what IMU model you're using or how, but assuming it integrates a gyroscope and accelerometer, and you're using readings from both to compute roll, pitch and yaw, you must be aware how results will be affected by the device's orientation relative to its ...


2

If you assume the IMU lies on a fixed incline plane with pitch $\theta$, and you define yaw $\psi$ as the rotation between the IMU and the downhill direction, then the answer is $$\psi = \text{atan2}(-a_y, a_x)$$ where $a_x$ and $a_y$ are the X and Y accelerometer readings respectively. Note that this is independent of the inclined plane pitch $\theta$ (...


2

That is partly possible if you fuse linear acceleration and angular velocity. Estimate the gravity direction from IMU when the robot is stationary. Now you know the gravity direction. Once your robot starts to move around, your IMU will give you the estimation of acceleration where gravity and real acceleration are mixed. How to extract the real ...


2

I've never worked on Mecanum wheels before so I researched a bit. One of the first things I look for is there has to be a way to combine all of the encoder velocity measurements. Apparently, Jacobian equation can be used for that (I believe it is H_encoder in your question). You can calculate system's velocity by \begin{equation} \left[\begin{array}{c} V_{X} ...


2

Probably the easiest way to do this would be to convert from Quaternion to Roll-Pitch-Yaw rotations, and then your heading is the Yaw angle. I'll note that the Yaw angle is not fixed/correct unless your IMU has a magnetometer. Accelerometers can fix roll/pitch by detecting the gravity/down vector, but North only comes from the magnetometer. You can get more ...


1

Based on your configuration, you are trying to create map -> odom -> /thrbot/base_link. But you do not have a map frame. Looking at your oroginal TF, you should instead create world -> odom -> base_footprint. I think your configuration should be: odom_frame: odom base_link_frame: /thrbot/base_footprint world_frame: world EDIT: as ...


1

There's a lot going on here, and the issues aren't very clear to me. I would suggest trying to tackle your problems one at a time, and to not move on until you are confident the root issues are sorted out. For example, you have trouble with your PID output, but you also have issues with your angle estimates. You'll never fix the PID controller until you get ...


1

If you intend to stitch images together, you don't need to strictly implement slam. As long as there is good overlap between images, you can use SIFT/SURF features to extract matching keypoints and stitch the images together. Take a look at this tutorial on panorama creation. However, given your setup, I believe SLAM would be the way to go! since you already ...


1

One way to improve GPS accuracy is RTK GPS. RTK GPS is what some of these robot lawnmowers use because of its centimeters accuracy. https://learn.sparkfun.com/tutorials/what-is-gps-rtk/all


1

The IMU senses deviations from gravity within the inertial frame. Essentially, IMU measures the specific force $f_b$ given in the base frame as: $$ f_b = R^{bn}(a_{ii}^n-g^n), $$ where $g^n$ is the gravity in the navigation frame (NED), $a_{ii}^n$ is the inertial acceleration expressed in NED frame and, finally, $R^{bn}$ is the rotation matrix from NED to ...


1

Short answers: In my case, the Camera provides the x,y,z position with respect to April Tag. And IMU provides x,y,z position with respect to its starting point. How these two different position information fused together help in improving the position accuracy of my system ?? With an Extended Kalman Filter(EKF). IMU for short term prediction step, and ...


1

It is not possible to calculate your roll - pitch - yaw angles from linear position information. If you are using a simulated robot with sensors, you can use the gyroscope readings from the IMU sensor, that way you are going to have the angular velocities in three axes. You can then integrate this readings to get angular position. However, because of the ...


1

The acceleration raw data looks weird, because of the discrete jumps. For comparison here is raw data from a stationary MPU-9150 (MEMS IMU): The raw accelerometer and gyroscope data are not integrated, and thus should not experience integration drift. The roll and pitch are integrated quantities, which then follow a random walk, and could end up anywhere. ...


1

We developed this for pipeline inspections and used this to map a pipeline. We found magnetism not to be very reliable and did it without. It works, but you have accumulative errors that can be significant. In our case you will try to find reference points and make corrections for these accordingly. And with a pipeline you always have 2 reference points ...


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