<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#ffffff">
    Adam got my firmware situation worked out for the Razor IMU so I am
    now getting data over the /dev/imu device and the /imu ROS topic.<br>
    <br>
    And Adam's udev rule below (after substituting for my serial number)
    works perfectly for me under Ubuntu 10.04.  However, the following
    rule based on the Eric's link to answers.ros.org does not:<br>
    <br>
    SUBSYSTEMS=="usb", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="0403",
    ATTRS{idSeri<br>
    al}=="A600eIpn", SYMLINK+="imu"<br>
    <br>
    Googling around for more info on this topic, it appears that some
    people use a command called "udevinfo" for getting device attributes
    but the command does not exist under Ubuntu 10.04.  Instead, you're
    supposed to use udevadm.  For example, on my system where the IMU is
    on device /dev/ttyUSB1 I get:<br>
    <br>
    $ udevadm info -q all -n /dev/ttyUSB1<br>
    P:
/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB1/tty/ttyUSB1<br>
    N: ttyUSB1<br>
    S: char/188:1<br>
    S: serial/by-path/pci-0000:00:1d.7-usb-0:1.3:1.0-port0<br>
    S: serial/by-id/usb-FTDI_FT232R_USB_UART_A600eIpn-if00-port0<br>
    E: UDEV_LOG=3<br>
    E:
DEVPATH=/devices/pci0000:00/0000:00:1d.7/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB1/tty/ttyUSB1<br>
    E: MAJOR=188<br>
    E: MINOR=1<br>
    E: DEVNAME=/dev/ttyUSB1<br>
    E: SUBSYSTEM=tty<br>
    E: ID_PORT=0<br>
    E: ID_PATH=pci-0000:00:1d.7-usb-0:1.3:1.0<br>
    E: ID_VENDOR=FTDI<br>
    E: ID_VENDOR_ENC=FTDI<br>
    E: ID_VENDOR_ID=0403<br>
    E: ID_MODEL=FT232R_USB_UART<br>
    E: ID_MODEL_ENC=FT232R\x20USB\x20UART<br>
    E: ID_MODEL_ID=6001<br>
    E: ID_REVISION=0600<br>
    E: ID_SERIAL=FTDI_FT232R_USB_UART_A600eIpn<br>
    E: ID_SERIAL_SHORT=A600eIpn<br>
    E: ID_TYPE=generic<br>
    E: ID_BUS=usb<br>
    E: ID_USB_INTERFACES=:ffffff:<br>
    E: ID_USB_INTERFACE_NUM=00<br>
    E: ID_USB_DRIVER=ftdi_sio<br>
    E: ID_IFACE=00<br>
    E: ID_VENDOR_FROM_DATABASE=Future Technology Devices International,
    Ltd<br>
    E: ID_MODEL_FROM_DATABASE=FT232 USB-Serial (UART) IC<br>
    E: DEVLINKS=/dev/char/188:1
    /dev/serial/by-path/pci-0000:00:1d.7-usb-0:1.3:1.0-port0
    /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A600eIpn-if00-port0<br>
    <br>
    From this output, I never would have guessed Adam's solution.  For
    one thing, there isn't even a "product" attribute listed.  Does this
    mean that people are using a different command/utility for getting
    the device info?<br>
    <br>
    Thanks!<br>
    patrick<br>
    <br>
    <br>
    On 03/16/2011 07:56 AM, Adam Stambler wrote:
    <blockquote
      cite="mid:AANLkTimegCM=3q-+j0+t81kECt8XQc1tzm24dJdfN+VW@mail.gmail.com"
      type="cite">Hello,<br>
      <br>
      Using a udev script like that is exactly what we are doing right
      now on our robots with all of our serial ports.  We have udev
      scripts  matching the FTDI serial number to the device name. <br>
      <br>
      For example: <br>
      KERNEL=="ttyUSB[0-9]*", ATTRS{product}=="FT232R USB UART",
      ATTRS{serial}=="A700ek5i", SYMLINK+="imu"<br>
      <br>
      My end goal, was to have udev launch an avr_bridge script that
      queries the device for the name programmed into it.  This name
      would then become the /dev symbol.  However, I haven't gotten the
      udev script working for that yet.<br>
      <br>
      -Adam<br>
      <br>
      <div class="gmail_quote">On Wed, Mar 16, 2011 at 10:50 AM, Eric
        Perko <span dir="ltr"><<a moz-do-not-send="true"
            href="mailto:wisesage5001@gmail.com">wisesage5001@gmail.com</a>></span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <div class="im">On Wed, Mar 16, 2011 at 10:17 AM, Jeff
            Rousseau <span dir="ltr"><<a moz-do-not-send="true"
                href="mailto:drzaiusx11@gmail.com" target="_blank">drzaiusx11@gmail.com</a>></span>
            wrote:<br>
          </div>
          <div class="gmail_quote">
            <div class="im">
              <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
                0.8ex; border-left: 1px solid rgb(204, 204, 204);
                padding-left: 1ex;">
                Just a thought, but make sure that /dev/ttyUSB0 is
                actually the razor.<br>
                I'd be careful doing a symlink from USB0 to /dev/imu
                unless you really<br>
                only have a single usb serial device in your system.  I
                have 3 on my<br>
                robot, so I just created some udev scripts like shown on
                the hokyo<br>
                tutorial:<br>
                <br>
                <a moz-do-not-send="true"
href="http://www.ros.org/wiki/hokuyo_node#Using_udev_to_Give_Hokuyos_Consistent_Device_Names"
                  target="_blank">http://www.ros.org/wiki/hokuyo_node#Using_udev_to_Give_Hokuyos_Consistent_Device_Names</a></blockquote>
              <div>
                <br>
              </div>
            </div>
            <div>For an example udev script that will assign a unique
              device name to an FTDI chip (which is what does
              serial->usb for the Sparkfun IMU), see <a
                moz-do-not-send="true"
href="http://answers.ros.org/question/65/how-can-i-get-a-unique-device-path-for-my"
                target="_blank">http://answers.ros.org/question/65/how-can-i-get-a-unique-device-path-for-my</a> .
              You could then symlink /dev/imu to that unique device path
              and be 100% sure that /dev/imu is definitely the IMU,
              regardless of how many other ttyUSB devices you have or
              the order they were plugged in in.</div>
            <div><br>
            </div>
            <font color="#888888">
              <div>- Eric</div>
            </font>
            <div>
              <div class="h5">
                <div> </div>
                <blockquote class="gmail_quote" style="margin: 0pt 0pt
                  0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);
                  padding-left: 1ex;">
                  <br>
                  <div>
                    <div><br>
                      On Sat, Mar 12, 2011 at 10:03 AM, Patrick Goebel
                      <<a moz-do-not-send="true"
                        href="mailto:patrick@pirobot.org"
                        target="_blank">patrick@pirobot.org</a>>
                      wrote:<br>
                      > Hi Adam,<br>
                      ><br>
                      > Thanks for making this wrapper available.   I
                      have a Sparkfun 9d_razor and I<br>
                      > have upgraded the firmware using the .pde
                      files in<br>
                      > imu_9drazor/src/SF9DOF_AHRS.  I did this
                      under Windows using the Arduino IDE<br>
                      > (version 0022) and the upload proceeded
                      without errors.<br>
                      ><br>
                      > Back on Linux with the IMU on port
                      /dev/ttyUSB0 I followed the Wiki<br>
                      > instructions:<br>
                      ><br>
                      > $ sudo ln -s /dev/ttyUSB0 /dev/imu<br>
                      > $ roslaunch imu_9drazor imu.launch<br>
                      ><br>
                      > The launch proceeded without errors with the
                      output:<br>
                      > process[imu_node-1]: started with pid [23276]<br>
                      > process[imu_msg_converter-2]: started with
                      pid [23277]<br>
                      ><br>
                      > However, when I echo the imu topic with
                      "rostopic echo imu" there is no data<br>
                      > being published. Ditto for the topic
                      imu/imu_raw.  Both topics are listed<br>
                      > with "rostopic list".<br>
                      ><br>
                      > One silly question: aside from having the IMU
                      connected to the USB port, do<br>
                      > I also have to apply power to the white power
                      connector?  I did not have to<br>
                      > do this under Windows to see data via the
                      firmware test application.<br>
                      ><br>
                      > Any thoughts?<br>
                      ><br>
                      > Thanks!<br>
                      > Patrick Goebel<br>
                      > <a moz-do-not-send="true"
                        href="http://www.pirobot.org" target="_blank">http://www.pirobot.org</a><br>
                      ><br>
                      ><br>
                      > On 01/10/2011 09:06 PM, Adam Stambler wrote:<br>
                      ><br>
                      > Hi,<br>
                      ><br>
                      > Just an IMU won't be able to track the
                      position of the IMU over time.  It<br>
                      > can be combined with odometry measurements
                      with a kalman filter to a decent<br>
                      > estimate though.<br>
                      ><br>
                      > If you are looking for a sparkfun IMU with a
                      premade ros-wrapper, I have a<br>
                      > wrapper for the sparkfun 9d razor imu called
                      imu_9drazor.  It is a part of<br>
                      > the rutgers-ros-pkg.<br>
                      ><br>
                      > Regards,<br>
                      > Adam<br>
                      ><br>
                      > On Mon, Jan 10, 2011 at 11:58 PM, abhy <<a
                        moz-do-not-send="true"
                        href="mailto:abhy.12354@gmail.com"
                        target="_blank">abhy.12354@gmail.com</a>>
                      wrote:<br>
                      >><br>
                      >> hello,<br>
                      >><br>
                      >> Does ROS have Sparkfun IMU supporting
                      driver?<br>
                      >><br>
                      >> "<a moz-do-not-send="true"
href="http://www.robotshop.com/sfe-atomic-imu-6-degrees-of-freedom-xbee-ready-1.html"
                        target="_blank">http://www.robotshop.com/sfe-atomic-imu-6-degrees-of-freedom-xbee-ready-1.html</a>"<br>
                      >><br>
                      >> Is this IMU sufficient for giving X, Y, Z
                      coordinates of the Robot?<br>
                      >><br>
                      >> Thanks,<br>
                      >> Abhy<br>
                      >> --<br>
                      >> View this message in context:<br>
                      >> <a moz-do-not-send="true"
href="http://ros-users.122217.n3.nabble.com/ROS-driver-supporting-Sparkfun-IMU-tp2232681p2232681.html"
                        target="_blank">http://ros-users.122217.n3.nabble.com/ROS-driver-supporting-Sparkfun-IMU-tp2232681p2232681.html</a><br>
                      >> Sent from the ROS-Users mailing list
                      archive at Nabble.com.<br>
                      >>
                      _______________________________________________<br>
                      >> ros-users mailing list<br>
                      >> <a moz-do-not-send="true"
                        href="mailto:ros-users@code.ros.org"
                        target="_blank">ros-users@code.ros.org</a><br>
                      >> <a moz-do-not-send="true"
                        href="https://code.ros.org/mailman/listinfo/ros-users"
                        target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
                      ><br>
                      ><br>
                      >
                      _______________________________________________<br>
                      > ros-users mailing list<br>
                      > <a moz-do-not-send="true"
                        href="mailto:ros-users@code.ros.org"
                        target="_blank">ros-users@code.ros.org</a><br>
                      > <a moz-do-not-send="true"
                        href="https://code.ros.org/mailman/listinfo/ros-users"
                        target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
                      ><br>
                      >
                      _______________________________________________<br>
                      > ros-users mailing list<br>
                      > <a moz-do-not-send="true"
                        href="mailto:ros-users@code.ros.org"
                        target="_blank">ros-users@code.ros.org</a><br>
                      > <a moz-do-not-send="true"
                        href="https://code.ros.org/mailman/listinfo/ros-users"
                        target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
                      ><br>
                      ><br>
                      _______________________________________________<br>
                      ros-users mailing list<br>
                      <a moz-do-not-send="true"
                        href="mailto:ros-users@code.ros.org"
                        target="_blank">ros-users@code.ros.org</a><br>
                      <a moz-do-not-send="true"
                        href="https://code.ros.org/mailman/listinfo/ros-users"
                        target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
                    </div>
                  </div>
                </blockquote>
              </div>
            </div>
          </div>
          <br>
          <br>
          _______________________________________________<br>
          ros-users mailing list<br>
          <a moz-do-not-send="true" href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a><br>
          <a moz-do-not-send="true"
            href="https://code.ros.org/mailman/listinfo/ros-users"
            target="_blank">https://code.ros.org/mailman/listinfo/ros-users</a><br>
          <br>
        </blockquote>
      </div>
      <br>
      <pre wrap="">
<fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
ros-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:ros-users@code.ros.org">ros-users@code.ros.org</a>
<a class="moz-txt-link-freetext" href="https://code.ros.org/mailman/listinfo/ros-users">https://code.ros.org/mailman/listinfo/ros-users</a>
</pre>
    </blockquote>
  </body>
</html>