jerinpeter / 4wdNavbot

A 4WD ROS Robot which is capable of mapping and Navigation
42 stars 8 forks source link

A 4WD ROS Robot with autonomous navigation capability

The Robot Harware Setup 🔧

pic1 pic2
pic3 pic4
pic5 pic6

Installation 💻

cd ~/catkin_ws/src

git clone https://github.com/jerinpeter/4wdNavbot.git

cd ..

catkin_make

rosdep install --from-paths src --ignore-src -r -y

If catkin_make shows error, install the missing dependenices using the rosdep command.

3D modelling and Simulation

The Robot was modelled in Fusion360 and converted to URDF using fusion2urdf. Gazebo Pluggins for differential drive,Odometry and LaserScan were added to the urdf and tested in a custom made simulation environment/world in Gazebo.

Demo video 👇

GAZEBO SIMULATION

Simulation Setup

Mapping

Open a new terminal window and split it accordingly if using terminator,run the following commands

roslaunch navbot_description gazebo.launch

roslaunch gmapping mapping.launch

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

rviz

rosrun map_server map_saver -f newmap

The map is already saved in /navbot_description/maps directory if using the preset map.

Navigation

roslaunch navbot_description gazebo.launch

roslaunch navbot_navigation move_base.launch

rviz

Working in brief

Note: BOM and references are attached towards the end.

Motortests

ROS Setup for Mapping and Navigation

The YdLidar package is responsible for publishing the LaserScan as /scan data along with Tf (base_link -> laser)

Tf Tree

Real Robot Setup

roscore

rosrun rosserial_python serial_node.py /dev/ttyACM0

roslaunch ydlidar_ros yd_lidar.launch

roslaunch differential_drive tf_controller.launch

roslaunch navbot_navigation move_base.launch

rviz

Components Used

Component Image
Nvidia Jetson Nano drawing
YD-Lidar X4 drawing
Arduino Mega drawing
RMCS 2303 Motor Drivers drawing
100 RPM High Precision Encoder Motors drawing
10,000Mah, 2C Li-Ion Battery drawing
DC-DC Step Down Converter drawing
125mm AGV Wheels drawing

Further Work

References

RMCS 2303 Motor Driver Manual

RMCS 2303 Arduino Library

Motor Specifications

ROS Navigation Tuning Guide

Map Float Arduino Library

Project Photos and Videos

UPDATE 12-11-2021

Support for Odom from T265 + TF correction

To install the same use

sudo apt-get install ros-noetic-teb-local-planner

Added support for Xbox 360 Kinect for 3D vision -> RTAB mapping, Point Cloud Generation

Kinect Drivers + ROS Package installation

roslaunch freenect_launch freenect.launch depth_registration:=true

FINAL WORKING VIDEO [Outdoor Navigation + 3D Point Cloud Generation] 👇

Final Video

Contributions

Contributions are most welcome ;-)