注目の投稿

移転

移転しました(2020.03) →  https://akehi.github.io/ ---- ・GitHub Pages使ってみたかった ・HTMLファイルをそのまま公開できるのが手軽でいいなと思った ・・JupyterとかMarkdown+PlantUMLとかで書い...

ラベル ROS の投稿を表示しています。 すべての投稿を表示
ラベル ROS の投稿を表示しています。 すべての投稿を表示

2017/09/17

BlueTooth経由でRPiと通信4 (#includeの歴史)

ことの始まり:
demo_rx.c 内部で#include ”ros/ros.h”をするとコンパイルエラーが起きた.
(demo_rx.cを改造して,受信データをROSmsgs経由で他のノードに転送したかった)

エラー内容:
#include <string> がno such file
→拡張子なしファイルのincludeとは?

調査結果:
C++がCに対して後方互換性を保つための記述方法.
効果は,標準関数が全て名前空間 [std::] に属してしまうことで生じる不整合の解消.

以下のページが分かりやすい.知らなかった・・・
https://oshiete.goo.ne.jp/qa/6138437.html

対策:
demo_rx.cはC言語ファイルなのに,”ros/ros.h”の内部でC++の表現が含まれているのが問題.
→demo_rx.c の拡張子を.cppにすることで解決

BlueTooth経由でRPiと通信3 (ROSでRS232)

BlueToothのSPPで通信すると,RPi側からはただのシリアルポートに見える.
ROSの上で通信したいので,C/C++でRS232通信ができるライブラリを適当に引っ張ってくる.今回は以下を利用.
https://www.teuniz.net/RS-232/

ファイルセット内のrx232.cを見ると,cahr *comports[] という変数に/dev/tty**等のCOMポート名の一覧が定義されている.
ライブラリ使用時には*comports[]のインデックスを指定してポートオープンをする作りになっている.
リストには/dev/rfcomm0 が定義されていないので,先頭のポートを書き換えたら通信成功.
しかもdemo_rx.cがそのまま利用できた.
→ baud=9600,  data=8bit, parity=None,  Stop=1,  flow=None

2015/10/29

RaspberryPiとROSでAR.Droneを自律飛行

AR.DroneというドローンにRaspberryPiを乗せて自律飛行をさせたので,その備忘録

システム全般

・使ったもの
  -Parrot社のAR.drone2
  -Raspberry Pi2 Model B+
  -QZPOD (GPS受信機)

搭載したらこんな感じ