Mavros: Existe-t-il un sujet comme / mavros / setpoint_velocity / cmd_vel mais utilise le cadre du corps?

CrĂ©Ă© le 25 aoĂ»t 2017  Â·  14Commentaires  Â·  Source: mavlink/mavros

Salut,
Je fais un contrÎle basé sur la vision et la caméra est sur le drone face vers le bas.
Donc, l'estimation de la position est dans le corps.
J'ai trouvĂ© que le sujet / mavros / setpoint_velocity / cmd_vel peut ĂȘtre utilisĂ© pour changer la vitesse du drone, mais il semble qu'il soit dans le cadre NED.

Existe-t-il un sujet comme / mavros / setpoint_velocity / cmd_vel mais utilise le cadre du corps?

Ou j'ai besoin de convertir ma consigne de vitesse du cadre de carrosserie en cadre NED pour l'implémenter?

J'ai essayé de trouver quelque chose que je peux utiliser et j'ai trouvé ce code. https://github.com/weiweikong/px4_velocity_control_keyboard/blob/master/src/px4_velocity_control_node.cpp

vs_body_axis.twist.linear.x = vs.twist.linear.x * cos(uavYawENU) + vs.twist.linear.y * sin(uavYawENU);
vs_body_axis.twist.linear.y = vs.twist.linear.x * sin(uavYawENU) - vs.twist.linear.y * cos(uavYawENU);

Il semble que ce soit la meilleure solution que j'ai pu trouver.
Je ne sais pas si le lacet provient uniquement de l'IMU ou de la fusion de l'IMU et du magnétique.
Avez-vous des commentaires ou des idées à ce sujet?

Version et plateforme MAVROS

Mavros: 0,17,3
ROS: Indigo
Ubuntu: 14.04

Type et version du pilote automatique

APM: Copter V3.4-dev (fe724032)

Journaux des nƓuds

bshang2 @ mécatronique-990 : ~ / simulation / ardupilot / ArduCopter $ roslaunch ardupilot_sitl_gazebo_plugin erlecopter_mark.launch
... connexion Ă  /home/bshang2/.ros/log/ca9213bc-89bf-11e7-b657-1803733b65bb/roslaunch-mechatronics-990-28079.log
Vérification du répertoire du journal pour l'utilisation du disque. Cela peut prendre un peu de temps.
Appuyez sur Ctrl-C pour interrompre
Vérification de l'utilisation du disque du fichier journal terminé. L'utilisation est <1 Go.

a démarré le serveur roslaunch http: // mécatronique-990 : 45006 /

RÉSUMÉ

EFFACER LES PARAMÈTRES

  • / mavros /

PARAMÈTRES

  • / mavros / cmd / use_comp_id_system_control: False
  • / mavros / conn / heartbeat_rate: 1.0
  • / mavros / conn / system_time_rate: 0.0
  • / mavros / conn / timeout: 10.0
  • / mavros / conn / timesync_rate: 0.0
  • / mavros / fcu_url: tcp: //127.0.0.1 : 5760
  • / mavros / gcs_url: udp: //127.0.0.1@1 ...
  • / mavros / global_position / frame_id: fcu
  • / mavros / global_position / rot_covariance: 99999.0
  • / mavros / global_position / tf / child_frame_id: fcu_utm
  • / mavros / global_position / tf / frame_id: local_origin
  • / mavros / global_position / tf / send: Faux
  • / mavros / image / frame_id: px4flow
  • / mavros / imu / angular_velocity_stdev: 0.000349065850399
  • / mavros / imu / frame_id: fcu
  • / mavros / imu / linear_acceleration_stdev: 0,0003
  • / mavros / imu / magnet_stdev: 0.0
  • / mavros / imu / orientation_stdev: 1.0
  • / mavros / local_position / frame_id: fcu
  • / mavros / local_position / tf / child_frame_id: base_link
  • / mavros / local_position / tf / frame_id: monde
  • / mavros / local_position / tf / send: Vrai
  • / mavros / mission / pull_after_gcs: Vrai
  • / mavros / mocap / use_pose: Vrai
  • / mavros / mocap / use_tf: Faux
  • / mavros / plugin_blacklist: ['actuator_contro ...
  • / mavros / plugin_whitelist: []
  • / mavros / px4flow / frame_id: px4flow
  • / mavros / px4flow / ranger_fov: 0.0
  • / mavros / px4flow / ranger_max_range: 5.0
  • / mavros / px4flow / ranger_min_range: 0.3
  • / mavros / safety_area / p1 / x: 1.0
  • / mavros / safety_area / p1 / y: 1.0
  • / mavros / safety_area / p1 / z: 1.0
  • / mavros / safety_area / p2 / x: -1,0
  • / mavros / safety_area / p2 / y: -1,0
  • / mavros / safety_area / p2 / z: -1,0
  • / mavros / setpoint_accel / send_force: False
  • / mavros / setpoint_attitude / reverse_throttle: Faux
  • / mavros / setpoint_attitude / tf / child_frame_id: attitude
  • / mavros / setpoint_attitude / tf / frame_id: local_origin
  • / mavros / setpoint_attitude / tf / listen: Faux
  • / mavros / setpoint_attitude / tf / rate_limit: 10.0
  • / mavros / setpoint_position / tf / child_frame_id: setpoint
  • / mavros / setpoint_position / tf / frame_id: local_origin
  • / mavros / setpoint_position / tf / listen: Faux
  • / mavros / setpoint_position / tf / rate_limit: 50,0
  • / mavros / startup_px4_usb_quirk: Faux
  • / mavros / sys / disable_diag: False
  • / mavros / sys / min_voltage: 10,0
  • / mavros / id_composant_cible: 1
  • / mavros / id_systĂšme_cible: 1
  • / mavros / tdr_radio / low_rssi: 40
  • / mavros / time / time_ref_source: fcu
  • / mavros / time / timesync_avg_alpha: 0.6
  • / mavros / vibration / frame_id: vibration
  • / mavros / vision_pose / tf / child_frame_id: vision
  • / mavros / vision_pose / tf / frame_id: local_origin
  • / mavros / vision_pose / tf / listen: Faux
  • / mavros / vision_pose / tf / rate_limit: 10.0
  • / mavros / vision_speed / listen_twist: Faux
  • / robot_description:
  • / rosdistro: indigo
  • / rosversion: 1.11.21
  • / tf_prefix:
  • / use_sim_time: Vrai

NOEUDS
/
gazebo (gazebo_ros / gzserver)
gazebo_gui (gazebo_ros / gzclient)
mavros (mavros / noeud_mavros)
spawn_erlecopter (gazebo_ros / spawn_model)

démarrage automatique d'un nouveau maßtre
processus [master]: démarré avec pid [28094]
ROS_MASTER_URI = http: // localhost : 11311

réglage / run_id sur ca9213bc-89bf-11e7-b657-1803733b65bb
processus [rosout-1]: démarré avec pid [28107]
a démarré le service principal [/ rosout]
processus [mavros-2]: démarré avec pid [28126]
processus [spawn_erlecopter-3]: démarré avec pid [28133]
processus [gazebo-4]: démarré avec pid [28134]
processus [gazebo_gui-5]: démarré avec pid [28151]
Le script spawn_model a démarré
[gazebo-4] processus est mort [pid 28134, code de sortie 255, cmd / home / bshang2 / simulation / ros_catkin_ws / src / gazebo_ros_pkgs / gazebo_ros / scripts / gzserver -u -e ode / home / bshang2 / simulation / ros_catkin_ws / src /ardupilot_sitl_gazebo_plugin/ardupilot_sitl_gazebo_plugin/worlds/mark_world/mark.world __name: = gazebo __log: = / home / bshang2 / .ros / log / ca9213bc-89bf-11e7-b657-1803733eb65-11e7-b657-1803733eb65-bb65 / gazbo].
fichier journal: /home/bshang2/.ros/log/ca9213bc-89bf-11e7-b657-1803733b65bb/gazebo-4 .log[INFO] [WallTime: 1503684250.172508] [0.000000] Chargement du modĂšle xml Ă  partir du paramĂštre ros[INFO] [WallTime: 1503684250.176886] [0.000000] En attente de service / gazebo / spawn_urdf_model[gazebo_gui-5] processus est mort [pid 28151, code de sortie 255, cmd / home / bshang2 / simulation / ros_catkin_ws / src / gazebo_ros_pkgs / gazebo_ros / scripts / gzclient __name: = gazebo_gui __log: = / home / bshang2 / .ros / log / ca9213bc-89bf-11e7-b657-1803733b65bb / gazebo_gui-5.log].fichier journal: /home/bshang2/.ros/log/ca9213bc-89bf-11e7-b657-1803733b65bb/gazebo_gui-5 .log
^ C [spawn_erlecopter-3] tuant Ă  la sortie
[mavros-2] tuant Ă  la sortie
Traceback (dernier appel le plus récent):
Fichier "/ home / bshang2 / simulation / ros_catkin_ws / src / gazebo_ros_pkgs / gazebo_ros / scripts / spawn_model", ligne 301, dans
sm.callSpawnService ()
Fichier "/ home / bshang2 / simulation / ros_catkin_ws / src / gazebo_ros_pkgs / gazebo_ros / scripts / spawn_model", ligne 267, dans callSpawnService
initial_pose, self.reference_frame, self.gazebo_namespace)
Fichier "/home/bshang2/simulation/ros_catkin_ws/src/gazebo_ros_pkgs/gazebo_ros/src/gazebo_ros/gazebo_interface.py", ligne 28, dans spawn_urdf_model_client
rospy.wait_for_service (gazebo_namespace + '/ spawn_urdf_model')
Fichier "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/impl/tcpros_service.py", ligne 159, dans wait_for_service
lever ROSInterruptException ("arrĂȘt de rospy")
rospy.exceptions.ROSInterruptException: arrĂȘt de rospy
^ C [rosout-1] tuant Ă  la sortie
^ C [maĂźtre] tuant Ă  la sortie
arrĂȘt du moniteur de traitement ...
... arrĂȘt du moniteur de traitement terminĂ©
Fini
bshang2 @ mécatronique-990 : ~ / simulation / ardupilot / ArduCopter $ roslaunch ardupilot_sitl_gazebo_plugin erlecopter_mark.launch
... connexion Ă  /home/bshang2/.ros/log/e483c856-89bf-11e7-bb61-1803733b65bb/roslaunch-mechatronics-990-28603.log
Vérification du répertoire du journal pour l'utilisation du disque. Cela peut prendre un peu de temps.
Appuyez sur Ctrl-C pour interrompre
Vérification de l'utilisation du disque du fichier journal terminé. L'utilisation est <1 Go.

a démarré le serveur roslaunch http: // mécatronique-990 : 41224 /

RÉSUMÉ

EFFACER LES PARAMÈTRES

  • / mavros /

PARAMÈTRES

  • / mavros / cmd / use_comp_id_system_control: False
  • / mavros / conn / heartbeat_rate: 1.0
  • / mavros / conn / system_time_rate: 0.0
  • / mavros / conn / timeout: 10.0
  • / mavros / conn / timesync_rate: 0.0
  • / mavros / fcu_url: tcp: //127.0.0.1 : 5760
  • / mavros / gcs_url: udp: //127.0.0.1@1 ...
  • / mavros / global_position / frame_id: fcu
  • / mavros / global_position / rot_covariance: 99999.0
  • / mavros / global_position / tf / child_frame_id: fcu_utm
  • / mavros / global_position / tf / frame_id: local_origin
  • / mavros / global_position / tf / send: Faux
  • / mavros / image / frame_id: px4flow
  • / mavros / imu / angular_velocity_stdev: 0.000349065850399
  • / mavros / imu / frame_id: fcu
  • / mavros / imu / linear_acceleration_stdev: 0,0003
  • / mavros / imu / magnet_stdev: 0.0
  • / mavros / imu / orientation_stdev: 1.0
  • / mavros / local_position / frame_id: fcu
  • / mavros / local_position / tf / child_frame_id: base_link
  • / mavros / local_position / tf / frame_id: monde
  • / mavros / local_position / tf / send: Vrai
  • / mavros / mission / pull_after_gcs: Vrai
  • / mavros / mocap / use_pose: Vrai
  • / mavros / mocap / use_tf: Faux
  • / mavros / plugin_blacklist: ['actuator_contro ...
  • / mavros / plugin_whitelist: []
  • / mavros / px4flow / frame_id: px4flow
  • / mavros / px4flow / ranger_fov: 0.0
  • / mavros / px4flow / ranger_max_range: 5.0
  • / mavros / px4flow / ranger_min_range: 0.3
  • / mavros / safety_area / p1 / x: 1.0
  • / mavros / safety_area / p1 / y: 1.0
  • / mavros / safety_area / p1 / z: 1.0
  • / mavros / safety_area / p2 / x: -1,0
  • / mavros / safety_area / p2 / y: -1,0
  • / mavros / safety_area / p2 / z: -1,0
  • / mavros / setpoint_accel / send_force: False
  • / mavros / setpoint_attitude / reverse_throttle: Faux
  • / mavros / setpoint_attitude / tf / child_frame_id: attitude
  • / mavros / setpoint_attitude / tf / frame_id: local_origin
  • / mavros / setpoint_attitude / tf / listen: Faux
  • / mavros / setpoint_attitude / tf / rate_limit: 10.0
  • / mavros / setpoint_position / tf / child_frame_id: setpoint
  • / mavros / setpoint_position / tf / frame_id: local_origin
  • / mavros / setpoint_position / tf / listen: Faux
  • / mavros / setpoint_position / tf / rate_limit: 50,0
  • / mavros / startup_px4_usb_quirk: Faux
  • / mavros / sys / disable_diag: False
  • / mavros / sys / min_voltage: 10,0
  • / mavros / id_composant_cible: 1
  • / mavros / id_systĂšme_cible: 1
  • / mavros / tdr_radio / low_rssi: 40
  • / mavros / time / time_ref_source: fcu
  • / mavros / time / timesync_avg_alpha: 0.6
  • / mavros / vibration / frame_id: vibration
  • / mavros / vision_pose / tf / child_frame_id: vision
  • / mavros / vision_pose / tf / frame_id: local_origin
  • / mavros / vision_pose / tf / listen: Faux
  • / mavros / vision_pose / tf / rate_limit: 10.0
  • / mavros / vision_speed / listen_twist: Faux
  • / robot_description:
  • / rosdistro: indigo
  • / rosversion: 1.11.21
  • / tf_prefix:
  • / use_sim_time: Vrai

NOEUDS
/
gazebo (gazebo_ros / gzserver)
gazebo_gui (gazebo_ros / gzclient)
mavros (mavros / noeud_mavros)
spawn_erlecopter (gazebo_ros / spawn_model)

démarrage automatique d'un nouveau maßtre
process [master]: démarré avec pid [28618]
ROS_MASTER_URI = http: // localhost : 11311

réglage / run_id sur e483c856-89bf-11e7-bb61-1803733b65bb
processus [rosout-1]: démarré avec pid [28631]
a démarré le service principal [/ rosout]
processus [mavros-2]: démarré avec pid [28656]
processus [spawn_erlecopter-3]: démarré avec pid [28657]
processus [gazebo-4]: démarré avec pid [28674]
processus [gazebo_gui-5]: démarré avec pid [28678]
Le script spawn_model a démarré
[INFO] [WallTime: 1503684293.653120] [0.000000] Chargement du modĂšle xml Ă  partir du paramĂštre ros
[INFO] [WallTime: 1503684293.657344] [0.000000] En attente de service / gazebo / spawn_urdf_model
[INFO] [WallTime: 1503684294.260952] [0.047500] Service d'appel / gazebo / spawn_urdf_model
[INFO] [WallTime: 1503684294.855628] [0.445000] Statut d'apparition: SpawnModel: modÚle généré avec succÚs
Le processus [spawn_erlecopter-3] s'est terminé proprement
fichier journal: /home/bshang2/.ros/log/e483c856-89bf-11e7-bb61-1803733b65bb/spawn_erlecopter-3*.log

Diagnostique

bshang2 @ mécatronique-990 : ~ / simulation / ardupilot / ArduCopter $ rostopic echo -n1 / diagnostics
entĂȘte:
seq: 6456
timbre:
secs: 6817
nsecs: 500000000
frame_id: ''
statut:


  • niveau: 0
    nom: mavros: connexion FCU
    message: connecté
    id_matériel :
    valeurs:



    • clĂ©: Paquets reçus:

      valeur: 24635



    • clĂ©: paquets abandonnĂ©s:

      valeur: 0



    • clĂ©: dĂ©passements de tampon:

      valeur: 0



    • clĂ©: erreurs d'analyse:

      valeur: 0



    • Touche: numĂ©ro de sĂ©quence Rx:

      valeur: 58



    • Touche: numĂ©ro de sĂ©quence Tx:

      valeur: 190



    • clĂ©: octets totaux Rx:

      valeur: 19770100



    • clĂ©: octets totaux Tx:

      valeur: 169295



    • clĂ©: vitesse Rx:

      valeur: inf



    • clĂ©: vitesse Tx:

      valeur: inf


  • niveau: 0
    nom: mavros: pont GCS
    message: connecté
    id_matériel :
    valeurs:



    • clĂ©: Paquets reçus:

      valeur: 3059



    • clĂ©: paquets abandonnĂ©s:

      valeur: 0



    • clĂ©: dĂ©passements de tampon:

      valeur: 0



    • clĂ©: erreurs d'analyse:

      valeur: 0



    • Touche: numĂ©ro de sĂ©quence Rx:

      valeur: 243



    • Touche: numĂ©ro de sĂ©quence Tx:

      valeur: 0



    • clĂ©: octets totaux Rx:

      valeur: 51809



    • clĂ©: octets totaux Tx:

      valeur: 19769923



    • clĂ©: vitesse Rx:

      valeur: inf



    • clĂ©: vitesse Tx:

      valeur: inf


  • niveau: 0
    nom: mavros: GPS
    message: correction 3D
    id_matériel :
    valeurs:



    • clĂ©: Satellites visibles

      valeur: 10



    • clĂ©: type de correction

      valeur: 3



    • clĂ©: EPH (m)

      valeur: 1.21



    • clĂ©: EPV (m)

      valeur: 2,00


  • niveau: 0
    nom: mavros: Heartbeat
    message: Normal
    id_matériel :
    valeurs:



    • clĂ©: battements de cƓur depuis le dĂ©marrage

      valeur: 6817



    • Touche: FrĂ©quence (Hz)

      valeur: 0,952381



    • clĂ©: type de vĂ©hicule

      valeur: Quadrotor



    • touche: type de pilote automatique

      valeur: ArduPilotMega



    • touche: Mode

      valeur: GUIDÉ



    • clĂ©: Ă©tat du systĂšme

      valeur: Actif


  • niveau: 0
    nom: mavros: System
    message: Normal
    id_matériel :
    valeurs:



    • touche: capteur prĂ©sent

      valeur: 0x0061FD2F



    • touche: capteur activĂ©

      valeur: 0x0061FD2F



    • clĂ©: capteur Helth

      valeur: 0x0061FD2F



    • clĂ©: Sensor 3D Gyro

      valeur: Ok



    • clĂ©: Capteur 3D Accel

      valeur: Ok



    • clĂ©: Sensor 3D Mag

      valeur: Ok



    • Touche: Pression Abs du capteur

      valeur: Ok



    • clĂ©: capteur GPS

      valeur: Ok



    • clĂ©: Position du capteur laser

      valeur: Ok



    • Touche: ContrĂŽle de la frĂ©quence angulaire du capteur

      valeur: Ok



    • clĂ©: Sensor Attitude Stab

      valeur: Ok



    • clĂ©: Position de lacet du capteur

      valeur: Ok



    • Touche: Sensor Z / Alt Control

      valeur: Ok



    • Touche: Commande de position X / Y du capteur

      valeur: Ok



    • Touche: Sorties du moteur du capteur

      valeur: Ok



    • clĂ©: rĂ©cepteur de capteur RC

      valeur: Ok



    • clĂ©: santĂ© AHRS

      valeur: Ok



    • clĂ©: santĂ© du terrain

      valeur: Ok



    • clĂ©: Charge CPU (%)

      valeur: 0.0



    • touche: Taux de chute (%)

      valeur: 0.0



    • clĂ©: Erreurs comm

      valeur: 0



    • clĂ©: nombre d'erreurs # 1

      valeur: 0



    • clĂ©: nombre d'erreurs # 2

      valeur: 0



    • clĂ©: nombre d'erreurs # 3

      valeur: 0



    • clĂ©: nombre d'erreurs # 4

      valeur: 0


  • niveau 1
    nom: mavros: Batterie
    message: basse tension
    id_matériel :
    valeurs:



    • clĂ©: Tension

      valeur: 0,00



    • clĂ©: courant

      valeur: 0.0



    • clĂ©: Restant

valeur: 100,0

VĂ©rifier l'ID

bshang2 @ mécatronique-990 : ~ / simulation / ardupilot / ArduCopter $ rosrun mavros checkid
D'ACCORD. J'ai reçu des messages de 1: 1.


Reçu 1231 messages, à partir de 1 adresses
sys: liste des messages
1: 1 0, 1, 2, 136, 152, 150, 24, 27, 29, 30, 32, 33, 162, 163, 164, 165, 42, 173, 178, 62, 193, 74, 35, 36 , 241, 116

question

Commentaire le plus utile

Pour setpoint_velocity , j'ajouterai un correctif qui permettra de choisir entre le LOCAL_NED et le BODY_NED , car il est actuellement réglé par défaut sur LOCAL_NED (https: / /github.com/mavlink/mavros/blob/master/mavros/src/plugins/setpoint_velocity.cpp#L81). En attendant, vous pouvez utiliser setpoint_raw et définir coordinate_frame sur FRAME_BODY_NED ou MAV_FRAME::BODY_NED (les deux devraient fonctionner).

Tous les 14 commentaires

Salut,

Vous pouvez utiliser le setpoint_raw.

http://wiki.ros.org/mavros#mavros.2BAC8 -Plugins.setpoint_raw

Sur le point de consigne cible, vous pouvez modifier le cadre de coordonnées.

http://docs.ros.org/api/mavros_msgs/html/msg/PositionTarget.html

Pour setpoint_velocity , j'ajouterai un correctif qui permettra de choisir entre le LOCAL_NED et le BODY_NED , car il est actuellement réglé par défaut sur LOCAL_NED (https: / /github.com/mavlink/mavros/blob/master/mavros/src/plugins/setpoint_velocity.cpp#L81). En attendant, vous pouvez utiliser setpoint_raw et définir coordinate_frame sur FRAME_BODY_NED ou MAV_FRAME::BODY_NED (les deux devraient fonctionner).

Merci @AlexisTM et @ TSC21 Votre réponse est utile. J'essaierai ça plus tard.

@ TSC21 @AlexisTM Merci pour votre aide! Je peux contrÎler la vitesse dans le corps maintenant. La vidéo est enregistrée: https://www.youtube.com/watch?v=dyUQfFYX3pk&feature=youtu.be

rostopic pub /mavros/setpoint_raw/local mavros_msgs/PositionTarget '{header: {stamp: now, frame_id: "world"}, coordinate_frame: 8, type_mask: 3527, velocity: {x: 0.1, y: 0, z: 0}}' -r 10

@cnpcshangbo bon Ă  savoir

salut @cnpcshangbo , merci pour la vidéo.
Je poste ceci pour aider les autres Ă  dissiper une confusion que j'avais.
MĂȘme si le masque de cadre est FRAME_BODY_NED = 8 , la commande ROS doit toujours ĂȘtre en ENU . La conversion ENU -> NED est prise en charge par mavros.
En fait, d'aprÚs la vidéo, le comportement est:

  • x = 0,1 ---> À droite
  • y = 0,1 ---> En avant
    De toute évidence, il est toujours dans ENU. Cependant, cette confusion m'a coûté une semaine à tirer les cheveux ...

Salut Hoang,
Merci pour la clarification.
Désolé d'apprendre que cela vous a pris si longtemps.
Vos efforts aident les autres.
Merci
Bo

Hoang Minh Chung [email protected]äșŽ 2018 ćčŽ 8 月 17 æ—„ 摹äș” 侊捈 11:09 憙道 

salut @cnpcshangbo https://github.com/cnpcshangbo , merci pour la vidéo.
Je poste ceci pour aider les autres Ă  dissiper une confusion que j'avais.
MĂȘme si le masque de cadre est "FRAME_BODY_NED = 8", la commande ROSdevrait toujours ĂȘtre en ENU . La conversion ENU -> NED se fera par
mavros.
En fait, d'aprÚs la vidéo, le comportement est:

  • x = 0,1 ---> À droite
  • y = 0,1 ---> En avant
    De toute évidence, il est toujours dans ENU. Cependant, cette confusion m'a coûté une semaine
    de tirer les cheveux ...

-
Vous recevez cela parce que vous avez été mentionné.
RĂ©pondez directement Ă  cet e-mail, affichez-le sur GitHub
https://github.com/mavlink/mavros/issues/792#issuecomment-413745084 , ou muet
le fil
https://github.com/notifications/unsubscribe-auth/AEm3NdefOViosyJKxQlf2h0ZweC8lO6uks5uRjP9gaJpZM4PDCb2
.

N'est-il pas censĂ© ĂȘtre x vers l'avant et y vers la gauche pour BODY et x vers l'est, y vers le nord dans le cadre de la carte @Nuno?

Alors ai-je raison de dire que nous avons en fait 3 conventions ici:
1) NED: estimation et contrÎle embarqués du PX4
2) ENU: format d'entrée standard pour les messages de commande mavros
3) NWU: systÚme de coordonnées typique dans ROS

Non, il n'y a pas de NWU dans ROS.
http://www.ros.org/reps/rep-0103.html

@AlexisTM north ou east ne doit pas ĂȘtre utilisĂ© pour spĂ©cifier des conventions de corps, mais plutĂŽt des orientations comme devant, Ă  gauche.

D'accord. Mais si je ne me trompe pas, je pense que nous avons encore 3 conventions?
1) NED: contrÎle embarqué
2) Right-Forward-Up: Comment mavros comprend les points de consigne bruts (vitesse)
3) Avant-gauche-haut: convention ROS

@hmchung Nous utilisons des points de consigne de vitesse dans le cadre de la carte et c'est ENU (convention ROS)

Notez qu'il ne devrait y avoir que 2 conventions! NED sur le Pixhawk et ENU: tout ce que vous faites sur ROS.

Avant-gauche-haut (FLU) est la convention ROS pour le cadre du corps. East-North-Up (ENU) est la convention ROS pour la trame locale / mot.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

TSC21 picture TSC21  Â·  12Commentaires

tfoote picture tfoote  Â·  5Commentaires

mtsakaguchi picture mtsakaguchi  Â·  5Commentaires

trishantroy picture trishantroy  Â·  10Commentaires

zhahaoyu picture zhahaoyu  Â·  12Commentaires