[Pixhawk] 이동 관련 topic 정리(1)

 이 블로그에서는 pixhawk에 적용되는 두 가지 firmware 중 px4를 기준으로 구현 및 테스트한 결과를 기반으로 작성되어있습니다.

  Pixhawk Flight Controller Unit(FCU)를 이용한 자율비행을 구현하면서 이동에 관련된 Robot Operating System(ROS)의 패키지(MAVROS) topic 간의 차이점을 알기 힘들었던 경험이 있어 topic 간 차이점을 직접 테스트를 통해 알아본 내용을 공유하고자 이 게시물을 작성하게 되었습니다.(테스트는 Software In The Loop(SITL)을 Gazebo7의 환경에서 iris model을 기반으로 테스트 되었습니다.)

 이와 관련된 MAVROS 패키지은 다음 링크에 기술되어있습니다.    http://wiki.ros.org/mavros

  여기서, 이동과 관련된 topic은 “/mavros/setpoint_~” 라는 이름으로 작성된 것들인데 살펴보면 아래와 같은 종류가 존재합니다.(* 뒤 번호는 링크 상에 적혀진 번호입니다.)

0. ~/setpoint_attitude (6.14)
1. ~/setpoint_accel (6.13)
2. ~/setpoint_position (6.15)
3. ~/setpoint_velocity (6.17) 
4. ~/setpoint_raw (6.16)

  이 topic들이 구성된 이유는 PX4 Architectural Overview을 살펴보면 알 수 있습니다.

  여기서 “Flight Control” box를 살펴보면 Position Setpoints, Attitude Setpoints가 각각 “Autonomous Flight” module에서 “Position Controller” modlue로, “Position Controller” modlue에서 “Attitude & Rate Controller” module로 전달됨을 확인할 수 있습니다. 여기서의 Position Setpoints에는 mavlink를 통해 1번~4번 사이의 topic을 받아 처리하고 Attitude Setpoints에는 mavlink를 통해 0번의 topic을 받아 처리하는 것으로 보여집니다.

  이 글의 결론부터 말하자면 4. ~/setpoint_raw 를 사용하는 것이 편하다고 생각합니다. [Pixhawk] 이동 관련 topic 정리(2) 게시물에 제가 이 topic이 더 유용하다 생각한 이유가 적혀있으니 읽어보시고 구현하고자 하는 바와 부합하는 이유가 있다면 고려해보셔도 좋을 것 같습니다!

Attitude

#0. cmd_vel

메세지 타입 geometry_msgs/TwistStamped
전체 topic 이름 /mavros/setpoint_attitude/cmd_vel
설명 cmd_vel은 angular velocity 값을
전송하는 topic

#1. Attitude

메세지 타입 geometry_msgs/PoseStamped
전체 topic 이름 /mavros/setpoint_attitude/attitude
설명 Roll/Pitch/Yaw(RPY) angle
값을 전송하는 topic

#2. Thrust

메세지 타입 mavros_msgs/Thrust
전체 topic 이름 /mavros/setpoint_attitude/thrust
설명 Thrust 값을 전송하는 topic

  이 토픽들은 quadropter의 움직임을 구성하는 가장 기본이 되는 네 가지 구성 요소와 관련되어있습니다. 이 구성 요소에는 Roll, Pitch, Yaw, Thrust가 있고, Pixhawk의 parameter에서도 이 네 가지 값에 대한 PID 제어 계수를 조정하여 기체를 안정시킵니다.

  하지만 이 topic은 너무 low level에서 제어하는 기능이므로 잘 사용하지는 않습니다. 아마 PID 계수를 조정하는 용도로 쓸 수 있을 것이라고 예상되나 이는 QGroundControl app에서 advanced configuration 탭과 mavlink analyzer를 활용해 조정하는 것이 더 효과적인 방법인 것 같습니다.

Accel

#0. Accel

메세지 타입 geometry_msgs/Vector3Stamped
전체 topic 이름 /mavros/setpoint_accel/accel
설명 가속도나 힘 벡터를 전송하는 topic

Position

#0. Global

Untitled

#0. Local

Untitled

Velocity

#0. Accel

Untitled

Raw

#0. Accel

Untitled

– 작성 중–

Comments