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
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.
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
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*
roslaunch ydlidar_ros X2L.launch
This command will start "/scan" topic which will provide lidar data to pi which ultimately reaches Navigation Stack.
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.
rosrun mr_robot_firmware diff_tf.py
This node calculates odom from left encoder data and right encoder data.
rosrun mr_robot_firmware twist_to_pwm.py
This node converts Twist data into a signal using PWM for ESP32.
Our Socials - Linktree - [email protected]