Seirios is designed to work with robots of all shapes and sizes.
However, checking that the robot is working correctly before software installation is crucial to preventing compounding errors.
Robot Checks:
Ensure odometry is working well
Align the bot appropriately to test 3-4 meters of linear, straight distance without an angular component. Test using the following command in Terminal: rostopic pub /cmd_vel geometry_msgs/Twist "linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0"
Restart motor
Check odom pose is zero.
Publish only linear vel x: 0.1 and stop the bot at the 3-4 m mark.
Echo the odom topic: rostopic echo /odom
.
Compare the pose of the updated odom with linear and angular bot travelled (offset 1-2%).
Align the bot properly. Mark the spot where the bot will begin rotating.
Restart the motors.
Rotate the bot clockwise. Quaternion should be updated to negative.
Restart the motor and rotate the bot anticlockwise. Quaternion should be updated to positive.
Restart the motor. Rotate and stop the bot at the original marked spot.
Make sure that the angular pose is a 0 rad change.
Validating Odometry Data
We provide you with a script that enables you to verify the odometry data by inputting the velocity and duration. The robot will then move at the specified velocity for the given duration. Subsequently, the script will calculate and provide the distance traveled by the robot based on these inputs.
This will facilitate the verification of your odometry data, making it easier and more efficient for you.
You can download the script here.
Ensure no wheel slippage occurs and that robot is able to teleoperate in a straight line
Move the robot straight, and echo the /odom
topic.
Align the wheels accordingly to test straight linear movement. It’s recommended to draw lines on the floor for accuracy.
Give only linear speed. Check the robot is travelling straight. A slight deviation is acceptable (1 - 2 degrees), but no more than 5 degrees.
Ensure robot is moving linearly at the right speed
A minimum speed of 0.1 - 0.5 m/s needs to be tested. Also, manually check if the robot covers the distance correctly. A video recording is encouraged to troubleshoot any issues that may arise.
Open a new terminal window. Execute this command: rostopic pub /cmd_vel geometry_msgs/Twist "linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0"
Change the linear: x:
to 0.1-0.5 as we only want to move the robot straightly forward. Leave all the other values to 0.0.
Measure the distance the robot moved. And record the time between when the robot started to move and when the robot stopped. Calculate speed by dividing the distance over time.
Check whether your calculated speed matches up to the value that you have given for linear x.
If not, please recalibrate your wheels.
Alternatively, you may use rosrun telelop_twist_keyboard teleop_twist_keyboard.py
. Similarly, give it a linear speed between 0.1-0.5. Then repeat Steps 3 - 5 above.
Note:
If your robot is non-holonomic, it shouldn't be able to slide sideways. y should be 0.0.
If your robot is not flight-capable, z should be 0.0.
Validating Odometry Data
We provide you with a script that enables you to verify the odometry data by inputting the velocity and duration. The robot will then move at the specified velocity for the given duration. Subsequently, the script will calculate and provide the distance traveled by the robot based on these inputs.
This will facilitate the verification of your odometry data, making it easier and more efficient for you.
You can download the script here.
Ensure robot is moving linearly at the right speed
Before starting Robot checks:
Kill all Movel nodes (if you already have it previously installed)
Launch only the motor controller and the teleoperation keyboard twist for testing
[OR]
Run the following command:
rostopic pub -r 10 /cmd_vel - for linear linear: x-0.1 for rotation only : angular: z-0.1
Angular speed calibration check - Test using pub /cmd_vel for accurate result
Check the angular speed for at least 0.1-0.6 rad/s, and check whether the robot rotates correctly. A video recording is encouraged to troubleshoot any issues that may arise.
Likewise, repeat the same method to check angular speed calibration.
Run rostopic pub /cmd_vel geometry_msgs/Twist "linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0"
Set angular x value between 0.1-0.6. Leave the other values as 0.0.
Measure how much the robot turns. And similarly, record the time it took to turn.
Check that your calculations match the value you set for angular z.
Alternatively, you may use rosrun telelop_twist_keyboard teleop_twist_keyboard.py
. Set angular speed between 0.1-0.5. Then repeat Steps 3 - 5 above.
Validating Odometry Data
We provide you with a script that enables you to verify the odometry data by inputting the velocity and duration. The robot will then move at the specified velocity for the given duration. Subsequently, the script will calculate and provide the distance traveled by the robot based on these inputs.
This will facilitate the verification of your odometry data, making it easier and more efficient for you.
You can download the script here.