Skip to content

atom-robotics-lab/MR-Robot_Hardware

Repository files navigation

Contributors Forks Stargazers Issues LinkedIn


Logo

MR Robot

This is the repo for the MR-Robot: ModulaR Robot Project, Mr robot is autonomous navigation robot made by A.T.O.M Robotics capable of doing multiple day to day operations such as mapping, navigation for transportation, sanitaion etc. Various other operations can also be performed thanks to its modularity. If you’re interested in helping to improve our Project, find out how to contribute.
Demo video »

Report Bug · Request Feature

About The Project

This is the repo for the MR-Robot: ModulaR Robot Project, Mr robot is autonomous navigation robot made by A.T.O.M Robotics capable of doing multiple day to day operations such as mapping, navigation for transportation, sanitaion etc. Various other operations can also be performed thanks to its modularity. If you’re interested in helping to improve our Project, find out how to contribute.

(back to top)

Built With

  • ROS
  • OpenCV
  • Raspberry Pi
  • Espressif
  • Arduino
  • Ubuntu
  • Python

(back to top)

DFD

MR-Robot Circuit Diagram

CONNECTION BETWEEN COMPUTER AND PI

Now we have to setup a connection between the PC (Master) and the Pi(slave) for that we need to host the ip of the PC and get the Pi to connect to it. For this get inside of the bashrc of the PC using command.

gedit .bashrc

And add the following lines

export ROS_MASTER_URI=http://localhost:11311/
export ROS_HOSTNAME=IP Address of PC
export ROS_IP= IP Address of PC

Now navigate into the pi and use the command

export ROS_MASTER_URI=http://IP Address of PC:11311/
export ROS_HOSTNAME=IP Address of PI
export ROS_IP=IP Address of PI

ASSIGNING PORT FOR LIDAR AND ESP

It is crucial to assign ports for LIDAR and ESP because both of them receive random ports in ttyUSB format.

Use This command to identify port and characters after "usb"

dmesg | grep ttyUSB

For creating the link from USB ports to the devices:-

sudo nano /etc/udev/rules.d/10-usb-serial.rules
SUBSYSTEM=="tty", KERNELS=="1-1.4", SYMLINK+="ttyUSB_ESP"
SUBSYSTEM=="tty", KERNELS=="1-1.1", SYMLINK+="ttyUSB_LIDAR"

For loading the new rules:-

sudo udevadm trigger

By running the next command in the Terminal, you may verify the new names you just made:-

ls -l /dev/ttyUSB*

LAUNCHING LIDAR

roslaunch ydlidar_ros X2L.launch

This command will start "/scan" topic which will provide lidar data to pi which ultimately reaches Navigation Stack.

ESP32 USAGE

ESP32 is controlling all the moter realted task in the bot it is receiving value of PWM from topic "/left_pwm" and "/right_pwm" which is then given to motor driver.

ESP32 receiving feedback data form motor's encoder by subscribing to the topic "/left_encoder" and "/right_encoder" which is then used in calculation odometry by pi.

Launching Odom Calculation Node

rosrun mr_robot_firmware diff_tf.py

This node calculates odom from left encoder data and right encoder data.

Launching Twist To PWM Node

rosrun mr_robot_firmware twist_to_pwm.py

This node converts Twist data into a signal using PWM for ESP32.

Contacts

Our Socials - Linktree - [email protected]

(back to top)

Acknowledgement

(back to top)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published