Maver-Custom
Maver Custom is a customizable form of the Maver series. You can define the installation position of each wheel yourself, but you also need to configure the chassis controller.
Quick Start
First, please read the Chassis Controller thoroughly to understand the basic functions of the chassis controller.
You need to go to Settings
-> Base Settings
to configure the position of each wheel.
Click Add
to add a wheel, and click the trash can icon to delete a wheel. You need to add wheels in order and enter their Beta
, Wheel Distance
, Wheel Radius
, and Bias
. Finally, click the Save
button to save the configuration.
Wheel Order
Starting from the positive direction of the robot's X-axis, add wheels in the order they are encountered as you rotate counterclockwise.
The red numbers are the motor numbers in the WebSocket API. If you are not using the WebSocket API directly, you can ignore them.
Beta, Wheel Distance, Wheel Radius, Bias
Beta is the angle between the wheel and the X-axis. If your wheels are mounted in a standard rectangular shape, you can use the following formula to calculate it.
Wheel Distance is the distance from the wheel center to the chassis center. If your wheels are mounted in a standard rectangular shape, you can use the following formula to calculate it.
Wheel Radius is the radius of the wheel.
Bias is the offset between the wheel's Arm axis and Wheel axis.
#[tokio::main]
async fn main() {
let track_width = 0.32f64; // Track width, i.e., car width, in meters
let wheel_base = 0.36f64; // Wheelbase, i.e., car length, in meters
let half_track_width = track_width * 0.5;
let half_wheel_base = wheel_base * 0.5;
let temp_beta = half_track_width.atan2(half_wheel_base);
let pi = std::f64::consts::PI;
let beta = vec![temp_beta, pi - temp_beta, temp_beta - pi, -temp_beta];
let wheel_distance = (half_track_width.powi(2) + half_wheel_base.powi(2)).sqrt();
println!("beta: {:?}", beta);
println!("wheel_distance: {}", wheel_distance);
}
Main Control Assembly
The steering wheels can only be mounted on CAN0 and CAN1. Specifically, wheels 2 and 3 must be on CAN0, with the CANOpenID preset to 0x10 and 0x11. Wheels 1 and 4 must be on CAN1, with the CANOpenID preset to 0x12 and 0x13. And you need to correctly configure the 0x3A01 and 0x3A02 parameters of each PCW.
Zero Point Calibration
We do not restrict the installation angle of the wheels, so after configuring the wheels, zero point calibration is necessary. Place the chassis on a flat surface and push it in the positive X-axis direction to ensure the offset steering wheels are in the most natural position (i.e., the offset direction is the negative X-axis). If the offset is not correct, you can manually adjust the angle of the offset steering wheels.
Then, use CANOpen to write the value 1702257011 to the 0x3002, 0x01 Object of each steering wheel to save the current zero point.
Getting Started with API Control of the Chassis
Warning
Since it is impossible to predict the installation position of the custom chassis, only the ROS control case of standard Maver is provided. You can Fork the code and modify it yourself.
Please refer to API Control.