What me and my teammates are building and sharing here is essentially a concrete implementation of Linorobot base - after all, standing on the shoulders of giants is the way to even greater accomplishments.
ros-omni-base is only the wheeled platform for Linorobot, which is a complete firmware-software-electronics bundle for any robot base with wheels, Linux board and Lidar or Kinect to sense the surroundings.
This project is meant to aid beginners in robotics with the following:
- Reducing the cost of entering robotics with ROS. Instead of buying Turtlebot, you can make your own.
- ros-omni-base eliminates the uncertainty still associated with building Linorobot from scratch. Linorobot software can control two- and four-wheeled platforms, including Ackermann steering and Mecanum wheels - provided it's loaded with the right firmware, but it doesn't include BOMs, drawings, assembly instructions etc. I think this decision was made intentionally to signify the fact that Linorobot is mostly mechanics-agnostic, but it usually brings more confusion for newbies. ros-omni-base is built upon a concrete set of components.
- Cheaper and more widespread Arduino Mega instead of Teensy to control motors and read encoders. The aim of this swap is to make part location process as easy on your mind and wallet as possible, without compromising performance at the same time.
- As an upshot, quickly get you up and running with robotics and ROS.
The end result you're supposed to get after following this guide is a wheeled robot base that can be connected to ROS with USB and controlled via teleoperation (standard Twist messages) using teleop_twist_keyboard package.