Be Engineer.

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

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