Closed dronecrewkari closed 6 years ago
Does it send mavlink 2?
Mavlink v3 is not exist yet. What value Mavlink::magic have?
@vooon
header:
seq: 463
stamp:
secs: 133
nsecs: 62000000
frame_id: ''
framing_status: 1
magic: 254
len: 62
incompat_flags: 0
compat_flags: 0
seq: 96
sysid: 1
compid: 1
msgid: 105
checksum: 24634
payload64: [129071464, 4449852998238703290, 13501161584329541006L, 13480068643353349519L, 4219899119912512951, 3202370762, 4896982051447635968, 30783137906688]
signature: []
---
header:
seq: 464
stamp:
secs: 133
nsecs: 62000000
frame_id: ''
framing_status: 1
magic: 254
len: 28
incompat_flags: 0
compat_flags: 0
seq: 97
sysid: 1
compid: 1
msgid: 30
checksum: 6693
payload64:
- 13587087834979891247
- 13514568930264840325
- 4286445697480047792
- 13480068643355710640
signature: []
magic: 254, which means uint8 MAVLINK_V10 = 254
I have tried mavros 0.22.0
, and it does not have problem at all.
and the length of mavros is correct all the time.
Would you please let me know how to install mavros 0.22.0
in not src folder(not source code), but /opt/ros/kinetic/share as executable?
?
If we do sudo apt-get install ros-kinectic-mavros
, the installed version of mavros is 0.23.0 which we don't like.
This is not a problem at all. The difference to 0.23 is that we, by default, use MAVLINK v2.0. You can set it back to 1.0 on your launch file.
@TSC21 @vooon
This is the rostopic echo result from mavros 0.23.0
rostopic echo mavros_msgs/Mavlink
As you can see, the length of msgid: 105 vary as following.
len: 61 msgid: 105
len: 62 msgid: 105
In mavros 0.22.0
, following error does not occur
header:
seq: 643
stamp:
secs: 258
nsecs: 275000000
frame_id: ''
framing_status: 1
magic: 253
len: 61
incompat_flags: 0
compat_flags: 0
seq: 0
sysid: 1
compid: 1
msgid: 105
checksum: 5997
payload64: [10838272, 4470471791896184273, 4315112263521140020, 13575039237226844464L, 13715600795138748645L, 3201975881, 4896943345202364416, 271690235904]
signature: []
---
header:
seq: 644
stamp:
secs: 258
nsecs: 275000000
frame_id: ''
framing_status: 1
magic: 253
len: 28
incompat_flags: 0
compat_flags: 0
seq: 1
sysid: 1
compid: 1
msgid: 30
checksum: 16052
payload64:
- 13588184705202661974
- 4593572619793631631
- 4243887491471530941
- 13575039239399422531
signature: []
---
header:
seq: 645
stamp:
secs: 258
nsecs: 275000000
frame_id: ''
framing_status: 1
magic: 253
len: 28
incompat_flags: 0
compat_flags: 0
seq: 2
sysid: 1
compid: 1
msgid: 33
checksum: 50559
payload64: [2035717509352532566, 2096030025249858, 281470681743504, 13575039236800905216L]
signature: []
---
header:
seq: 646
stamp:
secs: 258
nsecs: 276000000
frame_id: ''
framing_status: 1
magic: 253
len: 28
incompat_flags: 0
compat_flags: 0
seq: 3
sysid: 1
compid: 1
msgid: 32
checksum: 32666
payload64:
- 13529686782479706710
- 13696611677434185999
- 13540920298374900385
- 13575039239394931871
signature: []
---
header:
seq: 647
stamp:
secs: 258
nsecs: 276000000
frame_id: ''
framing_status: 1
magic: 253
len: 32
incompat_flags: 0
compat_flags: 0
seq: 4
sysid: 1
compid: 1
msgid: 31
checksum: 26891
payload64: [4556390178507205206, 13579059537067253320L, 4315112261341295591, 13575039237226844464L]
signature: []
---
header:
seq: 648
stamp:
secs: 258
nsecs: 280000000
frame_id: ''
framing_status: 1
magic: 253
len: 62
incompat_flags: 0
compat_flags: 0
seq: 5
sysid: 1
compid: 1
msgid: 105
checksum: 56736
payload64: [10843264, 13628085336831468324L, 4260370049180363824, 13451504604716200280L, 13716931960131098100L, 3202622573, 4896943345202364416, 2195835584512]
signature: []
---
header:
seq: 649
stamp:
secs: 258
nsecs: 280000000
frame_id: ''
framing_status: 1
magic: 253
len: 28
incompat_flags: 0
compat_flags: 0
seq: 6
sysid: 1
compid: 1
msgid: 33
checksum: 1442
payload64: [2035717509352532571, 2096030025249858, 281470681743504, 13451504604294545408L]
signature: []
---
header:
seq: 650
stamp:
secs: 258
nsecs: 286000000
frame_id: ''
framing_status: 1
magic: 253
len: 62
incompat_flags: 0
compat_flags: 0
seq: 7
sysid: 1
compid: 1
msgid: 105
We have tried to install mavros as the executable in opt folder
but the following error occurs
kari@choi:~$ sudo apt-get install ros-kinetic-mavros version=0.22.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package version
kari@choi:~$ sudo apt-get install ros-kinetic-mavros=0.22.0
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Version '0.22.0' for 'ros-kinetic-mavros' was not found
Gotcha!
magic: 253
len: 61
Not a bug. Closing.
@TSC21 How can we change to set it back MAVLINK v1.0 in your ROS launch file?
@vooon
Thank you for the help
Do you mean that message length can vary in mavros 0.23.0 with v2.0?
If yes, why does it vary? Why not with v1.0?
If yes, how can we decode mavros_msgs/Mavlink which varies in term of length? For instance, how can we use memcopy function to decode this message?
Yes because it is MAVLink v2.0. And usage to/from topics outside of mavros is a bad practice. Write a plugin. It is simple.
And length may wary since 0.18.0, but until 0.23 we defaulted to mavlink v1.0.
@vooon
Thank you for the kind reply.
BTW, why is the reason that usage to/from topics outside of mavros is a bad practice?
Theatrically, it should be the same as using a plugin.
Issue details
We are using
ROS Kinetic
andMAVROS v0.23.0
for gazebo px4 SITL.when we do rostopic echo in order to monitor each mavlink topic by
rostopic echo mavros_msgs/Mavlink
Length of message ID #105(https://mavlink.io/kr/messages/common.html#HIGHRES_IMU)
is supposed to be 62 length, but it varies from 61 to 62., which is the problem.
In addition, length of other messages(
mavros_msgs/Mavlink
) are not consistent with their definition.from time to time.
In the past, when we tested
ROS indigo
andMAVROS v0.17.5
for gazebo px4 SITL,we had no problem at all, and length of each mavlink message is always consistent with their definition.
MAVROS version and platform
Mavros: 0.23.0 ROS: Kinetic Ubuntu: 16.04
Autopilot type and version
[ ] ArduPilot [ v ] PX4
Version: 1.7.3