1,654
edits
No edit summary |
No edit summary |
||
Line 4: | Line 4: | ||
= IMU = | = IMU = | ||
The Qualcomm Robotics RB5 | The Qualcomm Robotics RB5 Platform comes with the ICM-42688-P, a 6-axis IMU that combines a 3-axis gyroscope and a 3-axis accelerometer. In this section, we will learn how to extract information on angular velocity, linear acceleration, and timestamp metadata. | ||
== Hardware configuration == | == Hardware configuration == | ||
Before moving forward with the software configuration, | Before moving forward with the software configuration, ensure you have the proper hardware configuration for your setup. More specifically, check the DIP switch settings for your specific board. | ||
You can verify if the accelerometer is working by using the following binary: | You can verify if the accelerometer is working by using the following binary: | ||
Line 45: | Line 45: | ||
'''Note:''' You can refer to our Drone Demo for information on how to get a sample code that implements the steps described in this section. | '''Note:''' You can refer to our Drone Demo for information on how to get a sample code that implements the steps described in this section. | ||
If you are running Qualcomm RB5 software environment, you will have | If you are running the Qualcomm RB5 software environment, you will already have existing IMU interfaces. First, you will need to check if the imud service is running. You can do so by running the following command: | ||
<pre> | <pre> | ||
Line 63: | Line 63: | ||
</pre> | </pre> | ||
This service provides an interface | This service provides an interface for sending commands to the IMU through sockets, specifically the '''/run/imud_socket'''. | ||
''' Initialization ''' | ''' Initialization ''' | ||
Once you establish connection to the socket, you can | Once you establish the connection to the socket, you can configure your IMU. Each sensor has a specific ID and a configurable sample rate. | ||
{| class="wikitable" | {| class="wikitable" | ||
Line 84: | Line 84: | ||
|} | |} | ||
Each message has | Each message also has a specific ID. The initialization process requires the following commands: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 115: | Line 115: | ||
** Send start command with gyroscope ID | ** Send start command with gyroscope ID | ||
Now that we are producing data, the second interface we will need is memory mapping the IMU output. The /run/imu_map acts as an interface to access sensor data. By using memory mapping techniques we access the sensor's output data. The incoming data is structured as follows: | Now that we are producing data, the second interface we will need is memory mapping the IMU output. The /run/imu_map acts as an interface to access sensor data. By using memory mapping techniques, we access the sensor's output data. The incoming data is structured as follows: | ||
edits