Surface Pro 3を入手!

さて先日、前々から欲しかったSurface Proをついに入手しました!元々今年2月にBungbungame Photon2という、激安新品2万円のデジタイザペン付きWindowsタブレットを入手して、デジタルノートとしての可能性を体感していました。Photon2もノートとしての使い勝手は非常に良かったのですが、当初からKp41というブルースクリーンで落ちるエラーが多発していて、ソフト的な改善策はいろいろと試したものの一向に解決しないため、諦めて次の機種に手を出すことにしました。ネットを見ていてもそれほど不具合報告が多いわけではないので、ハズレを引いてしまったようです。元は良いタブレットだと思います。

現在最新のSurface Pro最新は5代目で、4代目が型落ちでまだ売られているという状況です。今回買うタブレットはノートPCとしても使用したかったので、スペックは最低Core i5, メモリ8GB以上で考えていました。途中、hp spectre x2という、i7/16GBというスペックで20万円、同等スペックのSurfaceより10万円も安いという製品を見つけたりもしました。が、どうも熱設計が不十分でCPUが本来のパワーを発揮できないなど評判があまりよろしくないようでした。

予算は、いいものなら20万円くらいは出してもいいかな、と考えていました。それだと、候補は前述のspectre x2か、Surface Pro 4の最上級グレード(i7/16GB/1TB)ということになります。

結局ジャンクへ。。。

しかし、ここで少し躊躇が発生します。最近の製品は高密度に作られているため公式修理が高額で、自力修理もほぼ不可能という状況があります。ネットの情報では保証期間が過ぎたあとは自然故障でも7万円くらいの修理費を要求されたというような話も見ました。また、修理情報サイトiFixitでは自力修理難易度で最高ランクがつけられています。製品には当たり外れがありますし、20万払ってこれではちょっと困ります。

あともう一つは、PCの値下がりが早すぎるという点です。例えばSurface Proの5代目とPro 4は併売されていますが、Pro 4の最高グレードのモデルでは10万円近くも公式で値引きが行われています。中古の相場なら更に下でしょう。かといって、性能面で10万円分の差があるとは思えません。

こう考えると、特に最新の機能に魅力を感じるというわけでない場合、最新という「ブランド」にプレミアム価格を払っているような感じがし、なんだかなあと思ってしまうわけです。

これまでは中古やジャンクばかりだし、そろそろ新品買ってもいいかな、と思って始まった選定作業でしたが、もやもやしながら、ふとオークションを覗いていました。

すると、見つけました、Pro 3になりますが最高グレード(i7/8GB/512GB)のジャンク品。電源が入らないことがあるという症状でした。修理は難しいということでしたがどうにもこれまでの血が騒ぎ、つい入札してしまいました。4万円と少しで落ちました。途中ヒートアップしてついポチポチ値段を上げてしまいましたが、最後は誰も追ってこなくなりました。やはりジャンクに4万は出せないという人が大半だったようです。

届いてみると、結局もとの持ち主の勘違いだったのか、不具合は一切ありませんでした。調べてみるとこの機種の公式の不具合で、古いファームウェアでバッテリ関連のバグにより落ちることがあったそうです。もしかすると、それと勘違いされたのかもしれません。これは現在はアップデートで修正されています。

そんなこんなで、結局状態のいい完動品が4万円で入手できたというわけです。結局また中古になってしまいました。

本体はよくできていると思う

とりあえず、いろんなギミックはすごいです。本体にいくつも磁気センサを搭載しており、キーボードカバー(タイプカバー)を閉じるとスリープ、後ろに回すとタブレットモードに切り替わりキーとタッチパッドが自動的に無効になるなど、使いやすくする工夫がなされています。OSとうまい具合に連携できていて、ここらへんはAppleよろしくハード・ソフト一体開発の強みが出ているように思いました。

そして、タイプカバーのキーボードは、予想に反してとても打ちやすいです。若干たわむということはありますが、極薄なのにしっかりしたタッチ感があり、キートップも広く、配置も変則的になっていたりしません。

とりあえず、環境構築を行ってみることにします。それではまた。

ROSを用いて自動運転ロボットを作る [序章]

久々の投稿になります。突然になりますが、ここ最近、とあるきっかけで自律移動・自動運転の技術に興味をもっていろいろと調べたりしています。そして、これをDIYで製作してみようと思いましたので、その記録をここに書いておこうと思います。

まずは何となく理解したこの分野のあらましから。大学院の専門などではないので間違いがあったらご指摘いただければ幸いです。というか、ROSまでたどり着けませんでした。

世間的にも、自動車の自動運転が何かと話題になってきていますが、意外とその技術的な内容は知られていないように思います。自動運転車の話題は世間的には最近の人工知能ブームに乗って出てきたようにも見えますが、実は10年以上も前から研究されている技術です。また、最近のブームは主にDeep Learningによる画像認識・自然言語処理などの技術を皮切りに始まっているように思いますが、自動運転の基礎技術はこれらとは全く別の、確率論をベースとしたアルゴリズムとなっています。

この分野の基礎技術が、Probablistic Robotics(邦訳:確率ロボティクス)という本にまとめられています。著者はSebastian Thrunというスタンフォード大学の教授で、移動ロボット分野の権威であり後にGoogle自動運転車プロジェクトのリーダーを務めた方です。

この本はかなり分量もあり数学ベースの理論もかなりあるため、読み切るのはなかなか大変そうです。私もまだ途中です。ここでは、勉強の経過なども書いていけたらと思っています。

自律移動ロボから自動運転車へ

さて、上で自動運転車の技術が昔から研究されてきたと書きましたが、最初から全て自動車において研究されてきたわけではないようです。現在の自動運転車の技術分野が生まれてくる以前に、「自律移動ロボット」という一大研究分野がありました。自律移動ロボットというと概念としては広そうですが、レーザーレンジセンサ(LIDAR)と左右2つの駆動輪を備え、マップ作成と自己位置推定、経路計画といった手順で目標位置までの移動を行うロボットを指すことが多いようです。初期の研究として以下のようなものがあります。

Minerva's Image

[Carnegie Mellon’s Robotic Tourguide Project, http://www.cs.cmu.edu/afs/cs/Web/People/minerva/]

カーネギーメロン大学の博物館で案内役を行うロボットだったようです。この実験が行われたのが1999年とのことで、かなり私たちの感覚より早くから研究が行われていたかがわかると思います。この研究を行っていたのがまさにSebastian Thrunで、後にGoogle自動運転車プロジェクトの初代リーダーを務めています。このことからも、自動運転車の技術が自律移動ロボットの技術の発展であるということがわかると思います。

誰でも自律移動ロボを作れる時代に!

さて、そこからもう少し時代が進み、2000年代後半に、ある密かなブームが起こりました。それはiRobot社がロボット掃除機・Roombaを発売したことと、Microsoft社がゲーム向けデバイスとしてKinectを発売したことによります。Roombaはともかく、Kinectは一般人より研究者が大喜びだったなどと言われていました。

それは何故でしょうか。まずKinectは、それまでにないほど安価に深度データやモーションキャプチャを行えるセンサとして使うことができたからです。これまで、上記の移動ロボのように深度データを取得するにはLIDARが一般的でしたが、これは2017年現在の低性能なラインナップでも10万円くらいする高価なセンサです。また、人間の骨格の動きを測定する専用のモーションキャプチャシステムなどはいくらするか想像もつきません。しかし、これらがKinectの登場により1万円程度で誰でもできるようになってしまったのです。これによって、趣味人やお金のない研究室などで大ブームとなりました。

もう一つはRoombaです。これはKinectほどのインパクトではないかもしれませんが、実は、安価な車輪ロボとして都合が良いものだったのです。車輪ロボで自律移動を行おうとした場合、左右それぞれのモータの速度を外部から制御できることと、エンコーダ値(車輪の実際の回転数=移動距離)を取得できることが必要となります。ですので、ミニ四駆やラジコンのようなシステムでは不十分ということになります。速度制御とエンコーダ搭載は、自作もできないことはないですが、メカや電子回路、マイコンなどの知識が必要となり、ちゃんと使えるものを作るにはそれなりに骨の折れる作業でした。しかし、Roombaは一般向け製品でありながら、外部からシリアル通信で速度制御ができ、エンコーダを搭載し、さらに(実は)強度や搬送可能重量もそこそこあるという、数万円で手に入る立派な車輪ロボだったのです。

Roombaの一般向け製品の多くが実は隠しシリアルポートを備えています。研究目的やDIYへの配慮の姿勢がさすがシリコンバレー企業という感じでしょうか。

これらKinectとRoomba、さらに制御を行うためのノートPCや流行りの高機能CPUボード(Raspberry Piなど)を組み合わせれば、立派な移動ロボが作れてしまいます。中古などを上手く使えば、1万円以下でもできるかもしれません。後は、ソフトです。ソフトも、オープンソースコミュニティの発達によって、自律走行のための高度なソフトを無料で手に入れることができます。腕があれば自分で全て作ることもできます。PC内で動くソフトの開発も面白いですが、上記のようにセンサとアクチュエータをつけることで実世界に飛び出すことができます!DIYで何でもできる面白い時代だと思います。

それでは、次回から実際の製作に入っていきたいと思います!

SHARP Mebius PC-XG70J を入手!

最近、とあるきっかけで古いノートPCを入手しました。シャープのノートPC、Mebius PC-XG70Jというものです。シャープは古くから(Windows 95以前から)PCを製造していましたが、2009年を最後に撤退してしまっていますので、今となってはそこそこレアということになります。

DCIM0102

どうやら壊れているらしいのですが、外装はキレイです。ACアダプタは調達中ですのでまだ動作確認・修理はできていません。しかし、外観を見るだけでもなかなかに面白く、よく出来た製品だと思ったので、レビューしてみることにしました。今は失われてしまったPCへのワクワク感を思い出させてくれる、PC全盛期の傑作です。

DCIM0100

↑かつては栄華を誇ったMebiusのロゴ

これは、調べてみると2005年頃の製品のようです。OSとしてはWindows XPが載っています。2006年にWindows Vistaが発売されましたので、XP後期の製品ということになります。

当時を思い出してみると、テレビ(アナログ)録画機能付きのPCが流行っていたころだと思います。また、まだスマホやタブレットが流行る前で、PCの市場としては最も活気があった頃だったように思います。日本のメーカーは特に、家電のような機能を押し出した製品をたくさん出していたと記憶しています。

2005年頃というと、そのような「家電PC」が全盛だった時代のちょうど終わりごろだったような気がします。この後、PCはもはや空気のような存在になってしまい、製品としても特色・面白みのない時代に入っていったように思います。

そして、今回入手したこのPC。家電PC時代の集大成として、あらゆる機能をてんこ盛りした豪華仕様になっています。

DCIM0103

まずは本体パームレスト部の各種ロゴシールを見てみます。OSはXP、CPUはAMDのAthlonの64ビットが載っています。MS Office 2003が入っています。独立GPUとしてATIのRadeonが載っています。そして何と、デジタルアンプやスピーカにはYAMAHA製の高級そうな(?)ものを採用しているようです。なんとも日本メーカーらしいこだわりだと思います。これだけ見ても、当時かなり力の入った上位機種だったことが推察されます。

DCIM0106

燦然と輝く「SHARP」のロゴ。

DCIM0104

そして、これこそ家電PC時代を象徴するような機能、インスタントプレイ機能です。OSを立ち上げていなくてもTVやDVDを再生でき、まさに「家電」のように使うことができるというものです。実際にはWindowsとは別の、軽量のOSをデュアルブートで起動するような仕組みだったと思います。一時期よく見かけましたが、あまり使い勝手は良くなかったように思います。

DCIM0101

そしてこのフォルムです!画面を閉じると、それはもう家電のAV機器にしか見えません!この時代をよく表した傑作だと思います。

DCIM0107

次に、背面のインターフェイス周りを見てみます。まずはTVチューナの入力端子が目につきます。この他、S端子(アナログ映像)の入力端子と出力端子がついています。

DCIM0108

そして側面には昔のゲーム機でお馴染み・アナログコンポジット入力端子が装備されていました。つまり、アナログキャプチャボードが完全に内蔵されているということで、VHSデッキや古いビデオカメラから映像を取り込むことがこれ単体できることになります。この時代に流行った(というか、よく押されていた)機能でしたが、実際にどれほどの人が活用していたのかはわかりません。自分は自宅のネコの動画を編集して遊んだりはしました。

またS端子の出力が付いていることで、テレビにPC画面を単体で出力することができます。これは当時としてもわりと珍しい機能だったと思います。

IEEE1394端子も付いているので、DVカメラから映像を取り込むこともできます。これらから、映像関係は全部入りと言っても過言ではないような仕様です。この頃、映像を自由に扱えるということでとてもワクワクしたのを覚えています。

DCIM0109

AQUOSの前に置いてみました。もう家電にしか見えないですね。今回は本体のみの入手でしたが、実際にはリモコンも付属されていたようです。

ここまで見てみましたが、当時考えられる機能を惜しげも無く詰め込んだ、これを買ったら何でもできる気にさせてくれるような、良い製品だったのではないかと思います。当時は自分が子供だったこともありますが、PCはその奥に無限の可能性を感じさせてくれる夢の機械でした。ですので、最近のように「消耗品」化してしまっている現状には多少悲しさを感じています。

入手した時にはACアダプタが無かったため、現在ネットで注文しています。電源を入れてみることができたら、今度は中身のレビューも行ってみたいと思います。

21世紀に持っていくテレビ

4月から仕事で引っ越しをして、そろそろ新天地にも慣れてきました。先日、近くのハードオフ(中古屋)にバイクを走らせて行ってみたら、ジャンク品で古い液晶テレビが出ていました。値段は何と300円。電源ランプは点くものの映らないらしく、またデジタル放送にも対応していないため、相応な値段でしょうか。

DCIM0057

これは2000年前後のシャープのAQUOS。まさにシャープが他社に先駆けて液晶テレビを発売し、成功への道を歩み始めていたくらいの時期のものだと思います。

今改めて見ても、デザインは秀逸だと思います。当時のシャープの本気が感じられます。持ち手がついているところなど最初から「ポータブル」を指向したデザインとなっています。これは液晶テレビが普及しきった現在でも珍しく、依然として先進的であるように思います。

DCIM0059

これには、シャープのAQUOSに込めたメッセージが感じられます。当時のブラウン管テレビは大人にも重く、とても持ち歩くことなど考えられなかったですが、これからは自由に持ち歩ける時代なんだ、と。

もちろん、実際にはテレビを家の中で持って歩くことなんてほとんどないと思います。しかし、そうしたメッセージを多分に発信するこのデザインや、2000年前後の時点で未来を見据えた提案をしていたことなど、大きな功績のあった製品なのではないでしょうか。

DCIM0060

裏には、キタ トシユキさんという方のデザインであるというサインが入っていました。

ジャンク品なので、電源アダプタはついていませんでした。早速ネットで検索します。したら、地元・東京の秋葉原でよくお世話になっていたとある店に何故か大量に在庫があることがわかりました。しかも安い。東京にいたら即翌日向かっていたところですが、今はそうもいきません。ネットで注文します。

しかし、ハードオフによれば電源を繋いでも何も映らないそうなので、修理を試みることになりそうです。修理が趣味、というのも珍しいと思いますが、偉大な先輩方が作った「作品」に直に触れることができ、なかなか面白いことです。

Zenfone 5 LTE(Lollipop日本版)のroot化

IMG_0001

先日、ついにZenfone 5 LTE日本版のAndroid 5.0(Lollipop、12.4.5.57)アップグレードが公開されました!このroot化方法を紹介します。台湾のコミュニティで共有されていた方法をベースにしています。
http://apk.tw/forum.php?mod=viewthread&tid=703649

この方法では、root化それ自体にはKingrootという中国製アプリを使用します。このアプリはroot化はできるのですが、スパイウェアのような挙動を示すということが言われています。また、新しいLollipop ROM(12.4.5.42など)では使用できないという問題もあります。

これに対応し、以下の方法では

  • Kingrootに情報抜き取りの隙を与えないようにしつつroot化
  • その状態でKingUser(Kingrootによるroot権限管理アプリ)をSuperSUで置き換え
  • root化を維持しつつ最新のROMにアップグレード

という操作を行います。

具体的には、個人情報が全く入っていないまっさらな状態の古いROM環境でKingrootによるroot化を行い、KingrootをSuperSUに置換、さらにsuのみを維持する細工を施したうえで最新のROMにアップグレードする、という手順を踏むことによって、一般的なSuperSUによるroot化と最新のROMのroot化を実現します。

手順の概要

これから行っていく手順の概要は次のようになります。経験のある人ならこれだけ読めば十分かもしれません。

  • SD、SIM抜く
  • WW_12.4.5.22を書き込み、そのままファクトリーリセット
  • 内部メモリにKingroot(.apk)をコピー
  • Kingrootでroot化
  • 開発者モードをオン、USBデバッグをオンにする
  • RootToolsから、Remove_Kingroot.bat、Root_Survival.batを順に実行
    • 途中、デバイスの画面にroot権限取得を許可しますか?という旨のメッセージが出るので承認
  • 内部メモリにJP_12.4.5.57.zipを転送
  • JP_12.4.5.57を書き込み
    • ここでファクトリーリセットしないこと!
    • 初回起動時に、Root_Survivalで仕込んだ再root化のスクリプトが実行されます
  • 再起動
  • 初期設定画面が出たら、電源OFF、リカバリモードからファクトリーリセット
  • 通常通りセットアップし、PlayStoreからSuperSUをインストールし完了!
  • 完了

Kingrootに情報抜き取りの隙を与えないため、かなり冗長な手順を踏んでいます。

準備

Kingrootのダウンロード

まずはKingrootをダウンロードします。公式サイトでダウンロードすると新しいバージョンになってしまい、上記のツールで除去できないソフトが含まれているため、下記のサイトからダウンロードできる古いバージョンを使用することをおすすめします。

http://www.asus-zenfone.com/2015/05/how-to-root-asus-zenfone-5-lte-t00p-lollipop.html

MicroSD,SIMカードを抜く

KingrootにMicroSD内のデータやSIMのデータへアクセスされないよう、あらかじめ抜いておきます。

公式ROMのダウンロード

以下のASUS公式サイトからROMをダウンロードします。「OS」として、Androidを選択してください。その中から、最新のroot化を行いたいバージョンと踏み台となるバージョンの2つをダウンロードします。2015/10/27現在日本版最新は「JP_12.4.5.57」、世界版最新は「WW_12.4.5.50」です。踏み台バージョンとしては、「WW_12.4.5.22」をダウンロードしてください。

https://www.asus.com/jp/Phones/ZenFone_5_A500KL/HelpDesk_Download/

日本版と世界版

日本版ROMと世界版ROMの違いですが、日本版Zenfone 5にはどちらのROMも書き込むことができます。現状ではJP_12.4.5.57とWW_12.4.5.50を比較すると日本版のほうがOS自体の改良も進んでおり、最新のセキュリティパッチ(StageFright2.0対応)などがあたっています。一方世界版では、カメラのシャッター音が消せるなどのメリットがあります。世界版でも日本語表示はほぼ問題ありませんが、日本版のほうが日本語フォントの表示が綺麗に調整されています。

Kingroot、RootToolsのダウンロード

RootToolsは、以下の台湾のコミュニティで公開されている今回の方法に用いるツールです。

http://apk.tw/forum.php?mod=viewthread&tid=703649

その中のURLである以下からRootTools.zipをダウンロードしてください。

https://mega.nz/#F!tlMCBSBZ!Jh8Hd_T46G5zRcn9mORk9A

また、Kingrootのapkは以下のサイトのURLから取得してください。

http://www.asus-zenfone.com/2015/05/how-to-root-asus-zenfone-5-lte-t00p-lollipop.html

作業手順

踏み台バージョンの書き込み

まずは、これから端末を初期化するため現在の環境を完全にバックアップしてください。端末をリカバリモードで起動し、踏み台バージョンのROM(WW_12.4.5.22)のZIPファイルを選択し書き込みを行ってください。書き込みが成功したら、続けて「wipe cache partition」「wipe data/factory reset」を選択し、端末のデータを全消去します。これで、端末上から全ての個人データが消去され、Kingrootを実行しても抜き取るデータがない状態になりました。

終了したら「reboot system now」を選択し、踏み台バージョンで起動してください。ここで初期設定画面が表示されます。ここで、各種アカウント情報は絶対に入力しないでください。ただし、WiFiだけはKingrootの実行に必要なためパスワードを設定してください。これも気になるようであれば、公衆WiFiや一時的にMacのインターネット共有機能を使用することなどを考えてください。Kingrootの実行にWiFiを必要とする理由としては、第一には機種に合わせたroot化方法をダウンロードするためです。

踏み台バージョンのroot化

踏み台バージョンのOSが起動したら、設定から「提供元不明のアプリ」を許可し、また開発者モード・USBデバッグを有効化してください。このあたりの方法に関しては他サイトを参照してください。

また、PCにUSB接続しKingrootのAPKを本体メモリの最上位にコピーしてください。

完了したら、「ファイルマネージャ」アプリからKingrootのインストールを行い、そのままKingrootを起動、指示に従ってroot化を行ってください。終了したら、再起動せずにそのまま次の手順に進んでください。

SuperSUによる置き換え

ここで、いよいよ台湾コミュニティで開発されたRootToolを使用します。まず、PCのどこかにRootTools.zipを展開し、各種ファイル(Remove_Kingroot.batなど)があるディレクトリでコマンドプロンプトを開いてください。

ここで、コマンドプロンプトでRemove_Kingroot.bat、Root_Survival.batを順に実行します。前者はしばらくすると表示が止まりプロンプトが返ってきませんが、その状態になったら終了していますのでCtrl+Cで停止してください。エラーがでなければ成功です。途中、端末の画面にroot権限の使用を許可するかどうかのポップアップが表示されるので、了承してください。

これにより、まずKingroot関連ファイルを削除しSuperSUで置き換え、その後再root化プログラムがOSアップグレード後に読み込まれるように設定されます。

終了したら、最新のROMを内部メモリにコピーしてください。

ここで再起動を行います。再起動したらリカバリモードに入ってください。

最新ROMの書き込み(再root化)

リカバリモードに入ったら、先ほどと同様の手順で最新ROMのZIPファイルを選択し書き込みを行ってください。ここでは、ファクトリーリセットは行ってはいけません!先ほど仕込んだ再root化のスクリプトは、最新ROMの初回起動時に自動的に読み込まれ、処理を実行するように仕掛けられています。終了したら、再起動してください。

最新ROMで起動しますので、初期設定を行ってください。ここではWiFiも含め全ての情報を入力しなくて構いません。適当にスキップしつつ、ホーム画面が表示されるところまで行ってください。

メニューを表示し、アプリの中にKingroot関連アプリが残っていないことを確認してください。SuperSUは残っていると思います。

確認したら、再度リカバリモードに入ってください。

最後の仕上げ

リカバリモードに入ったら、総仕上げとして「wipe cache partition」「wipe data/factory reset」を行いユーザ領域のデータを全消去します。既にシステム領域にsuは転送されているため問題ありません。念のためシステムを初期状態に戻し、全バージョンから引き継いた余計なファイルを削除するようにしています。

再起動したら、今度は通常通りセットアップしてください。アカウント情報などを入れて構いません。メニューを開くと、SuperSUなどは全て消えていると思いますが、正常です。この状態でシステム内部ではroot化が行われていますので、Play StoreからSuperSUをインストールし、完了となります。

おつかれさまでした!