9軸IMUセンサ 6軸/9軸フュージョン 低遅延 USB出力 補正済み ROS対応

はじめに

9軸IMU(型番hayate_imu)は、コロナ禍の中で開発した新商品、令和3年3月まで開発~製造、令和3年4月上旬の出荷と予定して、皆さんの学術研究にお役に立てるようと願って、どうぞご検討ご利用のほど宜しくお願い申し上げます。

製品紹介

9軸センサhayate imu、低消費電力プロセッサーCortexM0+、TDK MPU-9250後継機種である、1.71V低電圧で動作可能なICM-20948使用、6軸/9軸融合クォータニオン(四元数)はFPGA on chip(DMP3)から低遅延出力、別途ソフトでフュージョン必要なし、最大出力レート225Hz、同時に加速度(アクセル)3軸データ225Hz、角速度(ジャイロ)3軸データ225Hz、地磁気(コンパス)3軸データ70Hzまで出力可能、補正済み、ROS対応。ロボット、ドローンなど低遅延が必要とされる科学研究、電子機械の検証試作ヘの活用が期待される。

主な仕様

・ 型番 hayate_imu rev.C 6軸フュージョン or ver.B 9軸フュージョン切替可能
・ 内蔵チップ Cortex-M0+、TDK Invensense ICM-20948(9軸)実装 ※1
・ 外部接続 USB Type-Cコネクタ、USB +5V給電 ※2 ※3
・ 最大出力レート ※4
  - 6軸フュージョン or 9軸フュージョン回転ベクトル四元数 225Hz
  - 加速度(アクセル)3軸センサ  225Hz
  - 角速度(ジャイロ)3軸センサ  225Hz
  - 地磁気(コンパス)3軸センサ  70Hz

・ 測定レンジ
  - 加速度(アクセル)センサ  ±16g
  - 角速度(ジャイロ)センサ  ±2000dps
  - 地磁気(コンパス)センサ  ±4900µT

・ 消費電力 50mW以下(環境温度21℃の実測値)
・ 寸法 30mm × 31.4mm × 4.8mm(突起物含む)
・ 重量 4g以下
・ 取付穴 M3x4、隣り合う穴の中心間距離24.4mm

※1 内蔵Cortex-M0+とICM-20948間インターフェースはSPI(4Mbps)使用、加速度センサ(消耗)、角速度センサ(温度、ドリフト)、地磁気センサ(磁気変動)にダイナミック補正。
※2 USB対向装置OS環境 Ubuntu 16.04以降推奨。
※3 USB対向装置ROS環境 Kinetic以降推奨。
※4 最大出力レートはhayate imuの実力値、IMU対向装置(USB接続先)での実効値はその装置のリソース(CPUクロック周波数、メモリ容量・スピード)に関わる。

デモ情報

hayate_imu ROSパッケージ | Githubリポジトリ

9軸IMUセンサ ICM-20948内蔵 6軸/9軸シュージョン 出力レート225Hz 低遅延 USB出力 ROS対応 | YouTube

9dof_hayate_imu_youtube
9dof_hayate_imu_youtube

販売情報

【製品名称】hayate_imu rev.C 6軸フュージョン or ver.B 9軸フュージョン
【開発会社】ROBOT翔(株式会社翔雲)
【発売時期】令和3年4月上旬頃
【取扱店舗】9軸IMUセンサ 6軸/9軸フュージョン 低遅延 USB出力 補正済み ROS対応 | ROBOT翔

参考資料

Migrating from MPU-9250 to ICM-20948-InvenSense
http://wiki.ros.org/ja/9dof_hayate_imu

関連記事

9軸IMUセンサ ICM-20948をロボットに組み込もう

1+

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア

屋内3D地図で可視化、空間情報をスマート管理

インドアマップが活躍の時代に

オフィスビル、デパート、工場など建物の内部は構造が複雑で、通常の2D地図では各場所の違いを十分に表現できない課題がある。地理情報システムとビッグデータ技術の進歩により、3D地図が室内外の空間情報の可視化技術で設備管理のスマート化やIoTのソリューションを提供することで、この課題を解決する日が近づいている。商業施設、産業IoTの他、交通監視、観光、旅行、セキュリティ、消防、会議、展示、娯楽、公共サービス等の分野で活躍する時代が訪れる。

屋内3D地図が活躍の時代に
屋内3D地図が活躍の時代に

プロダクト・サービス

お客様に対して地図可視化プラットフォームを提供して、クラウド上で各シーンに対応した情報システムを構築する。弊社とFengMap社と連携して、屋内外の3Dマップの作成サービスを提供する。また、開発者向けには専用のエンジンを提供してより簡単に各OS環境に対応したマップアプリの開発ができるようになる。

プロダクト・サービス
プロダクト・サービス

商業施設へ展開の例

商業施設では、CADデータによって室内のデータモデルを構築して各店舗の経営内容を組み込むことで空間データモデルを形成する。それにより、ショッピング案内、店舗管理、経営状況などの情報を共有し、可視化できる。スマート現場クラウド監視プラットフォームを提供する。

スマート現場クラウド監視プラットフォーム
スマート現場クラウド監視プラットフォーム

産業IoTへ展開の例

産業用として、Fengmapは可視化技術をIoTと融合し、設備の位置確認機能構内の設備、車両、人員の所在地と状態を把握して作業のモニタリング、消費エネルギー量の管理、データ統計などを行うことができる。スマート工場可視化管理システムを提案する。

スマート工場可視化管理システム
スマート工場可視化管理システム

フェングマップ社について

Beijing FengMap Technology Co.LTDは、2013年に設立された、北京に拠点を置く技術会社です。同社は、屋内および屋外の空間情報の可視化研究と開発に焦点を当て、地図データの作成、地図の編集、 ストレージ、マップ統合ソフトウェアアプリケーション開発。 空間情報の可視化技術に基づいて、資産管理、人事管理、施設および環境の監視、リモート制御、データ分析を含むさまざまな管理ソフトウェアシステムを多くの顧客に提供しました。創業以来、同社は商業用不動産、工業用IoT、工業団地から、家庭および幅広い公共サービスまで、多くの顧客を獲得した。500社、8000案件を開発した実績をもつという。
英文サイト→ https://www.fengmap.com/en/

日本総代理店

フェングマップ3Dマッピング作成サービスおよびSDK販売。
株式会社翔雲 令和2年3月1日から新住所↓
〒260-0026 千葉市中央区千葉みなと2-2-1502
代表取締役 柳建雄 電話 050-3598-8286
会社サイト https://soarcloud.com
技術情報サイト https://memo.soarcloud.com
販売サイト https://store.soarcloud.com

令和2年4月~5月特別キャンペーンお知らせ

上記時間限定、利益なし特別価格で3D地図作成サービスをご利用いただけます。どうぞお気軽にお問合せされるよう宜しくお願い申し上げます。

1+

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア

ROS launchの自動起動について

ロボットが立ち上がった際、自動的にコマンドの待ち受け状態に入り、launchファイルのロード、開始、停止、再開、アウトなどのコマンドを受け付けて、指定されたlaunchファイルを実行することが可能な仕組みを作る必要があった。

#!/usr/bin/env python
import roslaunch
import os
import rospy
class Ros_Launch(object):
    def __init__(self, ):
        self.launchfile = ""
        self.reinitialize()
    def __del__(self,):
        self.exit()
    def load_file(self, launch_file):
        if self.is_alive():
            raise RuntimeError("you need to stop before you load another launch file")
            return False  
        self.launchfile = os.path.abspath(os.path.expanduser(launch_file))
        self.launch.parent.config = roslaunch.config.load_config_default([self.launchfile], None)
        return True
    def start(self, ):
        local_machine = roslaunch.core.local_machine()
        for n in self.launch.parent.config.nodes:
            n.machine = local_machine
        self.launch.start()
    def is_alive(self, ):
        if self.launch.parent.pm is not None and self.launch.parent.pm.is_alive() and len(self.launch.parent.pm.get_active_names())>0:
            return True
        return False
    def current_file(self, ):
        return self.launchfile
    def reinitialize(self, ):
        self.launch = roslaunch.scriptapi.ROSLaunch()
    def resume(self, launch_file):
        self.launch.stop()
        self.reinitialize()
        self.load_file(launch_file)
    def stop(self, ):
        self.launch.stop()
        self.reinitialize()
        #self.load_file(self.launchfile)
    def exit(self, ):
        self.launch.stop()

以上

3+

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア

ROS+rosjava+android+studio

開発環境の整え

関連ツール、コンポーネントの互換性から予測せぬ、さまざまなコンパイルエラーに苦労してきた。強力なROS機能が込められたandroid app開発環境の整備を目指して、Ubuntu14.04.5(Trusty)の環境で、ROS Indigo→rosjava→android studio→android_coreの順番でインストールしていきましょう。

Ubuntu 14.04.5(Trusty)

ROS Indigoの公式に認定した動作OSなので、インストールしておくこと。

ROS Indigo

android向けでは、ROS Indigoの都合がよく、インストールしておくこと。

$sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu trusty main" > /etc/apt/sources.list.d/ros-latest.list'
$wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
$sudo apt-get update
$sudo apt-get install ros-indigo-desktop-full
$sudo rosdep init
$rosdep update
$source /opt/ros/indigo/setup.bash
$sudo apt-get install python-rosinstall
$mkdir -p ~/catkin_ws/src
$cd ~/catkin_ws
$catkin_make

rosjava

ROSのjava版で、java言語でもROS全ての機能を操るまたカスタマイズできることになるのでインストールしておくこと。

$sudo add-apt-repository ppa:openjdk-r/ppa
$sudo apt-get update
$sudo apt-get install openjdk-8-jdk
$export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
$mkdir -p ~/rosjava/src
$wstool init -j4 ~/rosjava/src https://raw.githubusercontent.com/rosjava/rosjava/indigo/rosjava.rosinstall
$source /opt/ros/indigo/setup.bash
$cd ~/rosjava
$rosdep update
$rosdep install --from-paths src -i -y
$catkin_make
$mkdir -p ~/myjava/src
$cd ~/myjava/src
$wstool init -j4 https://raw.githubusercontent.com/me/rosinstalls/master/my_custom_msg_repos.rosinstall
$source ~/rosjava/devel/setup.bash
$cd ~/myjava
$rosdep update
$rosdep install --from-paths src -i -y
$catkin_make

android studio

android studio 171.4443003~zesty 3.01 linux versionをインストールしておくこと。

$mkdir ~/android
$cd ~/android
$wget https://dl.google.com/dl/android/studio/ide-zips/3.0.1.0/android-studio-ide-171.4443003-linux.zip
$unzip android-studio-ide-171.4443003-linux.zip
$mv android-studio studio
$sudo dpkg --add-architecture i386
$sudo apt-get update -y
$sudo apt-get install -y libncurses5:i386 libstdc++6:i386 zlib1g:i386
$echo export PATH=$PATH:~/android/sdk/tools:~/android/sdk/platform-tools:~/android/studio/bin >> ~/.bashrc
$echo export ANDROID_HOME=~/android/sdk >> ~/.bashrc
$source ~/.bashrc
$studio.sh

android_core

android app開発向けのcore moduleが含まれているので、インストールしておくこと。

$mkdir -p ~/android_core/src
$wstool init ~/android_core/src https://raw.github.com/rosjava/rosjava/indigo/android_core.rosinstall
$cd ~/android_core
$catkin_make

関連記事

研究開発用 台車型ロボット キット

以上

3+

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア

windows10/ubuntu14.04デュアルブート

経緯

Lenovo L560にすでにwindows7 32bitがインストール済み、CPUのi5 6300Uが省エネ優先なので、バーチャル環境を辞めて、敢えてubuntu14.04とデュアルブートしようとした。

試行錯誤

USBでブート可能なubuntu14.04 64bitをインストールできなく、CDROMに変えて現象同様、USBでもCDでもブートすらできない状態に陥った。windows7 32bitが入っており、もしかしたらPCが32bitしかサポートできないか、先に、windows7 32bitをwindows 10 64bit proにアップグレートして成功した。次に、またUSBでubuntu14.04 64bitインストール失敗、windows7 32bitとの現象とは同様、というのは別の問題が抱えていた。BiosでSecurity BootをDisabeにして、Boot modeをUEFI Firstにして、CDROMでubuntu14.04 64bitがブート成功した。これでubuntu14.04 64bitがインストールできた。

いくつかの注意点

・windows 10にてdisk managementを起動して、NFTSパーティションを縮小して、フリーパーティション用意しておく。
・Ubuntu 14.04 64bit のインストールに、Install type をsomthing elseにして、windows 10で用意したフリーパーティションを使用する。
・フリーパーティションをext4 formatで/パーティション 、/homeパーティションを作り、またswap areaを10GB程度作る。
・/パーティションにubuntuのブートエリアにして、インストールを開始する。
・これまでデュアルブートの環境がほぼ用意できた。

Bootメニューの表示

このままだと、ブートメニューが表示せず、困るので、EasyBCD v2.4をwindows 10側にインストールして、ubuntuブートを新規追加して、
ブートメニューが出た。またUbuntu側で、grub設定を編集したことで、GRUBが開かれた際の初期カーソル位置がWindowsになるように設定できる。

#nano /etc/default/grub
GRUB_DEFAULT="Windows10 pro"
GRUB_TIMEOUT=30
#update-grub
#reboot

またもや問題点

L560のubuntu14.04が立ち上がったら、ethernet、wifiとも使えなく、ifconfigでもNICを認識できない症状ある。

$lspci | grep "Ethernet\|Network"
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection 156f (rev 21)
02:00.0 Network controller: Intel Corporation Wireless 8260 (rev 3a)

https://downloadcenter.intel.com/download/15817 からe1000e-3.4.2.1.tar.gzをダウンロードする。
https://cateee.net/lkddb/web-lkddb/NET_VENDOR_INTEL.html からはe1000e シリーズでいけるかと知った。
他のマシンでダウンロードし、ubuntu-PCにUSBメモリなどでコピーして、srcディレクトリに移動して次のコマンドを実行する。

$sudo make install
$sudo modprobe -r e1000e
$sudo modprobe e1000e
$lsmod | grep e1000e

これでEhernetが接続できるようになる。

$sudo apt-get update
$sudo apt-get upgrade
$lspci | grep Nework
02:00.0 Network controller: Intel corporation Wireless 8260(rev 3a)
$uname-r
3.13.0-24-generic

kernalバージョンは3.13.0-24-generic、Intel 8260がkernal 4.2以上では利用可能なので、wifiはとりあえず放っておき、Ethernetだけでやっていくことにした。
追記:以下を実行することでwifiが使えるようになった。

$sudo modprobe iwlwifi

以上

3+

ロボット・ドローン部品お探しなら
ROBOT翔・電子部品ストア