機械学習を用いた自動ドリフト制御の動画(英語)を見つけました。
すごいですね。
管理人の「1000gou」が趣味の範囲で集めた情報や日記を投稿しています。 非IT系のエンジニアですが、独学で身に着けたプログラミングスキルを使って何か面白いことができればいいなと思っています。
2016年5月24日火曜日
2016年5月21日土曜日
ロボットブームは過ぎ去った?
生きたロボット情報を収集したいと思い、ロボット製作者さんのホームページやブログを訪問してみると大体2006~2010年半ばで更新が終わってところが多いです。すでにロボットブームは過ぎ去ったのでしょうか?
とりあえず更新されてそうなところを勝手にピックアップしてみました。
Let's ロボット
こそこそ団 ロボット課 (AMATERAS)
ゆくぞ、ダイナマイザー (Blog)
Techメカ工房・工作室
愛知工業大学 鉄人プロジェクト
思い立ったが吉日
まじかる☆マリオネット
ロボツク!
新・KRS-LAB
もやねのロボット三昧
とりあえず更新されてそうなところを勝手にピックアップしてみました。
Let's ロボット
こそこそ団 ロボット課 (AMATERAS)
ゆくぞ、ダイナマイザー (Blog)
Techメカ工房・工作室
愛知工業大学 鉄人プロジェクト
思い立ったが吉日
まじかる☆マリオネット
ロボツク!
新・KRS-LAB
もやねのロボット三昧
便利なロボットサイト発見
ロボット情報 探索継続中。。。
いいサイト発見しました。
関東組ロボット練習会 ← ロボット情報が満載です。特に私は神奈川に住んでいますので、一度練習会に見学に行かせて頂きたいなと思います(少し勇気が出ないですが。。)。
また、関東組ロボット練習会にあるROBO-ONEアンテナにはロボット関連のブログやサイトの更新情報が乗っていますし、ロボットショップ道案内は秋葉原のロボットショップへの行き方なんかも乗っています。
いいサイト発見しました。
関東組ロボット練習会 ← ロボット情報が満載です。特に私は神奈川に住んでいますので、一度練習会に見学に行かせて頂きたいなと思います(少し勇気が出ないですが。。)。
また、関東組ロボット練習会にあるROBO-ONEアンテナにはロボット関連のブログやサイトの更新情報が乗っていますし、ロボットショップ道案内は秋葉原のロボットショップへの行き方なんかも乗っています。
ODEを触ってみた。
とりあえず、ODEを使ってみたくて こちらの第1回 をやってみました。
ODEのサイト(http://www.ode.org)で ode-0.11.zip をダウンロードすると書いてあったが ode-0.11.zip が見つからず。。 Googleで検索かけたら こちら のページが検索に引っかかりました。
ode-0.11.1.zipというのがあったので、とりあえずこれをダウンロードしうまくいきました(解凍されるフォルダ名が若干違うのでフォルダ名を読み替えないといけませんが。)
なにをやっているのかさっぱりわからず操作手順に従っているだけですが、 はじめはこんなもんでしょう。
ODEのサイト(http://www.ode.org)で ode-0.11.zip をダウンロードすると書いてあったが ode-0.11.zip が見つからず。。 Googleで検索かけたら こちら のページが検索に引っかかりました。
ode-0.11.1.zipというのがあったので、とりあえずこれをダウンロードしうまくいきました(解凍されるフォルダ名が若干違うのでフォルダ名を読み替えないといけませんが。)
なにをやっているのかさっぱりわからず操作手順に従っているだけですが、 はじめはこんなもんでしょう。
ODE 勉強中
本日はODEの勉強中ですが、難しい。。
VC++自体かなり久しぶりなのもありますが、ODE自体少し独特のものがあります。
おそらく linuxバージョン が標準になっているからかな?
windows プログラムなのに WinMain関数&WndProcがライブラリ内に収録されているでわかり辛い。
まあ、VC++のMFCやVBなんかも同じといえば同じですが。
なんかODEを使うの挫折しそうですが、自分で物理計算できる頭もないしな~。どうしようか?
ちなみに先ほどこちらを見ていたらページの下のほうに「近藤化学のヒューマノイドロボットKHR」を模倣したロボットシミュレーション「humanoid.cpp」なんてものもありました。
私の環境(VC++2008 & ode-0.11.1)でうまくコンパイル出来ました。
VC++自体かなり久しぶりなのもありますが、ODE自体少し独特のものがあります。
おそらく linuxバージョン が標準になっているからかな?
windows プログラムなのに WinMain関数&WndProcがライブラリ内に収録されているでわかり辛い。
まあ、VC++のMFCやVBなんかも同じといえば同じですが。
なんかODEを使うの挫折しそうですが、自分で物理計算できる頭もないしな~。どうしようか?
ちなみに先ほどこちらを見ていたらページの下のほうに「近藤化学のヒューマノイドロボットKHR」を模倣したロボットシミュレーション「humanoid.cpp」なんてものもありました。
私の環境(VC++2008 & ode-0.11.1)でうまくコンパイル出来ました。
2016年4月12日火曜日
ホビーロボットの制御に回帰モデルが使えるのでは?
久しぶりに運動学を勉強していてふとひらめいたことがあります。
順運動学を用いると関節角度から手先の位置が比較的簡単に計算できます。しかし、手先の位置から逆運動学を計算するのはかなり大変です。きっと、人類全体で考えると、逆運動学を解ける人のほうが少数ですね・・・でもボールが飛んできたらキャッチできますし、字を書くこともできます。
これは、人は逆運動学を解かなくてもボールキャッチができるし、字も書くことができるということで、ロボットだってできるのではないかという気がしてきました。
つまり、ロボットに人間が行っている程度のことを行わせるだけなら、逆運動学なんて解く必要ないのではずで、回帰でなんとかなるのではないかという気がしてきました。
とりあえず明日からなんかやってみるか?
順運動学を用いると関節角度から手先の位置が比較的簡単に計算できます。しかし、手先の位置から逆運動学を計算するのはかなり大変です。きっと、人類全体で考えると、逆運動学を解ける人のほうが少数ですね・・・でもボールが飛んできたらキャッチできますし、字を書くこともできます。
これは、人は逆運動学を解かなくてもボールキャッチができるし、字も書くことができるということで、ロボットだってできるのではないかという気がしてきました。
つまり、ロボットに人間が行っている程度のことを行わせるだけなら、逆運動学なんて解く必要ないのではずで、回帰でなんとかなるのではないかという気がしてきました。
とりあえず明日からなんかやってみるか?
2016年4月11日月曜日
双葉電子工業のロボット
双葉電子工業のロボットの動画を見つけました。
確か、HPI GR-001 with V-Sidoが双葉電子工業のサーボを用いていたと記憶しています。
歩き方がなんとなく似ているような気がしますが、このロボットもV-Sidoを使っているのかな?
第45回静岡ホビーショー 双葉電子工業のロボット
確か、HPI GR-001 with V-Sidoが双葉電子工業のサーボを用いていたと記憶しています。
歩き方がなんとなく似ているような気がしますが、このロボットもV-Sidoを使っているのかな?
第45回静岡ホビーショー 双葉電子工業のロボット
HPI G-ROBOTS GR-001 Demo
2016年4月10日日曜日
2015年3月2日月曜日
ディープラーニング
最近、ネットで人工知能関連のニュースをたまにみるようになりました。
少し気になったので、東大准教授に教わる「人工知能って、そんなことまでできるんですか?」という本の電子書籍版を購入したり、ネットで関連記事を読んだりしています。
どうやら2012年ごろに人工知能研究で大きな転換期があったようです。
昔からあるニューラルネットワークの学習法の一つであるディープラーニングという手法を用いたGeoffrey Hinton氏らのグループ(SuperVision)が画像認識のコンテストで、他のグループに大差をつけて圧勝。そしてこのディープラーニングという技術に目をつけたGoogleやFacebook等のIT大企業がディープラーニングの研究者を囲い込むため、会社ごと買収したり、研究者を引き抜いたりと熱いニュースがたくさんあります。
また、2014年3月にはFace Bookの顔認識プログラム「Deep Face」がほぼ人間レベルになっているようです。そういえばFace Bookに写真を投稿すると、タグ付けするか聞かれますね。とくに気にしてなかったけど、これってディープラーニングを用いたシステムなんですね。
ところで、http://www.clarifai.com/にあるディープラーニングを用いた「画像にタグをつける」プログラムが体験できますがすごい精度です。簡単にためせるので、おすすめです。
この辺のニュースをよんでいると、小さいときにアニメや映画のなかでみた未来ってかんじがして、ワクワクします。最新の研究にはついていけないとしても、個人的になにかやりたくなってきました。
少し気になったので、東大准教授に教わる「人工知能って、そんなことまでできるんですか?」という本の電子書籍版を購入したり、ネットで関連記事を読んだりしています。
どうやら2012年ごろに人工知能研究で大きな転換期があったようです。
昔からあるニューラルネットワークの学習法の一つであるディープラーニングという手法を用いたGeoffrey Hinton氏らのグループ(SuperVision)が画像認識のコンテストで、他のグループに大差をつけて圧勝。そしてこのディープラーニングという技術に目をつけたGoogleやFacebook等のIT大企業がディープラーニングの研究者を囲い込むため、会社ごと買収したり、研究者を引き抜いたりと熱いニュースがたくさんあります。
また、2014年3月にはFace Bookの顔認識プログラム「Deep Face」がほぼ人間レベルになっているようです。そういえばFace Bookに写真を投稿すると、タグ付けするか聞かれますね。とくに気にしてなかったけど、これってディープラーニングを用いたシステムなんですね。
ところで、http://www.clarifai.com/にあるディープラーニングを用いた「画像にタグをつける」プログラムが体験できますがすごい精度です。簡単にためせるので、おすすめです。
この辺のニュースをよんでいると、小さいときにアニメや映画のなかでみた未来ってかんじがして、ワクワクします。最新の研究にはついていけないとしても、個人的になにかやりたくなってきました。
ROS チュートリアル.3 ROSパッケージを作るでつまずきました。
ROS チュートリアル3.5.1にある
$ rospack depends1 beginner_tutorials
を実行しまいしたが、作成したパーケージ(beginner_tutorials)がないというエラーが出て原因調査に1時間。
原因はチュートリアル1.4で作成したワークスペースの登録する以下のコマンドを飛ばしていたためでした。
$ source devel/setup.bash
ネットで調べると他の人も同じところを飛ばしてうまう行かないというケースがありました。みんなまちがえるところは同じですね。
ところで、このROSにはワークスペースとパッケージという概念が出てきますがいまいち理解出来ていないです。おそらくワークスペースはその名の通り、作業する場所(=ROSのパッケージを保存し、ビルドするフォルダ)でパーケージはひとつのアプリケーションといったとこだと思いますが自信なし。もうすこしROSを触れば理解できると思います。
$ rospack depends1 beginner_tutorials
を実行しまいしたが、作成したパーケージ(beginner_tutorials)がないというエラーが出て原因調査に1時間。
原因はチュートリアル1.4で作成したワークスペースの登録する以下のコマンドを飛ばしていたためでした。
$ source devel/setup.bash
ネットで調べると他の人も同じところを飛ばしてうまう行かないというケースがありました。みんなまちがえるところは同じですね。
ところで、このROSにはワークスペースとパッケージという概念が出てきますがいまいち理解出来ていないです。おそらくワークスペースはその名の通り、作業する場所(=ROSのパッケージを保存し、ビルドするフォルダ)でパーケージはひとつのアプリケーションといったとこだと思いますが自信なし。もうすこしROSを触れば理解できると思います。
2015年3月1日日曜日
ROSチュートリアル読んでます
ROS WikiのチュートリアルをiPadで読んでいますが書かれている文章が理解できないので、学生が授業を受けるみたいにノートをとりながら読むことにしました。
最近、難しいことでも諦めず時間をかければ理解できることに気付きました。読んでわからないときは、情報がたりないから理解できないのか、それとも慣れていない(新しいキーワードが多すぎる)かを判断して、前者の場合はネットで足りない情報をさがす、後者の場合はノートをとる、実際にやってみる、自分で説明文をかんがえてみる、ブログに書いてみる等時間がかかる作業をすることで理解できることに気づきました。あと日本語←→英語に変換してみるのも理解する助けになります。
因みに今読んでいるROS Wikiは以下のアドレスです。
http://wiki.ros.org/ja/ROS/Tutorials
今日覚えたキーワード
Catkin : ROSの公式ビルドシステム、昔使われていたROS ビルドという名のシステムの後継システム
最近、難しいことでも諦めず時間をかければ理解できることに気付きました。読んでわからないときは、情報がたりないから理解できないのか、それとも慣れていない(新しいキーワードが多すぎる)かを判断して、前者の場合はネットで足りない情報をさがす、後者の場合はノートをとる、実際にやってみる、自分で説明文をかんがえてみる、ブログに書いてみる等時間がかかる作業をすることで理解できることに気づきました。あと日本語←→英語に変換してみるのも理解する助けになります。
因みに今読んでいるROS Wikiは以下のアドレスです。
http://wiki.ros.org/ja/ROS/Tutorials
今日覚えたキーワード
Catkin : ROSの公式ビルドシステム、昔使われていたROS ビルドという名のシステムの後継システム
2015年2月28日土曜日
Bashを触ってみた
ROSをUbuntuへインストールしましたが、ROSをさわるのはもう少しUbuntu(Linux)に慣れてからにします。
何から始めるか模索中ですがとりあえず、https://rat.cis.k.hosei.ac.jp/article/linux/bash_intro.htmlを参考にしてbashに触ってみました。bashはLinuxで標準的につかわれるシェルの一種で、MacのOS Xとかでも使われているようです。私のなかのイメージではWindowsのDOS窓(いまでもあるのかな?)と同じようなもので、OSのなかでユーザーとのインターフェース(入力と出力)の部分を担当しています。ハード側の管理をしているのがカーネルです。人間←→シェル←→カーネル←→ハードウェアという感じですね。
なんかBashを触っているとちょっと映画の中のハッカーになった気分になり、無駄にタイピングスピードがあがります。
因みに、本日は以下のコマンドを覚えました。
Tab 補完
> リダイレクト(標準出力をファイルにする)
< リダイレクト(標準入力をファイルにする)
>> リダイレクト(標準出力をファイルにする(ファイルが存在するときは追加))
| パイプ(プログラムの出力をそのまま次のプログラムへ渡す。)
echo 引数に指定された文字列を出力する。環境変数等を調べることができる。
cat ファイルの中身をみる
wc 行数、単語数、ファイルサイズを出力する
set 設定されている環境変数を表示する。
2011年10月22日土曜日
やる気が出ない
先月、ROBO-ONE を見に行ったり、KHR3-HVの無線コントローラーを買ったりしたのにやる気が出ないです。しかし、せっかくKHR3-HVを買ったのだから少しずつでいいから何かやっていきたいところです。
2011年9月29日木曜日
運動学から始めます。
ZMPが足の裏に来るようにロボットを制御するこで、ロボットがこけなくなることはわかりました。
それを実現するには。。。ZMPを算出し、ZMPが足の裏の範囲になるように各関節を制御すればよいのですが、そのためには逆運動学を解く必要があります。
私は物理や数学が苦手なのでこの逆運動学を解くというのがすごい難問です。
う~ん。こまった。
しかし逃げていたらスキルの向上が見込めないですね。
しかしいきなり逆運動学をとくことはできないので、運動学の基本から勉強します。
ということで、まずは2自由度の運動学をエクセルで計算しました。
それを実現するには。。。ZMPを算出し、ZMPが足の裏の範囲になるように各関節を制御すればよいのですが、そのためには逆運動学を解く必要があります。
私は物理や数学が苦手なのでこの逆運動学を解くというのがすごい難問です。
う~ん。こまった。
しかし逃げていたらスキルの向上が見込めないですね。
しかしいきなり逆運動学をとくことはできないので、運動学の基本から勉強します。
ということで、まずは2自由度の運動学をエクセルで計算しました。
ちなみに急にエクセルを使用しはじめた理由は、こちら(リアルタイムEXCEL逆運動学という方向性 #01)のサイトをみて感化されました。
ZMP
ロボット関連のサイトをみていると2足歩行の制御の分野においてZMPという言葉が出てくることが多いです。そこでZMPの意味を調べました。
とりあえずウィキペディアがわかりやすそうです。
あっているかわかりませんが、私の理解は以下です。
・ZMP
= 足裏でモーメントがゼロになるポイント
= とまっている場合は、ロボットの重心位置の真下。
=動いているときは重心位置に対して、各点にかっかっている力F(=ma)によるモーメントを加算して計算した『動力学的な重心位置』。
・ZMPが足の裏に来るようにロボットを制御すると、ロボットがこけない。
・ZMPの算出方法
算出方法①各質点の質量と加速度から計算する。
算出方法②足裏につけた圧力センサーから、モーメントがゼロになる点を算出する。
ここで①の方法はシミュレーションでは有効ですが、実際には各点の加速度をセンシングするのが難しいようで、実環境では算出方法②が多くしようされているようです。
ということで、KHR-3HVの足裏に圧力センサーをつけたいな~。
とりあえずウィキペディアがわかりやすそうです。
あっているかわかりませんが、私の理解は以下です。
・ZMP
= 足裏でモーメントがゼロになるポイント
= とまっている場合は、ロボットの重心位置の真下。
=動いているときは重心位置に対して、各点にかっかっている力F(=ma)によるモーメントを加算して計算した『動力学的な重心位置』。
・ZMPが足の裏に来るようにロボットを制御すると、ロボットがこけない。
・ZMPの算出方法
算出方法①各質点の質量と加速度から計算する。
算出方法②足裏につけた圧力センサーから、モーメントがゼロになる点を算出する。
ここで①の方法はシミュレーションでは有効ですが、実際には各点の加速度をセンシングするのが難しいようで、実環境では算出方法②が多くしようされているようです。
ということで、KHR-3HVの足裏に圧力センサーをつけたいな~。
2011年9月16日金曜日
移植
KHR3-HVの右太ももサーボが故障しているのですが、このままでは歩行が安定して出来ないのでとりあえず、右ひじのサーボと入れ替えました。取り外したサーボは、新しいのを買うお金がないのでとりあえず近藤科学に修理をお願いしてみようと思います。
↓移植後の姿です。パーツが外れているとなんかロボット感が増しますね。
ちなみに、サーボ入れ替え時はIDを変更しないといけないようです。
ID変更変更方法は こちら(近藤科学サポートページ)の第7弾に記載されています。
↓移植後の姿です。パーツが外れているとなんかロボット感が増しますね。
ちなみに、サーボ入れ替え時はIDを変更しないといけないようです。
ID変更変更方法は こちら(近藤科学サポートページ)の第7弾に記載されています。
2011年9月9日金曜日
久々にKHR3-HV触ってみた
暑すぎて何もやる気が起きない8月も終わり、少しずつ涼しくなってきました。
そこで暑さを言い訳にまったくいじっていなかったKHR-3HVを触ってみました。
久々に触ってみると何も覚えていないことに気付き、とりあえずマニュアルを読みながらサンプルモーションの実行方法を確認しようやく動かせるようになりました。
しかし、サンプルモーションの歩行を実行するとすぐにこけてしまいます。なんだこれ?以前は普通にあるけていたのにな~。ホームポジションの設定がわるいのかな?とおもいホームポジションの再設定をおこなったいたのですが、その途中で右太もも(ID6)のサーボが動かないことを発見。
原因はよくわかりませんがどうやらサーボ自体が故障しているようです。
少しショックですが、トラブルを解決することが技術の向上の近道なので、いい課題が出来たと思うことにします。
2011年7月5日火曜日
KHR3-HVを制御するソフト作成(Visual C#)
RCB4CommandGeneratorのC#ソース解析結果より(本当は眺めただけですが)、KHR3-HVを制御するソフトをVisual C#で作成するエッセンスは大体つかめました。
そこで本日トライ。その結果、見事KHR-3HVの首のモータを動かすことが出来ました。
いやー、ものすごく簡単でした。さすがマイクロソフトと近藤科学、すぐれたユーザービリティです。
これで夢(?)の実現へ一歩前進です。
方法はこちらにメモしときました。
そこで本日トライ。その結果、見事KHR-3HVの首のモータを動かすことが出来ました。
いやー、ものすごく簡単でした。さすがマイクロソフトと近藤科学、すぐれたユーザービリティです。
これで夢(?)の実現へ一歩前進です。
方法はこちらにメモしときました。
2011年7月3日日曜日
Rcb4CommandGeneratorソース解析
本日は仕事の後、KHR-3HVを自作プログラムで動かす野望のためRcb4CommandGeneratorのC#ソースを眺めていました。
私は何年かまえにC#を触ったことはありますが、ほとんど覚えていません。
そんな私でもRcb4CommandGeneratorのC#ソースは理解できそうな感じです。やっぱ近藤科学はいいですね、ユーザーフレンドリーで誰にでもわかるようにしてくれています。
この感じであれば今週中に自作プログラムで、モーターを動かせそうな気がします。
以下、 明日の私のためにメモです。
・Rcb4CommandGeneratorのプログラム構造
Program.csにstatic void Main ()がありその中で、Application.Run (new Rcb4CmdGenForm ())の呼び出し、以後はRcb4CmdGenFormクラスのなかで処理されている。
・シリアルポート関連
フォームにserialPortコンポーネントが貼り付けられている。
ポートを開く→serialPort.Open ();
ポートを閉じる→serialPort.Close();
・RCB4へのコマンド送信
bool result = Command.Synchronize (serialPort, cmd.Bytes, ref recv);
※CommandクラスについてはRcb4.chmの中に解説あり。
・C#でのDLL使用方法
ソースに using Extensions.Collections; using Rcb4; を記述する。
尚、プロジェクト→サービス参照設定→詳細設定の中にExtensionsとRcb4と記述があるが、dll使用時は参照設定をする必要があるかも。
私は何年かまえにC#を触ったことはありますが、ほとんど覚えていません。
そんな私でもRcb4CommandGeneratorのC#ソースは理解できそうな感じです。やっぱ近藤科学はいいですね、ユーザーフレンドリーで誰にでもわかるようにしてくれています。
この感じであれば今週中に自作プログラムで、モーターを動かせそうな気がします。
以下、 明日の私のためにメモです。
・Rcb4CommandGeneratorのプログラム構造
Program.csにstatic void Main ()がありその中で、Application.Run (new Rcb4CmdGenForm ())の呼び出し、以後はRcb4CmdGenFormクラスのなかで処理されている。
・シリアルポート関連
フォームにserialPortコンポーネントが貼り付けられている。
ポートを開く→serialPort.Open ();
ポートを閉じる→serialPort.Close();
・RCB4へのコマンド送信
bool result = Command.Synchronize (serialPort, cmd.Bytes, ref recv);
※CommandクラスについてはRcb4.chmの中に解説あり。
・C#でのDLL使用方法
ソースに using Extensions.Collections; using Rcb4; を記述する。
尚、プロジェクト→サービス参照設定→詳細設定の中にExtensionsとRcb4と記述があるが、dll使用時は参照設定をする必要があるかも。
登録:
投稿 (Atom)