2013年8月30日金曜日

How to use a MakerBot Replicator 2X (1)

Sorry, This post is Japanese.
Because,  there are a lot of information about MakerBot in English. However Japanese information is a little. So, I decide to write useful topics based on my experience in Japanese.


8/26/2013に、Replicator 2Xが、来たけど、使いこなすのは大変。

僕は、ロボットを作るために、使うけど、その状態に行くまでに、、、、

でもね、でもね。このマシン、ものすごく良い。(^^)/




たぶん、メーカは、自作でいろいろなモノを作れる、中級以上のMakerを想定していると思う。

簡単に言えば、初心者を想定していない。だって、通常のメンテナンスだって、ユーザが分解して行うことが、前提。

だから、MakaerBotも、手を抜くとことは、手を抜いている。それを前提に、、、


(1) 最初の調整

簡単に言うと、溶かした樹脂を出すヘッドと、出す場所との高さの調整

高すぎると、途中で固まってしまうし、近すぎるとヘッドでこすれてしまう。

この調整の「感覚」を、つかむまでに、5時間くらいのtry and error を繰り返しました。

そもそも、それを難しくているのは、MakerBot自体の精度。

ただ、一度、紙を挟んで、それから緩めて、紙を引くときに、

Kapton Paper と紙の摩擦でビビビと細かく引っかかるくらいが良いみたい。

言葉では、うまくつたえられない。感覚的には、0.15-0.2-0.3mmかなぁ

まずは、これが最も大切。


(2) データ作成とツール

よく、ホームページにある簡単なサンプル作るのであれば、AutoDesk 123Dでよい。

ただし、

「少し大きめで、力も加わるようなモノを軽量に作りたい」、

つまりロボットの部品になった瞬間に全く違った次元の能力がMakerに要求される。

つまり、設計者の能力と、3D CADオペレーションの能力が必要になります。

下の写真の部品は、材料力学などを知っていないとできない。


強度と軽量を両立させるために、力学的に強いハチの巣で内部を作っている。

これは、上記の2つの能力と、ツールの機能が必要。

僕は、Blenderを使っているけど、このツールは使いこなすのが大変。

1)機能が多い。

2)機能がすべて、完成していない。よって、予期できない挙動が発生する。

    その発生パターンをユーザが理解して、使う必要がある。

特に、2)は、重要で、よってBlenderは使い手を選ぶ。

一方で、複雑な事をフリーソフトで実現しようとすると、Blenderを選択することになる。

Blenderを使いこなせれば、相当の事ができる。

MakerBot Replicator 2X 購入して、よかった!

ロボット開発には、欠かせない マシン。

// Peace!

2013年8月28日水曜日

I love 3D printer

At last, I have been able to understand how to use my 3D printer.

I think 3d printer add me fun and imagination to create new product.


Making 3d data using Blender.


Convert 3D printer data.


Wow !!

Stamp Holder!

peace!!

Get new NEXUS 7

Old Android phone and new Nexus7.



peace!

My first time 3D printing ....(-_-;)

3D printer extrudes  ABS Filament in order from the object bottom.

Therefore, we have to consider that when making data using CAD or CG tool.

Whew (+_+)


I converted from a new robot 3D data to 3D printer data using a MakerWare.


heating....



I thought I had perfect the preparation.
but,,,,

boo-boo .....

I  understood that in order to make full use of the 3d-printer, I have to study a variety of know-how.
But, It's very fun!
(^^)/

//eom

2013年8月27日火曜日

2013年8月26日月曜日

Get ! MakerBot Replicator 2X

7月2日に、発注したものが、今日(8/26)にきたー。。。

10 week 待ちだったが、8/22に発送したとの連絡。

Fedexも、さば読んでか、8/29配送予定が、実際は8/26に配送。

いずれにせよ、Fedexの国際物流は、すごい。

まず、ご覧のように箱は、ぼこぼこ。しょうがない。


中をあけると、まぁ。そこそこパッキング。

で、どーん
サイドのクリアーボードが外れていた。

設置して、


フライス盤と、一緒の写真。
そもそも、フライス盤を使った、削り出し、限界を感じて3D printer購入

ABSは、追加で、5KG、計7KGあるから、しばらくはなんでもできる。

まず、テスト。10分で出力



そして、


出力に、40分。

でも、その動きを見ていて、よくわかった。

基本的には、「使える」、

そして、使いこなすうえで、問題・課題が多い事も、よく理解できた。

今日は、ここまで、

だって、部屋を整理しないと、とんでもないことに、、、、

peace!!



2013年8月23日金曜日

OpenNI2.2 on BeagleBone Black. Makefile and Platform.Arm

To build OpenNi2.2 on BeagleBone Black need to change Makefile and Platform.Arm as below.

Please see red rows.  It's a easy way.

If Debian Wheezy, it need to install 2 packages.

sudo apt-get libusb-1.0.0-dev

sudo apt-get libudev-dev

1. Makefile 

#############################################################################
# OpenNI makefile.
#
# default configuration is Release. for a debug version use:
#       make CFG=Debug
#
# default compiler is g++. for another one use:
#   make CXX=<comp>
#
# By default, CLR projects will only be build if mono is installed.
# To force CLR projects use:
#   make FORCE_BUILD_CLR=1
#
#############################################################################

include ThirdParty/PSCommon/BuildSystem/CommonDefs.mak

MAJOR_VERSION = $(shell grep "define ONI_VERSION_MAJOR" Include/OniVersion.h | cut -f 2)
MINOR_VERSION = $(shell grep "define ONI_VERSION_MINOR" Include/OniVersion.h | cut -f 2)
MAINT_VERSION = $(shell grep "define ONI_VERSION_MAINT" Include/OniVersion.h | cut -f 2)

ifeq ("$(OSTYPE)","Darwin")
        OS_NAME = MacOSX
else
        OS_NAME = Linux
endif
PRODUCT_STRING = OpenNI-$(OS_NAME)-$(PLATFORM)-$(shell cd Packaging && python -c "import UpdateVersion; print UpdateVersion.getVersionName()" && cd ..)
FINAL_DIR = Packaging/Final

OPENNI = Source/Core
XNLIB  = ThirdParty/PSCommon/XnLib/Source
DEPTH_UTILS = Source/DepthUtils

# list all drivers
ALL_DRIVERS = \
        Source/Drivers/DummyDevice   \
        Source/Drivers/PS1080 \
        Source/Drivers/PSLink \
        Source/Drivers/OniFile

# list all wrappers
#ALL_WRAPPERS = \
#       Wrappers/java/OpenNI.jni \
#       Wrappers/java/OpenNI.java

# list all tools
ALL_TOOLS = \
        Source/Drivers/PS1080/PS1080Console \
        Source/Drivers/PSLink/PSLinkConsole

# list all core projects
ALL_CORE_PROJS = \
        $(XNLIB)  \
        $(OPENNI) \
        $(DEPTH_UTILS) \
        $(ALL_DRIVERS) \
#       $(ALL_WRAPPERS) \
        $(ALL_TOOLS)

# list all samples
CORE_SAMPLES = \
        Samples/SimpleRead \
        Samples/EventBasedRead \
        Samples/MultipleStreamRead \
        Samples/MWClosestPoint \
        Samples/MWClosestPointApp \
        Samples/SimpleViewer \
        Samples/MultiDepthViewer \
        Samples/ClosestPointViewer

# list all java samples
#JAVA_SAMPLES = \
#       Samples/SimpleViewer.java

ifeq "$(GLUT_SUPPORTED)" "1"
        ALL_TOOLS += \
                Source/Tools/NiViewer

        CORE_SAMPLES += \
                Samples/SimpleViewer \
                Samples/MultiDepthViewer \
                Samples/ClosestPointViewer
else
        ifeq "$(GLES_SUPPORTED)" "1"
                CORE_SAMPLES +=
        endif
endif

ALL_SAMPLES = \
        $(CORE_SAMPLES)
#       $(CORE_SAMPLES) \
#       $(JAVA_SAMPLES)

# list all projects that are build
ALL_BUILD_PROJS = \
        $(ALL_CORE_PROJS) \
        $(ALL_SAMPLES)

ALL_PROJS = \
        $(ALL_BUILD_PROJS)

ALL_PROJS_CLEAN = $(foreach proj,$(ALL_PROJS),$(proj)-clean)

# define a function which creates a target for each proj
define CREATE_PROJ_TARGET
$1:
        $$(MAKE) -C $1

$1-clean:
        $$(MAKE) -C $1 clean
endef

################ TARGETS ##################

.PHONY: all $(ALL_PROJS) $(ALL_PROJS_CLEAN) install uninstall clean release

# make all makefiles
all: $(ALL_PROJS)

core: $(ALL_CORE_PROJS)

samples: $(ALL_SAMPLES)

# create projects targets
$(foreach proj,$(ALL_PROJS),$(eval $(call CREATE_PROJ_TARGET,$(proj))))

# additional dependencies
$(OPENNI):                            $(XNLIB)
#Wrappers/java/OpenNI.jni:   $(OPENNI) $(XNLIB)

Source/Drivers/DummyDevice: $(OPENNI) $(XNLIB)
Source/Drivers/RawDevice:   $(OPENNI) $(XNLIB)
Source/Drivers/PS1080:      $(OPENNI) $(XNLIB) $(DEPTH_UTILS)
Source/Drivers/PS1080/PS1080Console: $(OPENNI) $(XNLIB)
Source/Drivers/PSLink:      $(OPENNI) $(XNLIB)
Source/Drivers/PSLink/PSLinkConsole: $(OPENNI) $(XNLIB)
Source/Drivers/OniFile:     $(OPENNI) $(XNLIB)

Source/Tools/NiViewer:      $(OPENNI) $(XNLIB)

Samples/SimpleRead:         $(OPENNI)
Samples/EventBasedRead:     $(OPENNI)
Samples/MultipleStreamRead: $(OPENNI)
Samples/MWClosestPoint:     $(OPENNI)
Samples/MWClosestPointApp:  $(OPENNI) Samples/MWClosestPoint

Samples/SimpleViewer:       $(OPENNI)
Samples/MultiDepthViewer:   $(OPENNI)
Samples/ClosestPointViewer: $(OPENNI) Samples/MWClosestPoint
#Samples/SimpleViewer.java:            Wrappers/java/OpenNI.java

$(FINAL_DIR):
        mkdir -p $(FINAL_DIR)

doc:
        Source/Documentation/Runme.py
        rm -f Source/Documentation/html/*.md5

release: | all doc $(FINAL_DIR)
        Packaging/Harvest.py Packaging/$(PRODUCT_STRING) $(PLATFORM)
        cd Packaging; tar -cjf Final/$(PRODUCT_STRING).tar.bz2 $(PRODUCT_STRING)

# clean is cleaning all projects
clean: $(ALL_PROJS_CLEAN)

2. Platform.Arm
ifeq "$(CFG)" "Release"

    # Hardware specifying flags
    #CFLAGS += -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp #-mcpu=cortex-a8
    CFLAGS += -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard

    # Optimization level, minus currently buggy optimizing methods (which break bit-exact)
    CFLAGS += -O3 -fno-tree-pre -fno-strict-aliasing

    # More optimization flags
    CFLAGS += -ftree-vectorize -ffast-math -funsafe-math-optimizations #-fsingle-precision-constant

    DEFINES += XN_NEON
    CFLAGS += -flax-vector-conversions
endif

Peace!!

An installation Arch Linux on BeagleBone Black

1.  Make an Arch Linux microSD for booting

The best installation manual I think is here.

http://archlinuxarm.org/platforms/armv7/ti/beaglebone-black

In accordance with the instructions in this manual, I have been able to install successfully.

2. Install software packages of my robot developing
And setting a environment for developing robot is able to use my post.

http://robot009.blogspot.jp/2013/03/raspberry-pi-arch-linux.html


3. Setting for microSD booting on BeagleBone Black
It need a operation below to boot from microSD card.

[root@rcmp-r07 ]# mount /dev/mmcblk1p1 /mnt
[root@rcmp-r07 ]# cd /mnt
[root@rcmp-r07 ]# wget http://archlinuxarm.org/os/omap/BeagleBone-bootloader.tar.gz
[root@rcmp-r07 ]# tar zxvf BeagleBone-bootloader.tar.gz -C .
[root@rcmp-r07 ]# cd ..;sync;sync
[root@rcmp-r07 ]# umount mnt

Peace!!

Best SD-card for BeagleBone Black

I think Toshiba Exceria microSD card is the best choice for BeagleBone Black.

It realizes the fastest booting, upgrading , and processing that is needed by me.

That microSD card really good so I'm satisfied.

Peace!

2013年8月22日木曜日

OpenNI2.2 on BeagleBone Black

SimpleViewer 

OpenNI2.2をBuildして、ドーン!!

まだ、チューニングしていないので、レスポンスはRaspiとほぼ同じ





Peace!!

2013年8月21日水曜日

Beagle Bone Black

RasPiは、趣味レベルで使うには、いいのだが、、、

マジで、業務用ロボットの仕組みを作るには、いろいろ課題ではなく、

問題が発生してくる。

Beagle Bone Blackで、どこまでできるか技術検証をする。



まぁ、全世界的には、RasPiなので、さすがに資料系はすくない。

Win8で、Xming経由で、BBBのDesktop(GNOME)をだしたが、ここまでの感じは、

RasPiより、かなりレスポンスが良い。

RasPiで、いろいろ突き当たっていたことが、抜けれるかもしれない。

Peace!!

2013年8月19日月曜日

dynabook Satellite B753/78J Core i7/Office Home and Business 2013

Computer Vision関連の処理で、パワーがほしくて、購入。

6年ぶりのWindows Note 購入です。

CPUは、第四世代のi7 4700U メモリー8GB。もうすぐ16GBにする。

OSは、Windows8

(1) ハードウェア
キーボード配置は、少し考えた方がよい。

僕は、Blenderを使うので、今回、テンキーがある、この機種を購入したが、

そのテンキーのためか、通常のキーボードのキー配列に無理が生じている。

キーアサインを変えるソフトで、いろいろ変えた。

その点を除けば、超快適。まぁ、普段使っていたのが、Core2だから、、、

(2) OS
Winodws XPにしたい。もう、腹が立つから、それ以上言わない。

電源やバッテリー管理のソフトが、Linuxでも動けば、Linuxにしますが、、、

(3) ソフト
Officeは、会社の仕事で使うので、最低一台は必要なので購入。

個人でつかうなら、LibreOfficeが十分な生産性を保証するので、Officeはいらない。

いち早く出荷した、第四世代 i7のPCで、コストパフォーマンスは、良いと思うけど、

キーボードだけ、何とかしてほしい。

// Peace

Computer Vision 日本は、大丈夫?

CVPR2013のOpen Accessで、471本の論文をチェックしたけど、

期待していた、Deep Learningは、低調。Googleの買収で、勝負がついたか?

相変わらず、ほじくって、おんなじ壁に当たっているものも多いけど、、、

http://www.cv-foundation.org/openaccess/CVPR2013.py

内容はともかく、中国の勢いは、すごい。けど、日本は、、、、悲しい。

日本国内の学術コミュニティーの為の、研究なのかしら、、、

この分野、Roboticsで、とっても大切なのだが、、

日本のロボットは、工作用の産業ロボット以外は、

ラジコンロボットと、趣味のロボットだから、、、、、

ビックビジネスを逃している。

アメリカは、世界一を目指す。

中国は、とりあえず、アメリカを目指す。

日本は、しぼみつつある、中途半端に大きい、国内市場や国内レベルを目指す。

// EOM

2013年8月18日日曜日

Unhappy parts

ロボットの改良を続けると、

使わなくなった部品とか、たまっていく。

いつか使うかも、、、、、

でも、使ったためしがない。ごめんなさい。


//EOM

OpenNI2.2 on Raspberry Pi

OpenNI2.2は、Raspberry Pi(Arch Linux)で、Buildも出来ました。
投稿した当初の内容と、その後、8月19日に追記した部分が、混在していますが、
Makefileより、Java部分を取り除いた後は、
Buildは、正常に実行できました。(2013/8/19)



OpenNI 2.2 をRaspberry Pi にインストールするも、当然のごとく、動かない。
ということで、https://github.com/OpenNI/OpenNI2 より、ダウンロードしてBuildする。
でも、当然のごとく、そのままでは、うごかない。

ということで、目標のSimpleReadまで、、、でも、SimpleViewerまでしたよ。(下の写真) 

僕は、RGBと、Dipthが取れれば良いので、、SimpleViewerが動けば動作確認完了。

Natural Interfaceは、使わない。

でも、2.0とはやはり変わっており、プログラムの変更が必要だった。

確認までの作業時間は、5時間。(-.-)



基本は、この投稿です。 → http://robot009.blogspot.jp/2013/01/openni2-2104-on-raspberry-pi-build.html

その前に、OpenNI2.2では、Java Wrapperという、私にとっては余計なものがあります。
Buildでは、それは、無視。
それに、Arch Linux on Raspberry Pi では、Java JDKは、動かないし。(ToT)

(1) ソースのダウンロード
  上記のgithubのアドレスから

(2)展開と確認
  Raspberry Pi上にソースを展開して、必ずREADMEを読んで必要ソフトを確認

(3)準備 (詳しくは、説明しないよ)

[root@rcmp-r03 ~]# ln -s /usr/include/gnu/stubs-hard.h /usr/include/gnu/stubs-soft.h
[root@rcmp-r03 ~]# cd OpenNI2-master/ThirdParty/PSCommon/BuildSystem
[root@rcmp-r03 BuildSystem]# vi Platform.Arm
[root@rcmp-r03 BuildSystem]# cat Platform.Arm
ifeq "$(CFG)" "Release"
    # Hardware specifying flags
    #CFLAGS += -march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=softfp #-mcpu=cortex-a8
     #CFLAGS +=  -mtune=arm1176jzf-s -mfloat-abi=hard -Wno-error=strict-aliasing
    CFLAGS +=  -mtune=arm1176jzf-s -mfloat-abi=hard

    # Optimization level, minus currently buggy optimizing methods (which break bit-exact)
    CFLAGS += -O3 -fno-tree-pre -fno-strict-aliasing
    # More optimization flags
    CFLAGS += -ftree-vectorize -ffast-math -funsafe-math-optimizations #-fsingle-precision-constant
    #DEFINES += XN_NEON
    CFLAGS += -flax-vector-conversions
endif

-fno-strict-aliasingの設定は大切。いろいろな場面で、プログラマーとコンパイラー作成者の考えが、
交差するところ。

(4) Build だ!

2013/0819/追記
Java関連の処理を飛ばして、正常に環境を作るMakefileを載せます。
これで、Buildしてください。
#############################################################################
# OpenNI makefile.

# default configuration is Release. for a debug version use:
# make CFG=Debug
#
# default compiler is g++. for another one use:
#   make CXX=<comp>
#
# By default, CLR projects will only be build if mono is installed.
# To force CLR projects use:
#   make FORCE_BUILD_CLR=1
#
#############################################################################

include ThirdParty/PSCommon/BuildSystem/CommonDefs.mak

MAJOR_VERSION = $(shell grep "define ONI_VERSION_MAJOR" Include/OniVersion.h | cut -f 2)
MINOR_VERSION = $(shell grep "define ONI_VERSION_MINOR" Include/OniVersion.h | cut -f 2)
MAINT_VERSION = $(shell grep "define ONI_VERSION_MAINT" Include/OniVersion.h | cut -f 2)

ifeq ("$(OSTYPE)","Darwin")
OS_NAME = MacOSX
else
OS_NAME = Linux
endif
PRODUCT_STRING = OpenNI-$(OS_NAME)-$(PLATFORM)-$(shell cd Packaging && python -c "import UpdateVersion; print UpdateVersion.getVersionName()" && cd ..)
FINAL_DIR = Packaging/Final

OPENNI = Source/Core
XNLIB  = ThirdParty/PSCommon/XnLib/Source
DEPTH_UTILS = Source/DepthUtils

# list all drivers
ALL_DRIVERS = \
Source/Drivers/DummyDevice   \
Source/Drivers/PS1080 \
Source/Drivers/PSLink \
Source/Drivers/OniFile

# list all wrappers
#ALL_WRAPPERS = \
# Wrappers/java/OpenNI.jni \
# Wrappers/java/OpenNI.java 

# list all tools
ALL_TOOLS = \
Source/Drivers/PS1080/PS1080Console \
Source/Drivers/PSLink/PSLinkConsole

# list all core projects
ALL_CORE_PROJS = \
$(XNLIB)  \
$(OPENNI) \
$(DEPTH_UTILS) \
$(ALL_DRIVERS) \
# $(ALL_WRAPPERS) \
$(ALL_TOOLS)

# list all samples
CORE_SAMPLES = \
Samples/SimpleRead \
Samples/EventBasedRead \
Samples/MultipleStreamRead \
Samples/MWClosestPoint \
Samples/MWClosestPointApp 

# list all java samples
#JAVA_SAMPLES = \
# Samples/SimpleViewer.java

ifeq "$(GLUT_SUPPORTED)" "1"
ALL_TOOLS += \
Source/Tools/NiViewer

CORE_SAMPLES += \
Samples/SimpleViewer \
Samples/MultiDepthViewer \
Samples/ClosestPointViewer
else
ifeq "$(GLES_SUPPORTED)" "1"
CORE_SAMPLES += 
endif
endif

ALL_SAMPLES = \
$(CORE_SAMPLES) 
# $(CORE_SAMPLES) \
# $(JAVA_SAMPLES)

# list all projects that are build
ALL_BUILD_PROJS = \
$(ALL_CORE_PROJS) \
$(ALL_SAMPLES)

ALL_PROJS = \
$(ALL_BUILD_PROJS)

ALL_PROJS_CLEAN = $(foreach proj,$(ALL_PROJS),$(proj)-clean)

# define a function which creates a target for each proj
define CREATE_PROJ_TARGET
$1: 
$$(MAKE) -C $1

$1-clean: 
$$(MAKE) -C $1 clean
endef

################ TARGETS ##################

.PHONY: all $(ALL_PROJS) $(ALL_PROJS_CLEAN) install uninstall clean release

# make all makefiles
all: $(ALL_PROJS)

core: $(ALL_CORE_PROJS)

samples: $(ALL_SAMPLES)

# create projects targets
$(foreach proj,$(ALL_PROJS),$(eval $(call CREATE_PROJ_TARGET,$(proj))))

# additional dependencies
$(OPENNI):                            $(XNLIB)
Wrappers/java/OpenNI.jni:   $(OPENNI) $(XNLIB)

Source/Drivers/DummyDevice: $(OPENNI) $(XNLIB)
Source/Drivers/RawDevice:   $(OPENNI) $(XNLIB)
Source/Drivers/PS1080:      $(OPENNI) $(XNLIB) $(DEPTH_UTILS)
Source/Drivers/PS1080/PS1080Console: $(OPENNI) $(XNLIB)
Source/Drivers/PSLink:      $(OPENNI) $(XNLIB)
Source/Drivers/PSLink/PSLinkConsole: $(OPENNI) $(XNLIB)
Source/Drivers/OniFile:     $(OPENNI) $(XNLIB)

Source/Tools/NiViewer:      $(OPENNI) $(XNLIB)

Samples/SimpleRead:         $(OPENNI)
Samples/EventBasedRead:     $(OPENNI)
Samples/MultipleStreamRead: $(OPENNI)
Samples/MWClosestPoint:     $(OPENNI)
Samples/MWClosestPointApp:  $(OPENNI) Samples/MWClosestPoint

Samples/SimpleViewer:       $(OPENNI)
Samples/MultiDepthViewer:   $(OPENNI)
Samples/ClosestPointViewer: $(OPENNI) Samples/MWClosestPoint
#Samples/SimpleViewer.java:            Wrappers/java/OpenNI.java

$(FINAL_DIR):
mkdir -p $(FINAL_DIR)

doc:
Source/Documentation/Runme.py
rm -f Source/Documentation/html/*.md5

release: | all doc $(FINAL_DIR)
Packaging/Harvest.py Packaging/$(PRODUCT_STRING) $(PLATFORM)
cd Packaging; tar -cjf Final/$(PRODUCT_STRING).tar.bz2 $(PRODUCT_STRING)

# clean is cleaning all projects
clean: $(ALL_PROJS_CLEAN)

2013/08/19 追記ここまで ----------------------------------------------------------------------------

[root@rcmp-r03 BuildSystem]# cd ../../..
[root@rcmp-r03 OpenNI2-master]# make                             30-  minites
................................. 
make -C Wrappers/java/OpenNI.java
make[1]: Entering directory `/root/OpenNI2-master/Wrappers/java/OpenNI.java'
mkdir -p ../../../Bin/Intermediate/Arm-Release/org.openni.jar
javac  -d ../../../Bin/Intermediate/Arm-Release/org.openni.jar src/org/openni/*.java
/bin/sh: javac: command not found
make[1]: *** [../../../Bin/Arm-Release/org.openni.jar] Error 127
make[1]: Leaving directory `/root/OpenNI2-master/Wrappers/java/OpenNI.java'
make: *** [Wrappers/java/OpenNI.java] Error 2

当然、エラーで終了。makeの内容を確認して、自分でOK

(5) SimpleReadの確認
[root@rcmp-r03 OpenNI2-BuildSystem]# cd ../../..
[root@rcmp-r03 OpenNI2-master]# cd Samples/SimpleRead
[root@rcmp-r03 SimpleRead]# make
[root@rcmp-r03 SimpleRead]# cd ../../Bin/Arm-Release
[root@rcmp-r03 Arm-Release]# ls -al
total 500
drwxr-xr-x 3 root root   4096 Aug 18 02:18 .
drwxr-xr-x 4 root root   4096 Aug 17 20:47 ..
drwxr-xr-x 3 root root   4096 Aug 18 01:40 OpenNI2
-rwxr-xr-x 1 root root  14170 Aug 18 02:18 SimpleRead
-rw-r--r-- 1 root root  15368 Aug 18 01:40 libDepthUtils.a
-rwxr-xr-x 1 root root  35068 Aug 18 02:04 libOpenNI2.jni.so
-rwxr-xr-x 1 root root 427346 Aug 18 01:40 libOpenNI2.so
[root@rcmp-r03 Arm-Release]# SimpleRead
[00000000]     1550
[00033369]     1543
[00066738]     1543
[00100107]     1543
[00133477]     1536
[00166846]     1543
[00200215]     1543

出来上がり!
SimpleViewerは、上の写真を見てね。

後は、インストール環境を作ればよい。
終わってみれば、上記に書いただけだが、細かいところは悩んでいます。

そもそも、ARM6も、対象外だし、
Raspiで、OpenNI2.2動かすことに無理がありかも、と感じました。

はやく、raspiの競合が出てほしいなぁ。
僕は、ロボットを作るために、手段としてRaspi使っているだけ

peace!

2013年8月16日金曜日

パスワードを入力をしない、scp 設定

現在、大幅な、ロボット環境の変更を行っています。

それに、伴い、RSAの再設定などを行ったので、その手順と考え方をメモ。

この例は、RSAの設定方法の忘備録です。RDCSの実際の設定方法ではありません。

ちなみに、この例は、RDCSのセキュリティーポリシーに反します。

じゃぁ、なんで書くんだ? メモなので、、

                                            Router
                                                |
                                                |
    |---------+---------+----------+---------+---------|
RDCS        RDCS        RDCS      RDCS        RDCS        RDCS
Server       Client        Client       Client        Client         Client

(1) RDCS Server
RDCS Serverの公開鍵の作成

[root@rcmp-sv01 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ENTER
Enter passphrase (empty for no passphrase): ENTER
Enter same passphrase again: ENTER
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
ac:51:61:b8:90:a1:8b:7a:61:e7:1c:cf:47:c7:05:8d root@rcmp-sv01
The key's randomart image is:
+--[ RSA 2048]----+
|    .o .o .o     |
|   .o .. .E..    |
|  .  . ..   .    |
| . .  .o . .     |
|. + o . S o      |
|.. = + + .       |
|. . o + .        |
| .     .         |
|                 |
+-----------------+
[root@rcmp-sv01 ~]# ls -al .ssh
total 16
drwx------ 2 root root 4096 Aug 16 11:13 .
drwxr-x--- 4 root root 4096 Aug 15 16:40 ..
-rw------- 1 root root 1675 Aug 16 11:13 id_rsa
-rw-r--r-- 1 root root  396 Aug 16 11:13 id_rsa.pub
[root@rcmp-sv01 .ssh]# cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

(2) RDCS Client
RDCS Clientの公開鍵の作成

[root@rcmp-r02 ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): ENTER
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): ENTER
Enter same passphrase again: ENTER
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
58:93:66:72:e3:c2:ba:6d:29:a7:52:62:52:f5:54:7b root@rcmp-r02
The key's randomart image is:
+--[ RSA 2048]----+
|       ..        |
|    . .  o       |
|   . o. X E      |
|  .  ..O +       |
| .    + S        |
|. o .. .         |
| o o.  .         |
|  . .o+          |
|   .o=.          |
+-----------------+
[root@rcmp-r02 ~]# cd .ssh
[root@rcmp-r02 .ssh]# ls -al
total 16
drwx------ 2 root root 4096 Aug 16 11:12 .
drwxr-x--- 4 root root 4096 Aug 16 11:12 ..
-rw------- 1 root root 1675 Aug 16 11:12 id_rsa
-rw-r--r-- 1 root root  395 Aug 16 11:12 id_rsa.pub
[root@rcmp-r02 .ssh]# cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
[root@rcmp-r02 .ssh]# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCtzD2RAdTTcxWUx4q0Qi/ujTejJdWuW6rS3t+Dgvxrmz5TLeZo7H0UCm361duF4rksMNGeDQe8mpZpQfB50H3ZOY/LiLXQ5SL6bOXM2y1d9OF6yjQZWw2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
gtR1n6RHi/R3xndBm47kCQZjis9Tusnb1zHlg9afETQDFDiyfFZsmLtSldcc+Bkg9sOgD0TMGK6lwngBT2lSWgYx6agNLUpi+bNkwj6iAkIvkYvdUuTKDgVqHHym8ksd9UgRWd5U9CKOcgOrmAJ1S21 

(3) RDCS Server
RDCS Server の.ssh/authorized_keysに、RDCS Clientの.ssh/id_rsa.pub (公開鍵)を追加する。
これにより、RDCS ClientからRDCS Serverへのscpは、パスワードなしで可能になる。
実際のオペレーションは、いろいろな方法があるので、ここでは記述しない。

ちなみに、RDCS Serverから、RDCS Clientにパスワード無しscpを行う場合には、
RDCS Serverの公開鍵を、RDCS Clientの .ssh/authorized_keysに追記する。

(4) RDCS Client
RDCS Clientから、最初のscpを、Serverに行う。

[root@rcmp-r02 ~]# touch qq
[root@rcmp-r02 ~]# scp qq root@192.168.11.70:/root
The authenticity of host '192.168.11.70 (192.168.11.70)' can't be established.
ECDSA key fingerprint is df:44:09:55:a1:03:1f:0b:86:51:d0:4e:8a:50:78:26.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '192.168.11.70' (ECDSA) to the list of known hosts.

qq                                            100%    0     0.0KB/s   00:00
[root@rcmp-r02 .~]# ls -al .ssh
total 24
drwx------ 2 root root 4096 Aug 16 11:17 .
drwxr-x--- 4 root root 4096 Aug 16 11:16 ..
-rw-r--r-- 1 root root  395 Aug 16 11:14 authorized_keys
-rw------- 1 root root 1675 Aug 16 11:12 id_rsa
-rw-r--r-- 1 root root  395 Aug 16 11:12 id_rsa.pub
-rw-r--r-- 1 root root  175 Aug 16 11:17 known_hosts
[root@rcmp-r02 ~]# cat .ssh/known_hosts
192.168.11.70 ecdsa-sha2-nistp256   fdafdaawexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxYMWN3TcTnsxxxxxxxxVp4zixHzvuP7g6slxUTxm55BVZh5f+bituIVSf1ZjOBUSUYv5c=

(3) RDCS Server
RDCS Clientの最初のscp処理後

[root@rcmp-sv01 ~]# ls -al
total 36
drwxr-x---  4 root root 4096 Aug 16 11:17 .
drwxr-xr-x 17 root root 4096 Jul 18 13:38 ..
-rw-------  1 root root 6174 Aug 16 10:12 .bash_history
-rw-r--r--  1 root root  550 Feb  3  2013 .bash_profile
-rw-r--r--  1 root root  114 Jan 15  2013 .bashrc
-rw-r--r--  1 root root   40 Jan 15  2013 .exrc
drwx------  2 root root 4096 Aug 16 11:46 .ssh
drwxr-xr-x  2 root root 4096 Feb  5  2013 bin
-rw-r--r--  1 root root    0 Aug 16 11:17 qq
[root@rcmp-sv01 ~]# ls -al .ssh
total 20
drwx------ 2 root root 4096 Aug 16 11:46 .
drwxr-x--- 4 root root 4096 Aug 16 11:17 ..
-rw-r--r-- 1 root root  791 Aug 16 11:16 authorized_keys
-rw------- 1 root root 1675 Aug 16 11:13 id_rsa
-rw-r--r-- 1 root root  396 Aug 16 11:13 id_rsa.pub

peace!!