Wheel Odometery data to Navio2

ArduPilot version : 3.2.0

I am using Navio2 for development of skid steering rover. The rover used for autonomous navigation using GPS and IMU. To improve accuracy I wanted to integrate wheel odometry data to Navio2 to improve the accuracy. However, Navio2 does not have any provision for AUX input where we usually provide wheel encoder information in pixhawk.
Encoder details: https://robu.in/product/orange-1000-ppr-ab-phase-incremental-optical-rotary-encoder/

Can somebody help me to integrate wheel Odom data to navio2? Is there a hardware limitation to integrate wheel encoders? If so, is there is a method to create a ROS node to compute the odometry information and relay back to ardupilot?

According to this topic here, it looks like Navio2 have no support of rotary encoders at all.

I can offer you really straight forward solution: you can utilize some sort of microcontroller, that will collect encoder data for you (e.g. Arduino) and you can pass that data over some interface (either I2C or UART). On Raspberry, you can create ROS node that will collect encoder data from the chosen interface and calculate odometry data.

Although I do not really understand the part about relaying it back to Ardupilot. I’m not sure that there is a way…

1 Like

Thanks, Vikeyer.

I had gone through the topic.
I am having an Arduino code and raspberry integration ready, however, I am stuck at how to relay the information to ardupilot.

Requesting any directions or help in this regards.
Thanks in advance.

I think it will be easier to compile everything using ROS since Ardupilot can handle it. Here is an example of how you can calculate odometry data from rotary encoders. You can check out here my implementation (bit rough one though).

1 Like

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.