Be Engineer.

エンジニア成り立て管理人の日々の記録とメモブログです。

仮想マシンのubuntuをアクセスポイント化する

参考にさせていただいたサイト

maruchan-shiro123.hatenablog.com

maruchan-shiro123.hatenablog.com

VMware Playerの仮想ネットワーク | NAT、ブリッジ、ホストオンリーの仕組み

www.n-study.com

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2079859

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.

         (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を入れる方法を考える

目標値を入れなければ制御されないはず

 

f:id:takatonsh:20161216032941p:plain

(引用) 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

nav_msgs/Path Documentation

mavros - ROS Wiki

PX4 Offboard Control Using MAVROS on ROS | 404warehouse

MAVROS offboard example · PX4 Devguide

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を参照