仮想マシンのubuntuをアクセスポイント化する
参考にさせていただいたサイト
maruchan-shiro123.hatenablog.com
maruchan-shiro123.hatenablog.com
VMware Playerの仮想ネットワーク | NAT、ブリッジ、ホストオンリーの仕組み
maruchan-shiro123.hatenablog.com
VMWare上のUbuntuでWifiに接続する方法:たった独りのIT革命:So-netブログ
NICは有線用、無線用の2つある。
ここでホストOSをアクセスポイント化すればいいのではと気付いた。
ホストOSはwindows10で結構ソースがあったため挑戦。
結果は失敗。原因はWifi通信用のチップがMicrosoft Hosted Network Virtual Adapterと
互換性がないためであった。
とりあえず、usb接続のwifi通信用のトグルがあるのでそちらで試す。
だめだったらデザリングでやる。
結局、NICが対応していないため不可能だった。
代わりにraspberry pi3をWifiルーター化する。
[用語]
DHCPとはDynamic Host Configuration Protocolの略で、インターネットに接続しようとするパソコンや周辺機器などに対し、インターネットの住所ともいえるIPアドレス、またそれに付随するサブネットマスクなど、必要な情報を自動的に割り当てる仕組みのことです。
NAT(Network Address Translation)はIPアドレスを変換する技術です。 一般的には、プライベート IPアドレスをグローバルIPアドレスに変換する技術とされています。
NICとは Network Interface Card の略です。 NICはパソコンやプリンタなどをネットワークに接続するための拡張カード。 その他に 「LANボード」「LANカード」「LANアダプタ」「ネットワークボード」「ネットワークカード」「ネットワークアダプタ」と呼ぶ場合があります。
やることリスト
- .dataなどのプログラムの足りない部分を修正
~setpoint_attitude/cmd_vel (geometry_msgs/TwistStamped)
- Send angular velocity.
- ubuntuの設定をアクセスポイントにする、raspberry piと接続テスト
(raspberry piをapルーター化した)
- raspberry piとpixhawkの接続確認
- launchファイルの作成
シュミレーション環境の構築をする
- 機体の作成、キャリブレーション、フライトテスト
- システムの確認
- 記録方法、実験方法を考える、実験
- 論文作成
offboard_sampleプログラムを作成するために必要なこと,log
[目的]
slamによる位置データを受け取り、pid制御を行う。
速度にしてmavros経由でマイコンに送る。
- msg型について調べる (sample,localization)
- フローを設計
[メモ]
mavros_msgs/State.hがない
/mavros/setpoint_attitude/cmd_velで速度の目標値を入れられそう。
姿勢の角速度
~local_position/velocity (geometry_msgs/TwistStamped)
Velocity data from FCU.
~setpoint_accel/accel (geometry_msgs/Vector3Stamped)
Acceleration or force setpoint vector.
~setpoint_raw/local (mavros_msgs/PositionTarget)
Local position, velocity and acceleration setpoint.
~setpoint_velocity/cmd_vel (geometry_msgs/TwistStamped)
Velocity setpoint.Send velocity setpoint to FCU.
[locarization]
hector_trajectory_serverのtrajectory (nav_msgs/Path)かな
これをsubscribeする。
道程が点群で表されるため、配列を使う。
そのため、現在のロボットの位置を示すためのtopicとしてはあまり適切でない。
poseupdate (geometry_msgs/PoseWithCovarianceStamped)
- The estimated robot pose with an gaussian estimate of uncertainty
- こっちを使う。
gazeboでシュミレーションできる
[log]
とりあえずpubsubモデルの基本的な使い方を見てみる。
sub したtopicはコールバックの仮引数で定義、現在の値を代入。
const mavros_msgs::State::ConstPtr& msg
pidにx,yを入れる方法を考える
目標値を入れなければ制御されないはず
(引用) pid - ROS Wiki
mavros/setpoint_velocity/cmd_vel -> /setpoint (pid)
/control_effort
/state
launchで設定
pid node ではstd_msg::Float64
値を一つずつpidnodeに入れなければならないかもしれない
とりあえずremapで試す。
setpoint_velocity
Send velocity setpoint to FCU.
Subscribed Topics
~setpoint_velocity/cmd_vel (geometry_msgs/TwistStamped)
Velocity setpoint.
[参考]
How to send velocity to pixhawk with Mavros? - ROS Answers: Open Source Q&A Forum
hector_trajectory_server - ROS Wiki
rosのpid packageについて
rosのpid packageのメモ
必要な情報はpid制御対象の入力、出力の選び方。
[メモ]
rqt_graphとrqt_plotで確認
servo_sim.launchではtopicに/setpoint,/control_effort,/state,/diagnostic_aggregatorを持つ
diagnostic_aggregatorはデータ解析node?
rqt_reconfigureで/left_wheel_pidのpidゲインを変更できる
rqt_robot_monitorでPIDループが正常に動作しているかどうかを確認
parameterには
pidゲイン
upper_limit,lower_limit
cutoff_frecuency: low-passfilter
topic_from_controller : defaultではcontrol_effort
topic_from_plant : defaultではstate
setpoint_topic : defaultではsetpoint
debugのときはdiagnostic_appregatorのlogを表示したほうが楽?
pidnodeを複数起動しなければならなくなった場合
launch fileで複数起動(複数亀の例を参照)
differential_drive_sim.launchを参照