Download the latest version Arduino IDE from https://www.arduino.cc/en/software
Follow the following tutorial to add ESP board in your Arduino IDE - https://randomnerdtutorials.com/how-to-install-esp8266-board-arduino-ide/
Simply go to Files > Preferences and add the following line in the Additional Board Managers URLs:
https://dl.espressif.com/dl/package_esp32_index.json, http://arduino.esp8266.com/stable/package_esp8266com_index.json
After that go into Tools > Board > Boards Manager and search for "esp32" and install the ESP32 board. That's it!
sudo apt-get install ros-noetic-rosserial-arduino
sudo apt-get install ros-noetic-rosserial
Clone the TortoiseBot Mini repo into your src folder of your catkin workspace
git clone https://github.com/FocasLab/tortoisebot
Navigate to Arduino > libraries Open a terminal in the current directory
rosrun rosserial_arduino make_libraries.py .
This should build the required msgs
Open the tortoisebot_mini_ros code in Arduino IDE and change the SSID and Password of the Wi-Fi Connection.
const char* ssid = "";
const char* password = "";
Run the following command on the machine which will act as ROS Master PC (in our case the lab computer) after connecting to the lab's wifi.
hostname -I
Use the this IP address the .ino file.
IPAddress server(192,168,x,x);
Check the IP Address of your ROS Master PC using ifconfig command and put that in line number 31 of tortoisebot_mini_ros code with commas(,) instead of dot(.)
Make sure the switch on motor driver board is turned off and battery is not connected and then connect your ESP32 board to your computer using USB type B cable. Make sure the board is selected to "ESP32 Dev Module" in Arduino IDE and select the appropriate Port as well.
Upload the tortoisebot_mini_ros code on your ESP32 board.
Once code is Successfully uploaded, disconnect the USB Cable and connect the DC Jack of Battery to the Board .
DO NOT TURN ON THE ROBOT YET!
After Setting up the robot and uploading the code we will now setup the ROS on Multiple Machines. Add this lines to end of you .bashrc
file.
export ROS_IP=<IP of your machine>
export ROS_MASTER_URI=http://<IP of Master Machine>:11311
Example:-
export ROS_IP=192.168.0.203
export ROS_MASTER_URI=http://192.168.0.127:11311
Launch the tortoisebot_mini.launch file on your Master PC to start ROS Master along with ROS Serial Node.
roslaunch tortoisebot tortoisebot_mini.launch
It will prompt a INFO message saying "Waiting for socket connections on port 11411 waiting for socket connection"
Once the above INFO message is popped up, then you can turn on your Robot upon which you will see that different ROS topics start automatically.
Keep the previous terminal running add on a new terminal type the following command to start the teleoperation node.
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
Note that the minimum operational speed for the robot is :
- Linear Velocity : 0.131 m/s
- Angular Velocity : 2.175 r/s
Now you can control the robot using teleoperation commands.