I am trying to use an IMU in a robotic car.

Specific IMU: https://learn.sparkfun.com/tutorials/9dof-razor-imu-m0-hookup-guide?_ga=2.87322972.515701132.1562620054-1210936642.1562620054

Specific ROS package: http://wiki.ros.org/razor_imu_9dof

I am able to get the IMU data to an Arduino serial monitor, but cannot get IMU data in ROS.

When I try to roslaunch a launch file for the IMU, it hangs and does not continue at the following output:

[INFO] [1562691381.293220]: Giving the razor IMU board 5 seconds to boot...

The IMU's port is correctly specified and same as port in Arduino IDE.

Does anyone have any possible explanations as to why my roslaunch waits for the IMU to boot when it seemingly works and is booted?


A mentor for the project I am working on said that he uploaded the ROS package firmware to the IMU already, so I believe that is not the issue.


1 Answer 1


Welcome to Robotics, Ryan. The ROS page you linked has quite a bit of information, and I am hoping you can please edit your question to clarify the steps you've performed from that page.

Specifically, Step 4.2 Load Firmware into Razor Board:

In this step you copy the Razor firmware from the ROS package and build it and load it into the board using the Arduino IDE.

You stated that you're able to get the IMU data to an Arduino serial monitor, but it's not clear how you're doing that. From the Sparkfun tutorial you linked, it looks like the board comes with some pre-loaded example firmware that will work with the Arduino Serial Monitor, but that software is not the ROS software for that device.

Can you please verify which firmware is running? Is it the example firmware that ships with the board or is it the firmware posted in the ROS tutorial?

  • $\begingroup$ I did not complete step 4.2 (Load Firmware into Razor Board) because my mentor on this project previously uploaded the firmware to the IMU for the ROS package. $\endgroup$
    – Ryan
    Jul 10, 2019 at 21:55
  • $\begingroup$ Is there a way to check which firmware is running on the IMU to verify? I cannot find a way to do this with google search $\endgroup$
    – Ryan
    Jul 10, 2019 at 22:01
  • $\begingroup$ @Ryan - The outputs look different. What steps are you doing to connect to the board when you are getting data? The Sparkfun tutorial says, open up a serial terminal and set the baud rate to 115200 bps ... upon opening the port, your 9DoF Razor IMU should immediately begin spouting out accelerometer, gyroscope, and magnetometer readings, so you should see ten values on there - time followed by the raw data. $\endgroup$
    – Chuck
    Jul 11, 2019 at 13:14
  • $\begingroup$ The ROS tutorial says, "To test by staring at numbers, bring up the Serial Monitor of Arduino under "Tools" → "Serial Monitor". Set it to 57600 baud and send the string "#o1" to the AHRS. With the ROS software you should be seeing something like the picture on the tutorial which shows an output like #YPR= and then three columns. Which baud rate are you using? Do you have to send #o1 to start or does data start on its own? What's the data format? $\endgroup$
    – Chuck
    Jul 11, 2019 at 13:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.