Due to novel Coronavirus COVID-19, the efforts of the CR4 team in spring 2020 was cut short. In about two months, we were able to complete quite a bit but unable to get the new rover to a stable and usable state for future students. This document lists what was finished, and elaborates on what remains to be done.
The biggest endeavor of this project was to use the Diff_Drive_Controller
to produce stable and reliable motor movement (in tandem with a PID loop on the Tivac board) and odometry.
the embedded ROS node on Tivac publishes IMU and Sonar topics, but their data is unreliable.
a basic urdf was constructed
basic launch files created for robot bringup
depth camera and lidar fusion as a point cloud
PID gains need to be more finely tuned. Refer to motor.h for the defines of the gains
IMU should be calibrated more finely. Perhaps DMP should be used?
Diff_Drive
published NAN in odoms by default. perhaps some of the arrays in hw_interface.cpp need to be initialized with 0's?
attach a more reliable lidar and prove that SLAM works with diff_drive
finish tuning navigation params
create a more deatiled robot model and urdf (perhaps usinf xacro) in a CAD or other modeling softawre (blender?)
build a sinple system that can detect when the battery is at low levels and indicate to the user in some way (a beeping noise, a topic, a light, turning off the motors, etc)
We hope that this is a substantial base with a clear direction to move forward with, once the time is right. When resuming work, please go to the hardware_interface
branch of rover_4_core
, which is the latest branch.