ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
At this point I have strong indications that it is all about the actual processing capacity of the Raspberry Pi. Basically what I have done is to move the localization node to another board (Nvidia TX2), while keeping the other nodes on the Raspberry Pi. In that setup I could get 80+ Hz update rate.
Furthermore, when used top to show cpu usage, it was pretty high.
After the migration of robot_localization to TX2:
I would be glad to hear from other Raspberry Pi users if anyone has faced a similar problem, and if they could actually have robot_localization running alongside various other nodes.
Here is a sample of IMU data:
---
header:
seq: 4516
stamp:
secs: 1548832661
nsecs: 383944034
frame_id: "imu_base"
orientation:
x: -0.00143707386235
y: -0.0112244264823
z: -0.349196171157
w: 0.93698131311
orientation_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
angular_velocity:
x: 0.000330710783601
y: -2.22474336624e-05
z: 0.00118492916226
angular_velocity_covariance: [0.03, 0.0, 0.0, 0.0, 0.03, 0.0, 0.0, 0.0, 0.03]
linear_acceleration:
x: 0.222736816406
y: 0.0502954101563
z: 10.1836230469
linear_acceleration_covariance: [0.1, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.1]
---
Here is a sample of Odometry Data:
header:
seq: 293
stamp:
secs: 1548832850
nsecs: 747138977
frame_id: "odom"
child_frame_id: "base_link"
pose:
pose:
position:
x: -6.18503931136e-05
y: 0.0
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.00011245525997
w: 0.999999993677
covariance: [0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5]
twist:
twist:
linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
---
2 | No.2 Revision |
At this point I have strong indications that it is all about the actual processing capacity of the Raspberry Pi. Basically what I have done is to move the localization node to another board (Nvidia TX2), while keeping the other nodes on the Raspberry Pi. In that setup I could get 80+ Hz update rate.
Furthermore, when used top to show cpu usage, it was pretty high.
After the migration of robot_localization to TX2:
I would be glad to hear from other Raspberry Pi users if anyone has faced a similar problem, and if they could actually have robot_localization running alongside various other nodes.
Here is a sample of IMU data:
---
header:
seq: 4516
stamp:
secs: 1548832661
nsecs: 383944034
frame_id: "imu_base"
orientation:
x: -0.00143707386235
y: -0.0112244264823
z: -0.349196171157
w: 0.93698131311
orientation_covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
angular_velocity:
x: 0.000330710783601
y: -2.22474336624e-05
z: 0.00118492916226
angular_velocity_covariance: [0.03, 0.0, 0.0, 0.0, 0.03, 0.0, 0.0, 0.0, 0.03]
linear_acceleration:
x: 0.222736816406
y: 0.0502954101563
z: 10.1836230469
linear_acceleration_covariance: [0.1, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.1]
---
Here is a sample of Odometry Data:
header:
seq: 293
stamp:
secs: 1548832850
nsecs: 747138977
frame_id: "odom"
child_frame_id: "base_link"
pose:
pose:
position:
x: -6.18503931136e-05
y: 0.0
z: 0.0
orientation:
x: 0.0
y: 0.0
z: 0.00011245525997
w: 0.999999993677
covariance: [0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5]
twist:
twist:
linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0
covariance: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
---
[EDIT]
I have compiled robot_localization by adding the -DCMAKE_BUILD_TYPE=RelWithDebInfo
parameter, and by doing so I got a reduction of cpu usage from 80% to 30-some% on robot_localization
. The update rates are up too. I could actually do away with the TX2 now. Picture of the current state of the system:
Thank you for the suggestions.