• 締切済み

ロボットハンドの制御手法

ロボットの制御プログラミングについて 私は現在大学4年で、卒業研究をしているのですが、今まで就活を理由に研究をさぼってました。。。 しかしそろそろ本格的に着手しないと、卒論が通らないって先生に喝を入れられたので、昨日くらいから本気でやり始めました。 まず、何をやればいいのか全く分からなかったので、とりあえず同じ研究をやってる4年生に聞いてみました。 すると、今まで何もしてなかった自分に怒りを通りこしてあきれを感じているらしく、今どこまで進んでいるかだけ教えてくれて、後は自分で判断して勝手にやってと言われました。。苦笑 で、結局自分で考えてもよくわからなかったのでとりあえずロボット(ロボットハンド)を動かしているプログラムを見てみようと思い、初めて触るLinuxのPCにビクビクしながらやっとの事でプログラムを見る事が出来ました。 さて、前置きが長くなりましたがここでみなさんの知恵をお借りしたいのです。 そのプログラムはC言語で書かれていたのですが、今までに見たCとは全く違うものでした。 コメントとかを読んでも全くよくわかりません。 ”スレッド”がどうとかこうとかって書かれていたりして、ググってみたりしたのですがそれでも分からなかったです。 色々とはじめてみる関数が多かったので、ヘッダファイルとかも読んでみたのですが、ヘッダファイルには何か定義みたいのばっかで何が書いてあるのか理解できませんでした。 (ちなみに自分のCに関する能力はC言語入門書をちょっとかじったくらいです。なんかifとかforを使って簡単な計算式をやったりとかは出来ますが、ポインタとか構造体ってのは全く分かりません) ここまで分からないと自分でも笑うしか出来ないのですが、マジで一体何から手をつけて良いのか分からないです。 とりあえずは制御のプログラムを解析して、新しく動かす用(もう少し難しい制御手法)を作るのでしょうが、プログラムの解析が全く進まなくて困り果てています。 こういった全く理解できないプログラムを理解するにはどうしたらいいのでしょうか。 ロボットハンドのような機械を制御する用のプログラムの分かりやすい入門書等ありませんでしょうか。 どなたかご教授していただけると大変うれしいです!

みんなの回答

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.4

はっきり言って、死ぬ気でやらないと出来る可能性はまったくありません。 1.まず、C言語を理解すること。構造体もポインタも使えないんじゃ話しにならない。1ヶ月みっちり寝る間も惜しんで勉強する。 2.スレッドはたぶん理解できないと思うので、諦めた方が良いでしょう。別の方法を検討する事。もしマイコンも使うなら割り込みとか、厄介な事は山ほどあります。 3.たぶん、理論もアルゴリズムも知識が無いので四年間なにをやってたか問い詰めたい気分ですが、これは親切な人から教えを受けてください。と言うか年下でも良いので頭を下げても教えを受ける事。 あとは、下記の様な本を片っ端から読むこと。 http://www.amazon.co.jp/dp/4274204464

回答No.3

端的にいえば「あきらめたほうがいい」としか言えない。 >こういった全く理解できないプログラムを理解するにはどうしたらいいのでしょうか。 まず、C言語自体理解できていなければ先には進めない。 >なんかifとかforを使って簡単な計算式をやったりとかは出来ますが、ポインタとか構造体ってのは全く分かりません では、解析すらままならない。 理解できない関数があっても、解析していくと「おそらくこうだろう」という推測ができていきますが、それすらできないでしょう。 また、H/W制御は単純にソフトを組むだけではなく、H/Wの方の知識も必要になりますがそちらはどうですか? No.1氏も書いているが、頭を下げてでも、うるさがられて殴られてでも教えてもらうことですね。 但し、「自分が理解できていなければ」物を作ることは無理だと思いますが。

  • Lchan0211
  • ベストアンサー率64% (239/371)
回答No.2

「ロボット制御入門」あたりでぐぐったら、 たくさんの参考書籍が出てきます。 http://www.google.co.jp/search?hl=ja&source=hp&q=%E3%83%AD%E3%83%9C%E3%83%83%E3%83%88%E5%88%B6%E5%BE%A1%E5%85%A5%E9%96%80&lr=&aq=6r&oq=%E3%83%AD%E3%83%9C%E3%83%83%E3%83%88%E3%81%9B%E3%81%84%E3%81%8E%E3%82%87 これ以前にC言語やLinuxやプログラミングの入門書から始める必要があるのかもしれませんが・・ > 今どこまで進んでいるかだけ教えてくれて、後は自分で判断して勝手にやってと言われました。。苦笑 どこまで進んでいるか教えてくれただけで十分優しいと思います。 卒論は自分の研究です。人に教えてもらいながらやるものではありません。 基礎知識を習得した上で、自分で何を考えて何をしたかが問題だと思います。

回答No.1

はっきり言って手遅れに近いと思います。 ポインタや構造体の概念が分からないのは問題外ですし、スレッドの概念も分からないのでは。。。 プログラムの作りというのは、作った人の構成力等で簡単に変わってしまうものなので、大きなプログラムの解析する場合は、まずおおよその概略構成を聞くのが一番です。 そこから、各箇所を構成している関数・変数・構造体が何をしているのか把握していきます。 C言語の標準ライブラリや独自に作成している関数以外を使用している箇所が機械に対して指示を出している(または情報を受けている)箇所と思われます。 スレッドを使用されているという事は、各スレッドは状態(state)を持って制御されていると思います。 なんにせよ、C言語の知識やスレッド等の概念の知識を習得する事。 頭を下げてでも、もっと情報を聞き出すこと。 以上です。

関連するQ&A