Non-GPS Navigation using Rover with ROS/Google Cartographer

hello,Now i use cartographer_ros and rover to test, but have some problem.

Hardware:pixhawk 2.4.8
Firmware:ardurover 4.3
Radar:rplidar S2M1
The connection with cartograph_ros and mavros has now been successfully established. And the direction of pixhawk is consistent with the direction of rplidar. When I control the rover to move forward, the GCS shows that the vehicle is moving in the opposite direction. At the same time, obstacles are also displayed behind the vehicle.
Then I opened rviz, and the direction of the arrow displayed by tf was exactly the same as the direction of the radar.

I know PRX option can change obstacle direction,but it’s can’t slove this problem, when i let the rover move forward. in missionplanner and rviz ,it display move backward

Hi @hbhskf,

I suspect the issue is that ArduPilot’s yaw and ROS’s yaw do not match. If you’re using AP_VisualOdom (e.g. VISO_ parameters) then it may be possible to align ardupilot’s yaw to match ROS’s but it’s been so long now since I’ve used ROS that I don’t know what the issue really is. We’ve got ROS2 experts on the AP team now so perhaps it would be better to move to ROS2 and use their work.

ok,thank you.I have tried changing the direction of the radar to yaw against it. Probably changing the yaw of the arudpilot doesn’t solve the problem, because then the forward direction of the rover also changes. Next, I will try to use ros2. thank you very much for your help.

I slove this.

in “cartographer.launch”

Modifying the parameters of the TF can solve this problem. This means that ros and rover have different starting parameters


1 Like