move_base across multiple computer control loop problem
Hello all,
My current setup involves two tx2, connected via wired Ethernet cable (100Mbps).
PC1 (with roscore) is running localization (rtabmap) and Intel t265 (pure odometry mode) and lidar (8hz). PC2 is running Intel d435 and move_base (teb_local_planner with obstacles layer and inflation layer plugin). D435 is configured at 15 hz (424x240) so that I do not get an scp overflow problem.
When I use only lidar in local costmap, my average cmd_vel frequency from teb is around 5hz, but with both lidar and d435 in local costmap, the control loop lowered to 2hz. My desired control loop is 10 hz. So neither is not reaching the desired control loop rate. And without vnc and rviz, the cpus are running on average 60%, so I don't think it is a computation problem.
Both the global and local costmap has transform tolerance around 0.5 seconds, and based on rqt_tf_tree /map to /odom tf is running at 20hz.
Is there anything that is suspicious?
Thank you in advance!
Here are some thoughts. Cell size of the local costmap could be increased (local costmap updates and teb_local_planner updates will be faster). You could also downsample/voxel filter D435 cloud before feeding it to local costmap to save time with local costmap updates. About CPU usage, you could have a core at 100% that will limit processing rate, while the overall CPU usage is at 60% (for all cores).
I have limited the d435 to only keep points within 2.5 meters, but I will still try to apply a voxel grid filter. As of costmap, what level of performance can i expect if you increase my current resolution to 5cm to 7.5 or 10cm, if you know from previous experience? The cores on the computer that is running teb_local_planner never reached 100% on any of them. The highest was around 70%. Do you have any idea on why this would still be the case? FYI, I switched from a 100Mbps to 1Gbps router. I realized that the pointcloud was only getting data around 0.5hz on the other computer.