For any new open-source technology to gain momentum there needs to be many factors put into play and they should be evolved along with time. As a robot enthusiast and a hobbyist, I’ve always tried to understand any latest tech toys I can afford to play with. Even though ROS is open-source and have virtual robot simulators like Gazebo, RVIZ, etc., ROS is mostly on the software side and building an actual robot with ROS is expensive, because it needs at least a Raspberry Pi at its core.
Let me introduce to you the GuiN-E Bot, a very simple ROS robot with the aim of making it as cost-effective and basic as possible like a simple Wi-Fi controlled Robot.
As a robotics enthusiast, my basic approach to learning any new tech is through building something with it. And as a part of being a hobbyist, I always tend to go with a simpler and cost-effective hardware to learn things, which is why Arduino was a major part of my robotics journey. But ROS stepped up the game.
To make a simple robot using ROS, the minimum requirement needs a Raspberry Pi 3 and that itself costs around 3000 rupees. And almost all ROS robots uses advanced sensors like Lidar and Kinect, and they cost twice more that Raspberry Pi itself. Adding cost of Motors with encoders, the cost of a basic ROS robot goes around and above 10K. I make robots with one-third of that cost and Really wanted to Try ROS in a Physical setup. Hence the idea of GuiN-E Bot.
What is GuiN-E Bot ?
GuiN-E Bot Stands for Guidance & Navigation – Expandable Robot. GuiN-E Bot was conceptualized around the idea of learning ROS by making simple control and navigation robots like line Followers, obstacle avoiders, maze solvers, etc. which use simple sensors and control logics that are easy to understand for any beginner.
How GuiN-E Bot Works ?
The GuiN-E Bot uses NodeMCU as its core and utilizes the Rosserial library and the Package for establishing its ROS communication network. The NodeMCU is often accompanied with an Arduino UNO R3 as its peripheral controller as they have more digital i/o pins than a node MCU.
Why GuiN-E Bot ?
By using NodeMCU as its core and Arduino UNO as its peripheral along some simple sensors, the whole robot cost way less than a raspberry pi 3 itself. Thus the GuiN-E bot is the cheapest ROS based robot that exists physically.
You need a good internet connection, through a Wi-Fi router. If you are using a virtual machine, make sure to enable its network adapter to bridged, as this will assign a dedicated LAN IP for your Virtual Machine.
Open Oracle VM, Select your virtual machine, go to Settings > Network > Attached to : Bridged Adapter.
Follow the instructions given in this link to update your Debian package and then install ROS-Noetic Desktop-Full version.
Download & install Arduino IDE for Linux. Also, install the NodeMCU board and its libraries to Arduino IDE.
Next, Open Arduino IDE, go to Tools > Manage Libraries, Search for ‘GuiN-E Bot’ (library by Paul Pavish), Select the latest version and click install. If the install prompts to install additional dependency libraries, install them too.
Open a new terminal in your Linux machine (Ctrl + Alt + t) and run this command to clone the GuiN-E Bot’s Catkin Workspace:
cd ~ git clone https://github.com/paulpavish/guin_e_bot.git
After git clone is complete, navigate into the workspace directory and build the packages using ‘catkin_make’:
cd ~/guin_e_bot catkin_make
It’ll take a minute to complete building the packages in the workspace. And then the software setup is complete.
At the time/date of this video/blog release, the GuiN-E Bot workspace and its Arduino libraries contain the codes only for the first version of GuiN-E Bot. The codes for future versions of GuiN-E Bot will be updated to the same git repository and Arduino library later and will be instructed on how to update in their own dedicated videos & blogs.