Electronics: IMU - olinrobotics/gravl GitHub Wiki

Overview

PhidgetsSpatial Precision 3/3/3 High Resolution IMU

Links

  • Phidgets Product Page (link)
  • Phidgets Getting Started with Linux Page (link)
  • Phidgets Python Language Page (link)\
  • Phidget22 Python API Manual (link)
  • Phidget Code Samples (link)
  • Phidget "What is a Phidget?" Page (link)
  • Phidget ROS Package Page (link)
  • phidget_imu ROS Package Page (link)
  • imu_filter_madgwick ROS Package Page (link)

Setup

  1. Follow the instructions on the Phidgets Getting Started with Linux page (link)
  • Note: When running example program with current IMU unit, I found that the program registered four separate devices for each plug & unplug. Maybe one for each accel, gyro, etc? - Connor
  1. Read about the basics of Phidgets on the "What is a Phidget" page (link)
  2. Check out some example code written in Python for the IMU on the Phidgets Python Language Page (link)
  3. Install libphidget21 by following these instructions. (link) ROS uses libphidget 21, not 22.

OPTION 1: Follow install instructions for phidgets package install on ROS wiki (link)

  • The nodes resulting from this install return Phidget-specific data types.
  • If your rosmake --pre-clean phidgets command fails due to missing opencv2, edit the dependencies file inside the phidgets package and comment out the line regarding opencv as a dependency.
  • If your rosmake --pre-clean phidgets command fails due to missing other packages, run the command sudo apt-get install ros-indigo-navigation to install the ROS navigational stack, which has the packages you need.

OPTION 2: Follow install instructions for phidgets_imu package install on ROS wiki (link)

  • Run command `sudo apt-get install ros-indigo-phidgets-imu

Troubleshooting

  1. Setting up ROS library for Phidget

T1: Followed instructions for install on ROS wiki (link)

R1: When trying to add /usr/local/lib to the system-wide library path using the following link, received error (link):
bash: /etc/ld.so.conf: Permission denied

T2: Check /etc/ld.so.conf.d/lib.conf file

R2: /usr/local/lib is the default configuration for this file

T3: To bypass the error, temporarily added path to local shell using cmd: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

R3: When trying to copy udev rules with cmd sudo cp udev/99-phidgets.rules /etc/udev/rules.d, got error:
cp: cannot stat ‘udev/99-phidgets.rules’: No such file or directory

T4: Looked in /udev for phidgets rules

R4: Couldn't find the file.

T5: Ignored error, moved onto rosmake --pre-clean phidgets

R5: Threw error: [rospack] Error: package 'phidgets' depends on non-existent package 'move_base_msgs' and rosdep claims that it is not a system dependency. Check the ROS_PACKAGE_PATH or try calling 'rosdep update

T6: Cloned navigation msgs package to catkin_ws src folder (link); this package contains move_base_msgs. Then ran command catkin_make -pkg navigation_msgs

R6: Got error:
checking for module 'orocos-bfl'
-- package 'orocos-bfl' not found
CMake Error at /usr/share/cmake-2.8/Modules/FindPkgConfig.cmake:283 (message):
A required package was not found

T7: Removed catkin_packages for navigation_msgs, ran cmd sudo apt-get install ros-indigo-navigation

R7: Install completed successfully

T8: Ran catkin_make in catkin_ws file

R8: catkin_make completed successfully

T9: Re-ran cmd rosmake --pre-clean phidgets

R9: Got different error:
/home/cnovak/catkin_ws/src/phidgets/src/high_speed_encoder.cpp:37:23: fatal error: phidget21.h: No such file
or directory
#include <phidget21.h>
^
compilation terminated.

T10: Installed phidget21 instead of phidget22 following these instructions (link)

R10: rosmake --pre-clean phidgets Worked, everything is good.

If you got the error during 'rosmake --pre-clean phidgets' that is complaining about opencv2 being a required dependency,open 'manifest.xml' and comment out line 18 '' by changing it to '' and rerun 'rosmake --pre-clean phidgets'

I got an error that said a bunch of stuff. So I didn't install phidgets but the ros package ros-kinetic-phidgets-drivers. This is not available for Indigo. Run sudo apt-install ros-kinetic-phidgets-drivers to install.

Connor Novak last edited on 18/02/15

⚠️ **GitHub.com Fallback** ⚠️