日々の活動記録や、暇つぶしなどなど
[1]
[2]
昨日はかなり進んだ。
昨日と言わず土日でかなりいろいろ進展できた。
まずは描画関係。
いまは単純に順運動学といて手先の位置を求めて表示しているだけだけど
とりあえず角度入力に対してアームがぐりぐり動くようになった。
次にH8。
ポテンショの値を取ってくるだけなのにYellowSoftのYU3048/U1とかいうUSB付きのボードを使うことに。
これが曲者で…
3048に16bitバスでRAMとかUSBIOとかがつながっててしかもアドレス空間が16MbitなせいでアドレスバスにもIOピンたくさん持ってかれて…
H8直で使えるIOが全然ない。
それは置いといて、YellowSoftのYellowIDEが自分にはとても使いにくくてしょうがない。
確かになにも設定しないでprintfとかscanfとか使えるのはとっても楽でいいんだけど、スタートアップでどんな設定しているかとかまったくわからなくて困った。
で、どうにも割り込みがうまく動かなくて挫折。きっとどっかの設定が悪いんだろうけど…
で、しょうがなくHEWに移行。けどバスでつながってるIOの説明が少ない!
データシートと見比べながら何とか設定できて、USB端子からputs(),getLine()が使えるようになった。
しっかし、ターミナルによって改行コードが違うのは何とかならんのかな。
CRだけなのもあるのね。むしろこっちがメイン?
その辺の小細工のおかげでいろいろ過去のライブラリに修正ができてよかったけど。
そんな感じであとはH8の配線が終わればマスターアームから絵がぐりぐりでる感じまではできた。
あとすこし。
なんだけどすこぶる体調が悪い。
耳鳴りが止まらない。
前もあったけどきっと疲労によるもの。ロボカップ終わるまでは治らないなぁ。
昨日と言わず土日でかなりいろいろ進展できた。
まずは描画関係。
いまは単純に順運動学といて手先の位置を求めて表示しているだけだけど
とりあえず角度入力に対してアームがぐりぐり動くようになった。
次にH8。
ポテンショの値を取ってくるだけなのにYellowSoftのYU3048/U1とかいうUSB付きのボードを使うことに。
これが曲者で…
3048に16bitバスでRAMとかUSBIOとかがつながっててしかもアドレス空間が16MbitなせいでアドレスバスにもIOピンたくさん持ってかれて…
H8直で使えるIOが全然ない。
それは置いといて、YellowSoftのYellowIDEが自分にはとても使いにくくてしょうがない。
確かになにも設定しないでprintfとかscanfとか使えるのはとっても楽でいいんだけど、スタートアップでどんな設定しているかとかまったくわからなくて困った。
で、どうにも割り込みがうまく動かなくて挫折。きっとどっかの設定が悪いんだろうけど…
で、しょうがなくHEWに移行。けどバスでつながってるIOの説明が少ない!
データシートと見比べながら何とか設定できて、USB端子からputs(),getLine()が使えるようになった。
しっかし、ターミナルによって改行コードが違うのは何とかならんのかな。
CRだけなのもあるのね。むしろこっちがメイン?
その辺の小細工のおかげでいろいろ過去のライブラリに修正ができてよかったけど。
そんな感じであとはH8の配線が終わればマスターアームから絵がぐりぐりでる感じまではできた。
あとすこし。
なんだけどすこぶる体調が悪い。
耳鳴りが止まらない。
前もあったけどきっと疲労によるもの。ロボカップ終わるまでは治らないなぁ。
PR
今日は結構進んだからイメージでもアップするか…
と思ったんだけど、見た目にはまったく変化なかったからやめたorz
VC++で作ってたんだけども、いろいろめんどくさくなってVC#に移行。
Windowsで計算速度を気にしないアプリ作るならC#に限ると思う。
それはさておき、無事にOpenGLの描画をC#でできた。
前に作ったビューワも全部移植完了。
けどソースを見直すと頭が悪いところが何箇所か…
とりあえず動いてるから後回し。
C#でOpenGL使うときに参考にしたところ。
http://sky.geocities.jp/freakish_osprey/opengl/opengl_menu.htm
HTMLは省略気味に書かれているのでサンプルソースを見るほうが理解が早い。
けど、引っかかったのがユーザコントロール関係。
ここの例ではOpenGLを描画する領域をユーザコントロールとして作っているのだけれどもVS2008でユーザコントロールが表示されない。
いろいろぐぐった結果VSの
ツール→オプション→Windowsフォームデザイナ→全般
にあるAutoToolboxPopulateがFalseになっていたため、ユーザコントロールが追加されなかったらしい。
ここをtrueにして解決。つーか標準でtrueにしとけよなぁ。
次にやったのが設定ファイル関係。
UDPのポート情報とかシリアルの設定とかを保存できるようにしたかったので、それを設定ファイルとしておくことにした。
最初はiniファイルをテキストで作ればいいかなぁ、と思ってたけど調べてみるC#にはxmlをいじるクラスがあるではないか。
ということでxmlで設定ファイルを記述するようにしてみた。
参考は
http://msdn.microsoft.com/ja-jp/academic/cc987569.aspx
とか
http://msdn.microsoft.com/ja-jp/academic/cc987570.aspx
とか。
意外とC#でXMLを扱う方法について記述されているホームページが少なかった。
まともなサンプルが載っているところがあったんだけども、MSDNのやつを読むと非常に無駄なソースだった。どう考えても新しいクラスを使いこなせてないかんじ。旧来のiniファイルをいじるのと同じ手法でxmlを使うメリットがどこにも感じられなかった。
それに比べてMSDNの資料は結構有用だった。つーかこれだけあれば十分。
しかもかなり便利。要素の追加・削除とかが簡単にできるのはいい。
現状ではこんな感じ。
UDPトランシーバはコマンド解釈部分以外はできてる。
シリアルトランシーバは未完成だけどUDPのからいろいろ流用できるし。
問題は腕の表示。
もうちょっと賢く表示させる方法を検討中。
とりあえずXMLが片付いたから腕を表示できるようにしてシリアルトランシーバを整備してH8のプログラム書いてポテンショの値から絵が動くようにしよう。
というか、それができればコントローラはほぼ完成か。UDPで投げる部分なんて表示に使ってる角度データをコマンドに組み込んで送るだけだしな。
と思ったんだけど、見た目にはまったく変化なかったからやめたorz
VC++で作ってたんだけども、いろいろめんどくさくなってVC#に移行。
Windowsで計算速度を気にしないアプリ作るならC#に限ると思う。
それはさておき、無事にOpenGLの描画をC#でできた。
前に作ったビューワも全部移植完了。
けどソースを見直すと頭が悪いところが何箇所か…
とりあえず動いてるから後回し。
C#でOpenGL使うときに参考にしたところ。
http://sky.geocities.jp/freakish_osprey/opengl/opengl_menu.htm
HTMLは省略気味に書かれているのでサンプルソースを見るほうが理解が早い。
けど、引っかかったのがユーザコントロール関係。
ここの例ではOpenGLを描画する領域をユーザコントロールとして作っているのだけれどもVS2008でユーザコントロールが表示されない。
いろいろぐぐった結果VSの
ツール→オプション→Windowsフォームデザイナ→全般
にあるAutoToolboxPopulateがFalseになっていたため、ユーザコントロールが追加されなかったらしい。
ここをtrueにして解決。つーか標準でtrueにしとけよなぁ。
次にやったのが設定ファイル関係。
UDPのポート情報とかシリアルの設定とかを保存できるようにしたかったので、それを設定ファイルとしておくことにした。
最初はiniファイルをテキストで作ればいいかなぁ、と思ってたけど調べてみるC#にはxmlをいじるクラスがあるではないか。
ということでxmlで設定ファイルを記述するようにしてみた。
参考は
http://msdn.microsoft.com/ja-jp/academic/cc987569.aspx
とか
http://msdn.microsoft.com/ja-jp/academic/cc987570.aspx
とか。
意外とC#でXMLを扱う方法について記述されているホームページが少なかった。
まともなサンプルが載っているところがあったんだけども、MSDNのやつを読むと非常に無駄なソースだった。どう考えても新しいクラスを使いこなせてないかんじ。旧来のiniファイルをいじるのと同じ手法でxmlを使うメリットがどこにも感じられなかった。
それに比べてMSDNの資料は結構有用だった。つーかこれだけあれば十分。
しかもかなり便利。要素の追加・削除とかが簡単にできるのはいい。
現状ではこんな感じ。
UDPトランシーバはコマンド解釈部分以外はできてる。
シリアルトランシーバは未完成だけどUDPのからいろいろ流用できるし。
問題は腕の表示。
もうちょっと賢く表示させる方法を検討中。
とりあえずXMLが片付いたから腕を表示できるようにしてシリアルトランシーバを整備してH8のプログラム書いてポテンショの値から絵が動くようにしよう。
というか、それができればコントローラはほぼ完成か。UDPで投げる部分なんて表示に使ってる角度データをコマンドに組み込んで送るだけだしな。
ちょっと予想以上に手間取ったやつ。
この前までやってたソフトはこれのインターフェースです。
まぁ、まだソフトもできてないわけですが…
ロボットに搭載したアームをマスタースレーブで動かすのが当面の目標。
スレーブ側は後輩が設計・製作しているはず。
で自分はマスターアーム本体とソフト関係全部を担当。
で、これがマスターアーム。難産でした。
なんせ各関節にポテンショをつければいいだけなんだけども、自重で垂れ下がらないような仕組みが必要で…
結局プーリーに動かない糸をかけて摩擦をかける方法にしました。
うまく動くかは確認してませんが、きっと大丈夫でしょうw
後は手先の姿勢とか取得しやすいようにがんばって軸あわせましたよ。
しかも今の研究室ではたいした加工ができないので、おもちゃフライスだけで加工できるように加工の手間もできるだけ減らして…
しかも材料のストックもないので、できるだけ少ない材料で…
とか考えてたらなかなかまとまらなくって。
けどこれで部品の発注ができるぞ。
#アンプのほうはもうちょっと動作確認したらアップします。
けどオシロがかなり不穏な動作をしているもんで…
時々輝点がぶわっと大きくなることが二回ほど観測されました。
すぐに戻ったんですが、かなり危険な感じ…
さすがに寿命かなぁ。中学のときに譲ってもらったから手元で使ってるのははや10年近く?
しかももらったときにはすでに一部の機能が使えない中古品だったし。
うーむ。今壊れてもらうと何もできなくなるぞ…研究室はデジタルオシロしかないし…
この前までやってたソフトはこれのインターフェースです。
まぁ、まだソフトもできてないわけですが…
ロボットに搭載したアームをマスタースレーブで動かすのが当面の目標。
スレーブ側は後輩が設計・製作しているはず。
で自分はマスターアーム本体とソフト関係全部を担当。
で、これがマスターアーム。難産でした。
なんせ各関節にポテンショをつければいいだけなんだけども、自重で垂れ下がらないような仕組みが必要で…
結局プーリーに動かない糸をかけて摩擦をかける方法にしました。
うまく動くかは確認してませんが、きっと大丈夫でしょうw
後は手先の姿勢とか取得しやすいようにがんばって軸あわせましたよ。
しかも今の研究室ではたいした加工ができないので、おもちゃフライスだけで加工できるように加工の手間もできるだけ減らして…
しかも材料のストックもないので、できるだけ少ない材料で…
とか考えてたらなかなかまとまらなくって。
けどこれで部品の発注ができるぞ。
#アンプのほうはもうちょっと動作確認したらアップします。
けどオシロがかなり不穏な動作をしているもんで…
時々輝点がぶわっと大きくなることが二回ほど観測されました。
すぐに戻ったんですが、かなり危険な感じ…
さすがに寿命かなぁ。中学のときに譲ってもらったから手元で使ってるのははや10年近く?
しかももらったときにはすでに一部の機能が使えない中古品だったし。
うーむ。今壊れてもらうと何もできなくなるぞ…研究室はデジタルオシロしかないし…
まともな研究成果
ぶっちゃけ、これ以外にもやることはたくさんあるわけで…
ちょっと現実逃避しつつも必要なことの研究。
で肝心の中身は
WindowsのFormアプリでOpenGLを使う
こと。
開発環境はVC++2008を使ってるんですが、C++/CLIがよくわからん…
そもそもc++をちゃんと使えてない自分…
それでも何とかフォーム上にOpenGLで描画することができましたよ。
これでアームのコントロールソフトが完成に近づいた。すり足くらいには爆
とりあえずメモ代わりに…
参考サイト
http://d.hatena.ne.jp/nurs/20080315/1205598655
ぶっちゃけ、これ以外にもやることはたくさんあるわけで…
ちょっと現実逃避しつつも必要なことの研究。
で肝心の中身は
WindowsのFormアプリでOpenGLを使う
こと。
開発環境はVC++2008を使ってるんですが、C++/CLIがよくわからん…
そもそもc++をちゃんと使えてない自分…
それでも何とかフォーム上にOpenGLで描画することができましたよ。
これでアームのコントロールソフトが完成に近づいた。すり足くらいには爆
とりあえずメモ代わりに…
参考サイト
http://d.hatena.ne.jp/nurs/20080315/1205598655
とりあえず、ここのところメインでやってたロボットアームの状態表示ができるようになりました。
まぁ何のことはない、計算間違えとか、書籍の誤植とか、自分のタイプミスとかいろいろちまちましたミスの積み重ねでしたorz
やっぱ本を鵜呑みにしちゃだめだねっ
自分で式を導かないと。
それはさておき、でも実はこれ、重要な部分が終わってなかったり。
姿勢角をオイラー角で求めているのだけども、最初にsinθを求めるとき、どうやって正負を決めればいいの?
それがわからん…からとりあえず適当に判断させてるけど、こんなんでいいのかなぁ…
今日の成果
・アーム表示がとりあえず動くようになった。手先の姿勢角まできちんと求められてる。
・エンコーダが届いた。寸法は読めばわかってたはずなのに、手元にくるとでかいなぁ。
・アジレントの12bitエンコーダがよさげ。
・大学の工場の講習を受けた。機材と職員がしょぼーんな感じだった。
今日の課題
・安い磁気式絶対値エンコーダみつける。
・sinθの求め方を考えるor調べる
P.S.
トラボ、マジで最高です。かってよかったぁぁぁ。
まぁ何のことはない、計算間違えとか、書籍の誤植とか、自分のタイプミスとかいろいろちまちましたミスの積み重ねでしたorz
やっぱ本を鵜呑みにしちゃだめだねっ
自分で式を導かないと。
それはさておき、でも実はこれ、重要な部分が終わってなかったり。
姿勢角をオイラー角で求めているのだけども、最初にsinθを求めるとき、どうやって正負を決めればいいの?
それがわからん…からとりあえず適当に判断させてるけど、こんなんでいいのかなぁ…
今日の成果
・アーム表示がとりあえず動くようになった。手先の姿勢角まできちんと求められてる。
・エンコーダが届いた。寸法は読めばわかってたはずなのに、手元にくるとでかいなぁ。
・アジレントの12bitエンコーダがよさげ。
・大学の工場の講習を受けた。機材と職員がしょぼーんな感じだった。
今日の課題
・安い磁気式絶対値エンコーダみつける。
・sinθの求め方を考えるor調べる
P.S.
トラボ、マジで最高です。かってよかったぁぁぁ。
今日の成果
行列を全部計算しなおした。→何箇所か書籍のミス発見 本はうのみにしちゃだめだね
プログラムの根本的なバグ発見 →それは解決
ADCは秋月で売ってるLTC1298がらくちんかもしれない。
今日の問題点
根元の回転軸が逆に回る。→原点の取り方おかしいのかな…
行列を全部計算しなおした。→何箇所か書籍のミス発見 本はうのみにしちゃだめだね
プログラムの根本的なバグ発見 →それは解決
ADCは秋月で売ってるLTC1298がらくちんかもしれない。
今日の問題点
根元の回転軸が逆に回る。→原点の取り方おかしいのかな…
今日の成果
変換行列の意味をようやく完全に理解した
それに伴って姿勢角を一部求められるようになった
└なぜかある軸以上求めることができない→きっと行列orプログラムが間違ってる
今日の記憶事項
エンコーダを注文する
よさげなポテンショをさがす
今日増えたTODO
12bit精度のA/Dを探すor同精度のA/Dを内蔵したマイコンを探す
卒論プレゼンの手直し←単純に忘れてただけ
変換行列の意味をようやく完全に理解した
それに伴って姿勢角を一部求められるようになった
└なぜかある軸以上求めることができない→きっと行列orプログラムが間違ってる
今日の記憶事項
エンコーダを注文する
よさげなポテンショをさがす
今日増えたTODO
12bit精度のA/Dを探すor同精度のA/Dを内蔵したマイコンを探す
卒論プレゼンの手直し←単純に忘れてただけ
これから毎日研究日誌としてこのブログを使おうかと画策中。
いや、ここに書いておけば自分でも見返しやすいし、研究室の友人も時々みているはずだから、リマインダーになってくれるはず(なんという他人まかせ
ということで、今日やったこと
・ミーティングした
・今後の研究予定を立て直した
・マスターアームの設計をはじめた
覚えておく事項
・アーム表示は終わってない
→マスターアームの部品発注を早くしておかないとまずいから、設計を先にする。
・インベンターを校費でかえるか確認
・ソリッドワークスの使い勝手の確認
んなところかな。
とりあえず、研究に使う本を買いまくったらものすごい額に…
運動学の本が4500円のくせに薄いんだよなぁ。けど一番知りたいところが書いてあったから買ってしまった…
しょうがないね。
後はマニピュレータチームの先輩にでも相談しながらやろう。
いや、ここに書いておけば自分でも見返しやすいし、研究室の友人も時々みているはずだから、リマインダーになってくれるはず(なんという他人まかせ
ということで、今日やったこと
・ミーティングした
・今後の研究予定を立て直した
・マスターアームの設計をはじめた
覚えておく事項
・アーム表示は終わってない
→マスターアームの部品発注を早くしておかないとまずいから、設計を先にする。
・インベンターを校費でかえるか確認
・ソリッドワークスの使い勝手の確認
んなところかな。
とりあえず、研究に使う本を買いまくったらものすごい額に…
運動学の本が4500円のくせに薄いんだよなぁ。けど一番知りたいところが書いてあったから買ってしまった…
しょうがないね。
後はマニピュレータチームの先輩にでも相談しながらやろう。
カテゴリ増やしました。
大学の研究について話すときに「研究」カテゴリを使いたいと思います。
で、現状。
これじゃなんだかわからないと思いますが爆
今やってる研究は移動ロボット上に6軸のロボットアームを設置してドアでもあけようじゃないか、という研究。
でアームの操作・状態表示のためのソフト作ってます。
操作・表示といっても。順運動学からアームの姿勢を取得して表示するため、行列計算をちゃんとやってます。
現状ではまだまだ間接の位置を表示するだけにとどまってますが…
それでもとりあえずキーボードから各関節の位置を動かすことができるようにはなりました。
んーOpenGLってめんどくさいなぁ。
などと思いつつ、もっとめんどくさい行列計算をかりかりやってます。
次はアームの表示と手先の表示だなぁ。
これをやるためには各軸に対して姿勢角を求めないといけないのでやることは倍増。
逆に言うと、現状では姿勢角を求めてないので超手抜きなわけですな。
はやいとここいつに見切りを付けてモータドライバ側の開発に移らないといけないんだけども…
やること満載だぁ。
大学の研究について話すときに「研究」カテゴリを使いたいと思います。
で、現状。
これじゃなんだかわからないと思いますが爆
今やってる研究は移動ロボット上に6軸のロボットアームを設置してドアでもあけようじゃないか、という研究。
でアームの操作・状態表示のためのソフト作ってます。
操作・表示といっても。順運動学からアームの姿勢を取得して表示するため、行列計算をちゃんとやってます。
現状ではまだまだ間接の位置を表示するだけにとどまってますが…
それでもとりあえずキーボードから各関節の位置を動かすことができるようにはなりました。
んーOpenGLってめんどくさいなぁ。
などと思いつつ、もっとめんどくさい行列計算をかりかりやってます。
次はアームの表示と手先の表示だなぁ。
これをやるためには各軸に対して姿勢角を求めないといけないのでやることは倍増。
逆に言うと、現状では姿勢角を求めてないので超手抜きなわけですな。
はやいとここいつに見切りを付けてモータドライバ側の開発に移らないといけないんだけども…
やること満載だぁ。
カウンター
委託案内
アンプ基板や同人誌を委託販売しています.リンクからどうぞ.(外部サイト)
・HA10mini基板セット
・HA10mini終段基板
・HA10miniハイパワーキット
・HPA&Analog vol.6冊子版
・同人誌DL委託
・同人誌DL委託(旧サークル名)
・HA10mini基板セット
・HA10mini終段基板
・HA10miniハイパワーキット
・HPA&Analog vol.6冊子版
・同人誌DL委託
・同人誌DL委託(旧サークル名)
ブログ内検索
カレンダー
01 | 2025/02 | 03 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
最新記事
最新トラックバック
カテゴリー
SilverLight
アクセス解析
広告