/3WD_OMNI_ROBOT

ROS based Mobile Robot with 3 omni wheel

Primary LanguageC++

3WD_OMNI_ROBOT

In this project I made SLAM with 3WD Onidirectional Robot. The mobile robot chasis consists of 3 omni wheels spaced at 120 degrees apart. It is designed for indoor mapping by keeping maneuverability in the first place. You can find the chasis in this link: https://www.nexusrobot.com/product/3wd-48mm-omni-wheel-robot-platform-chassiswith-encoderblack-15001b.html

For mapping, Hector SLAM and GMapping methods have been tried and compared. Another unique aspect of the work is that it can be controlled via the WEB interface that I designed.

For seeing and controlling manually on gazebo with teleop_twist_keyboard you can launch gazebo.launch

roslaunch diff gazebo.launch

This is differential drive for controlling with teleop_twist_keyboard. I made omnidirectional drive in arduino code for controlling the real robot. You can check the 1.ino code in arduino folder. Screenshot from 2022-07-12 21-08-39

for seeing in RVIZ:

roslaunch diff rviz.launch

Screenshot from 2022-07-12 21-13-45

ROBOT KINEMATICS

kinematiik_analiz-Page-1 drawio

0 0 1

SLAM (simultaneous localization and mapping)

The robot needs to map of its enviroment to determine the position and to know their own location to map the enviroment.

GMAPPING

For Gmapping, you only launch this gmapping.launch file and use the teleop_twist for kontrolling and mapping.

roslaunch diff gmapping.launch

https://www.youtube.com/watch?v=kkTh4ROfFig&t=1s

HECTOR

For hector SLAM:

roslaunch diff gazebo.launch
 roslaunch hector_slam_launch tutorial.launch 
rosrun teleop_twist_keyboard teleop_twist_keyboard

https://www.youtube.com/watch?v=_wcQZBHmdKQ&t=4s

  • Here is the real robot

0

When we control the real robot first we need to activate RPLidar.

ls -l /dev |grep ttyUSB
sudo chmod 666 /dev/ttyUSB0
roslaunch rplidar_ros view_rplidar.launch
  • Then we start rosserial
rosrun rosserial_arduino serial_node.py /dev/ttyUSB1

After starting the comminication between ros and arduino. You can launch the hector slam node and start to mapping.