rt_usb_9axisimu_driver repository

Repository Summary

Checkout URI https://github.com/rt-net/rt_usb_9axisimu_driver.git
VCS Type git
VCS Version dashing-devel
Last Updated 2020-09-03
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Package Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rt_usb_9axisimu_driver 2.0.0

README

日本語 | English

rt_usb_9axisimu_driver

ROS 2 package for USB Output 9-axis IMU sensor module.

industrial_ci

usb-9axisimu

Installation

$ cd ~/ros2_ws/src
# Clone package & checkout ROS 2 branch
$ git clone -b dashing-devel https://github.com/rt-net/rt_usb_9axisimu_driver

# Install dependencies
$ rosdep install -r -y -i --from-paths .

# Build & Install
$ cd ~/ros2_ws
$ colcon build --symlink-install
$ source ~/ros2_ws/install/setup.bash

QuickStart

# Terminal 1
$ source ~/ros2_ws/install/setup.bash
$ ros2 run rt_usb_9axisimu_driver rt_usb_9axisimu_driver

# Terminal 2
$ source ~/ros2_ws/install/setup.bash
$ ros2 lifecycle set rt_usb_9axisimu_driver configure
$ ros2 lifecycle set rt_usb_9axisimu_driver activate
# Echo topics (Press Ctrl+C for exit)
$ ros2 topic echo /imu/data_raw
$ ros2 topic echo /imu/mag
$ ros2 topic echo /imu/temperature

1. 概要

rt_usb_9axisimu_driverは株式会社アールティが販売している USB出力9軸IMUセンサモジュール のROS 2パッケージです。

株式会社アールティによって開発、メンテナンスがなされています。

1.1 座標軸について

USB出力9軸IMUセンサモジュールは、センサとしてInvenSense社のMPU9250を使用しております。
このセンサの磁気センサの座標系はNED座標系(x-north, y-east, z-down)ですが、 モジュール内のマイコン(LPC1343)においてENU座標系(x-east, y-north, z-up)に変換され、 ジャイロセンサおよび加速度センサの座標系と揃えられております。
これはROSで使われる座標系のルールにも適合しています。詳しくは、REP-0103をご覧ください。

1.2 ファームウェア開発について

USB出力9軸IMUセンサモジュールはオープンハード・オープンソースのため、モジュール内のマイコンのファームウェアの変更が可能です。
このROSパッケージはデフォルトのファームウェアにのみ対応しております。ファームウェアを変更された場合、正常な動作ができなくなる恐れがございますので、ご了承ください。

1.3 ver2.0でのご利用について

2020年8月現在、販売されているUSB出力9軸IMUセンサモジュールはver2.0となります。
このバージョンのデフォルトのファームウェアには、ASCII出力とBinary出力の2つのデータ出力形式があります。
センサ出荷時点ではASCII出力に設定されています。出力形式の切り替え方法は、以下のリポジトリにあるマニュアルをご参照ください。
https://github.com/rt-net/RT-USB-9AXIS-00

[ERROR] Error opening sensor device, please re-check your devices. が発生する場合

ポートの権限を変更してください。

$ sudo chmod 666 /dev/ttyACM0

2. ノード

2.1 rt_usb_9axisimu_driver

rt_usb_9axisimu_driverはUSB出力9軸IMUセンサモジュールの出力を受信し、角速度と並進加速度・磁束密度をパブリッシュします。

2.1.1 パブリッシュされるトピック

2.1.2 パラメータ

  • ~frame_id (string, default: imu_link)

    • IMUデータのヘッダーにセットされるフレーム名
  • ~port (string, default: /dev/ttyACM0)

    • モジュールが接続されているポート名
  • ~linear_acceleration_stddev (double, default: 0.023145)

    • 並進加速度の共分散行列の対角成分の平方根(m/s^2)
  • ~angular_velocity_stddev (double, default: 0.0010621)

    • 角速度の共分散行列の対角成分の平方根(rad/s)
  • ~magnetic_field_stddev (double, default: 0.00000080786)

    • 磁束密度の共分散行列の対角成分の平方根(T)

3. ROS 2 特有の使い方

3.1 Lifecycle

Lifecycle 機能を使うことで、ノード実行中にUSBの抜き差しや、 トピックのパブリッシュを稼働/停止できます。

各状態での動作内容は次のとおりです。

3.1.1 Unconfigured state

  • USBポート(~port)にアクセスしません
  • トピックをパブリッシュしません

3.1.2 Configuring transition

  • パラメータを反映します
  • USBポート(~port)をオープンし9軸IMUセンサと通信します
    • 9軸IMUセンサの認識に失敗したらUnconfigured stateに遷移します

3.1.3 Inactive state

  • トピックをパブリッシュしません

3.1.4 Activating transition

  • 9軸IMUセンサと定期通信を開始します
    • 9軸IMUセンサとの通信に失敗したらUnconfigured stateに遷移します
  • トピックのパブリッシュを開始します

3.1.5 Active state

  • トピックをパブリッシュします
  • 9軸IMUセンサとの通信に失敗しても状態遷移しません

3.1.6 Deactivating transition

  • 9軸IMUセンサとの定期通信を停止します
  • トピックのパブリッシュを停止します

3.1.7 CleaningUp transition

  • USBポート(~port)をクローズし9軸IMUセンサと通信を終了します

3.1.8 Example

# Terminal 1
$ source ~/ros2_ws/install/setup.bash
$ ros2 run rt_usb_9axisimu_driver rt_usb_9axisimu_driver

# Terminal 2
$ source ~/ros2_ws/install/setup.bash

# User can plug-in/out the IMU module at unconfigure state.

$ ros2 lifecycle set rt_usb_9axisimu_driver configure
$ ros2 lifecycle set rt_usb_9axisimu_driver activate
# The node start publishing the topics.

# Stop publishing
$ ros2 lifecycle set rt_usb_9axisimu_driver deactivate
$ ros2 lifecycle set rt_usb_9axisimu_driver cleanup

# User can plug-in/out the IMU module at unconfigure state.
# User can set parameters of the node.
$ ros2 param set /rt_usb_9axisimu_driver frame_id "imu2-link"
$ ros2 param set /rt_usb_9axisimu_driver port "/dev/ttyACM1"

$ ros2 lifecycle set rt_usb_9axisimu_driver configure
$ ros2 lifecycle set rt_usb_9axisimu_driver activate
# The node start publishing the topics.

3.2 Component

rt_usb_9axisimu_driver::Driverは Component として実装されているため、共有ライブラリとして実行できます。

3.2.1 Example

# Terminal 1
$ source ~/ros2_ws/install/setup.bash
$ ros2 run rclcpp_components component_container

# Terminal 2
$ source ~/ros2_ws/install/setup.bash
$ ros2 component load /ComponentManager rt_usb_9axisimu_driver rt_usb_9axisimu_driver::Driver

$ ros2 lifecycle set rt_usb_9axisimu_driver configure
$ ros2 lifecycle set rt_usb_9axisimu_driver activate
# The node start publishing the topics.

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/rt-net/rt_usb_9axisimu_driver.git
VCS Type git
VCS Version melodic-devel
Last Updated 2020-07-28
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Package Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rt_usb_9axisimu_driver 1.0.0

README

日本語 | English

rt_usb_9axisimu_driver

industrial_ci

rt_usb_9axisimu_driverは株式会社アールティが販売しているUSB出力9軸IMUセンサモジュール用のROSパッケージです。
株式会社アールティによって開発、メンテナンスがなされています。 - License: The 3-Clause BSD License - Source: https://github.com/rt-net/rt_usb_9axisimu_driver.git (branch: master)

現在、以下のROSのディストリビューションに対応しております。 - Kinetic - Melodic

1. 概要

このパッケージは、USB出力9軸IMUセンサモジュールをROSから使用するためのドライバを提供するものです。

1.1 座標軸について

USB出力9軸IMUセンサモジュールは、センサとしてInvenSense社のMPU9250を使用しております。
このセンサの磁気センサの座標系はNED座標系(x-north, y-east, z-down)ですが、 モジュール内のマイコン(LPC1343)においてENU座標系(x-east, y-north, z-up)に変換され、 ジャイロセンサおよび加速度センサの座標系と揃えられております。
これはROSで使われる座標系のルールにも適合しています。詳しくは、REP-0103をご覧ください。

1.2 ファームウェア開発について

USB出力9軸IMUセンサモジュールはオープンハード・オープンソースのため、モジュール内のマイコンのファームウェアの変更が可能です。
このROSパッケージはデフォルトのファームウェアにのみ対応しております。ファームウェアを変更された場合、正常な動作ができなくなる恐れがございますので、ご了承ください。

1.3 ver2.0でのご利用について

2018年10月現在、販売されているUSB出力9軸IMUセンサモジュールはver2.0となります。
このバージョンのデフォルトのファームウェアには、ASCII出力とBinary出力の2つのデータ出力形式があります。
センサ出荷時点ではASCII出力に設定されています。出力形式の切り替え方法は、以下のリポジトリにあるマニュアルをご参照ください。
https://github.com/rt-net/RT-USB-9AXIS-00

2. インストール

現在、Debianパッケージの配布は行っておりません。ソースからインストールを行ってください。
catkinワークスペースを~/catkin_wsとすると、以下のような手順になります。

$ cd ~/catkin_ws/src
$ git clone https://github.com/rt-net/rt_usb_9axisimu_driver.git
$ cd ~/catkin_ws
$ catkin build

3. 使用方法

2のようにインストールを行った場合、ドライバを起動しようとする端末(Terminal)で、

$ source ~/catkin_ws/devel/setup.bash

と入力してください。その後、

$ roscore

# 別の端末で
$ rosrun rt_usb_9axisimu_driver rt_usb_9axisimu_driver

または、

$ roslaunch rt_usb_9axisimu_driver rt_usb_9axisimu_driver.launch

と入力することにより、ドライバを起動できます。

[ERROR] Error opening sensor device, please re-check your devices. が発生する場合

ポートの権限を変更してください。

$ sudo chmod 666 /dev/ttyACM0

4. ノード

4.1 rt_usb_9axisimu_driver

rt_usb_9axisimu_driverはUSB出力9軸IMUセンサモジュールの出力を受信し、角速度と並進加速度・磁束密度をパブリッシュします。

4.1.1 パブリッシュされるトピック

4.1.2 パラメータ

  • ~frame_id (string, default: imu_link)

    • IMUデータのヘッダーにセットされるフレーム名
  • ~port (string, default: /dev/ttyACM0)

    • モジュールが接続されているポート名
  • ~linear_acceleration_stddev (double, default: 0.023145)

    • 並進加速度の共分散行列の対角成分の平方根(m/s^2)
  • ~angular_velocity_stddev (double, default: 0.0010621)

    • 角速度の共分散行列の対角成分の平方根(rad/s)
  • ~magnetic_field_stddev (double, default: 0.00000080786)

    • 磁束密度の共分散行列の対角成分の平方根(T)

CONTRIBUTING

No CONTRIBUTING.md found.

Repository Summary

Checkout URI https://github.com/rt-net/rt_usb_9axisimu_driver.git
VCS Type git
VCS Version master
Last Updated 2020-07-28
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Package Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
rt_usb_9axisimu_driver 1.0.0

README

日本語 | English

rt_usb_9axisimu_driver

industrial_ci

rt_usb_9axisimu_driverは株式会社アールティが販売しているUSB出力9軸IMUセンサモジュール用のROSパッケージです。
株式会社アールティによって開発、メンテナンスがなされています。 - License: The 3-Clause BSD License - Source: https://github.com/rt-net/rt_usb_9axisimu_driver.git (branch: master)

現在、以下のROSのディストリビューションに対応しております。 - Kinetic - Melodic

1. 概要

このパッケージは、USB出力9軸IMUセンサモジュールをROSから使用するためのドライバを提供するものです。

1.1 座標軸について

USB出力9軸IMUセンサモジュールは、センサとしてInvenSense社のMPU9250を使用しております。
このセンサの磁気センサの座標系はNED座標系(x-north, y-east, z-down)ですが、 モジュール内のマイコン(LPC1343)においてENU座標系(x-east, y-north, z-up)に変換され、 ジャイロセンサおよび加速度センサの座標系と揃えられております。
これはROSで使われる座標系のルールにも適合しています。詳しくは、REP-0103をご覧ください。

1.2 ファームウェア開発について

USB出力9軸IMUセンサモジュールはオープンハード・オープンソースのため、モジュール内のマイコンのファームウェアの変更が可能です。
このROSパッケージはデフォルトのファームウェアにのみ対応しております。ファームウェアを変更された場合、正常な動作ができなくなる恐れがございますので、ご了承ください。

1.3 ver2.0でのご利用について

2018年10月現在、販売されているUSB出力9軸IMUセンサモジュールはver2.0となります。
このバージョンのデフォルトのファームウェアには、ASCII出力とBinary出力の2つのデータ出力形式があります。
センサ出荷時点ではASCII出力に設定されています。出力形式の切り替え方法は、以下のリポジトリにあるマニュアルをご参照ください。
https://github.com/rt-net/RT-USB-9AXIS-00

2. インストール

現在、Debianパッケージの配布は行っておりません。ソースからインストールを行ってください。
catkinワークスペースを~/catkin_wsとすると、以下のような手順になります。

$ cd ~/catkin_ws/src
$ git clone https://github.com/rt-net/rt_usb_9axisimu_driver.git
$ cd ~/catkin_ws
$ catkin build

3. 使用方法

2のようにインストールを行った場合、ドライバを起動しようとする端末(Terminal)で、

$ source ~/catkin_ws/devel/setup.bash

と入力してください。その後、

$ roscore

# 別の端末で
$ rosrun rt_usb_9axisimu_driver rt_usb_9axisimu_driver

または、

$ roslaunch rt_usb_9axisimu_driver rt_usb_9axisimu_driver.launch

と入力することにより、ドライバを起動できます。

[ERROR] Error opening sensor device, please re-check your devices. が発生する場合

ポートの権限を変更してください。

$ sudo chmod 666 /dev/ttyACM0

4. ノード

4.1 rt_usb_9axisimu_driver

rt_usb_9axisimu_driverはUSB出力9軸IMUセンサモジュールの出力を受信し、角速度と並進加速度・磁束密度をパブリッシュします。

4.1.1 パブリッシュされるトピック

4.1.2 パラメータ

  • ~frame_id (string, default: imu_link)

    • IMUデータのヘッダーにセットされるフレーム名
  • ~port (string, default: /dev/ttyACM0)

    • モジュールが接続されているポート名
  • ~linear_acceleration_stddev (double, default: 0.023145)

    • 並進加速度の共分散行列の対角成分の平方根(m/s^2)
  • ~angular_velocity_stddev (double, default: 0.0010621)

    • 角速度の共分散行列の対角成分の平方根(rad/s)
  • ~magnetic_field_stddev (double, default: 0.00000080786)

    • 磁束密度の共分散行列の対角成分の平方根(T)

CONTRIBUTING

No CONTRIBUTING.md found.