Jump to content

Qualcomm Robotics RB5/Sensors/IMU: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 4: Line 4:


= IMU =
= IMU =
The Qualcomm Robotics RB5 Platfrom 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 the information on angular velocity and linear acceleration, as well as timestamp metadata.  
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, make sure you have the proper hardware configuration for your setup. More specifically, check the DIP switch settings for your specific board.
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 already existing interfaces for the IMU. First, you will need to check if the imud service is running. You can do so by running the following command:
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 to send commands to the IMU through sockets, namely the '''/run/imud_socket'''.  
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 proceed to configure your IMU. Each sensor has a specific ID, as well as a configurable sample rate.  
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 also a specific ID. The initialization process requires the following commands:
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:




1,654

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.