<s>[INST] I'm trying to set up a development environment to make a super cool robot friend. I'm currently struggling with how to get data to transfer back and forth between the robot and my computer.

For my robot, I have an ESP32 microcontroller which is connected to various sensors and actuators. Here is the list of the components I'm using:

* ESP32 microcontroller
* Inertial Measurement Unit (IMU)
* Infrared sensors
* Ultrasonic sensors
* Servos
* Motor driver
* Power supply

I've got the hardware side of things pretty well set up, but the communication between my computer and the robot is what I'm struggling with.

I'd like to have two-way communication between the ESP32 and computer. I need to be able to send commands to the robot (e.g. "move forward 5 units", "rotate left", etc.) and receive sensor data from the robot (e.g. IMU data, sensor readings, etc.).

Here's what I've learned so far:

* The ESP32 has built-in support for Wi-Fi and Bluetooth Low Energy (BLE)
* Wi-Fi is too power-hungry for my robot, so I'm leaning towards using BLE as my communication protocol
* I'll need some software libraries and tools to establish the connection and handle data transfer

Can you guide me through the process of getting set up with BLE on the ESP32 microcontroller and establishing a two-way communication channel between the robot and my computer?[/INST]