The robot knowing where it is in it’s map of the environment
|Difficult to understand how to sort a TF tree and value is usually unstable; need to manually combine odometry sources||Optimized SLAM parameters, extra code for optimization, related values are published for reading, and TF data is organized|
|Environment Model Mapping|
As the robot moves, it will create a 2D and/or 3D scale model of the environment which can be saved and loaded for future use.
|Find the appropriate SLAM software, install, and configure over 50 parameters across various environments.||Pre-configured for optimal map creation and localization|
Move to preset waypoints, either once or continuously
|Exists only in unmaintained open source repos that have some configuration errors||Can stop and start any number of waypoints|
Click on a place in an app to move a robot there
|This exists in RViz, but all related information needs to be properly connected, and feedback doesn’t exist without configuring ROS actions.||The robot can navigate by clicking a location in the scale model, and the app will give feedback as to the current progress. The goal can also be canceled.|
Command the robot to move a certain distance or rotate a specific angle.
||Control the specific distance and angle the robot should move.|
A person can move the robot forwards or backwards and rotate left or right.
|rqt plugin needs configuration
||Integrated into app
Two robots can send data to each other
SLAM optimizes the robot’s localization value but is only useful if the incoming odometry is accurate, usually through combining sources.
|Has packages to combine odometry sources, but usually involves complex math and many hours of trial and error||We combine odometry values from various sensors, such as stereo cameras, Lidars, wheel encoders, and IMUs.|
Information about the robot’s memory, disk, speed, WiFi connection, and sensors are updated to monitor unhealthy signs.
||Created specifically for robotics in a simple app|
Figuring out the set of waypoints needed between the robot’s position and its final goal.
|Most use only move_base, but it isn’t optimized for robust navigation and is missing many important features, like backing up||Our app uses both move_base and extra algorithms to find the optimal path in the map.|
In addition to cancelling a goal on the app, if the WiFi connection is poor or lost, the robot stops moving.
|Can configure an rqt button for manual stopping
||In addition to manual stopping, the robot automatically stops moving when it notices a poor Wi-Fi signal|
Notifications for important issues
|Some important error messages, but many trivial messages included||In addition to normal ROS logs, get additional Voidmotion warnings and errors, created to be comprehensive and simple, with filtering for different logging levels.|
A global parameter file makes it easy to update common configuration, such as hardware pins, motor speeds, and navigation optimization.
|Manually add hundreds of parameters
||Parameters are all pre-configured and organized|