Interfacing the MPU-9250 with the Arduino and ROS

So the first step in this project is to interface the IMU to the Arduino to get the rotation values and send those values to ROS. We're essentially making an Arduino-ROS node that is receiving IMU values and publishing the yaw, pitch, and roll as well as the transformation (TF) corresponding to the IMU movement as ROS topics.

The following figure shows the interfacing of IMU with the Arduino. The IMU is interfaced using the I2C protocol:

Figure 7: Interfacing MPU 9250/9150/6050 with Arduino

The connection from Arduino to MPU-9250 is shown in this table:

Arduino pins MPU - 9250 pins
5V VCC
GND GND
SCL (21) SCL
SDA (20) SDA
Digital PIN2 INT

 

To start working on IMU values in ROS, we have to create a ROS-Arduino node that is receiving IMU values and send it as ROS topics. I hope you have set up the Arduino IDE in your system. For running this code, you will need the Arduino library for the MPU - 9250. Note that you can use the MPU - 9150 library for working with this IMU, and you can clone that library's files using the following command:

    $ git clone https://github.com/sparkfun/MPU-9150_Breakout/tree/master/firmware

Copy firmware/I2Cdev and MPU6050 into the arduino_sketch_location/libraries folder. The sketchbook location can be obtained from the File | Preferences IDE option.

Once you've copied both of these folders, you can compile the ROS-Arduino node. You can open the code from chapter_5_codes/MPU9250_ROS_DMP. Just try to compile the code and check whether it's working or not. I hope that you have already set the Arduino ROS serial client library , which is ros_lib. The entire procedure was mentioned in Chapter 22, Controlling Embedded Boards Using ROS.

The following figure shows the flowchart of the complete code. We'll go through a detailed explanation of code after this.

Figure 8: Flowchart of Arduino-ROS node
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.16.254