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