🤖 ev3_mqtt_ros

Python
ROS
MQTT
LEGO EV3
License

🚀 Learn, build, and control!
This project is designed for students, researchers, and robotics enthusiasts who want to explore mobile robot teleoperation using real hardware and industry-standard tools. By combining ROS, MQTT, and LEGO EV3, it offers a practical way to understand robotics concepts, sensor integration, and simulation—all in one package.


📚 About the Project

Hi, my name is Juan Sebastián Daleman. I am a graduate student at Universidad Nacional de Colombia, based in Bogotá D.C., Colombia.
This project was developed as part of the Fundamentals of Mobile Robotics postgraduate course, within the Labsir research group. It is an open-source initiative aimed at exploring mobile robotics using professional tools such as ROS to control and process various sensors, while also simulating robot behavior in a virtual environment.


✨ Features

  • 💻 Cross-platform compatibility: Works on Linux (native), Windows via WSL, or Raspberry Pi.
  • 📡 Sensor integration: Supports the LEGO EV3 gyro sensor, with potential for ultrasonic, color, and touch sensors.
  • 🎮 Custom teleoperation interface: Control the robot using a keyboard, joystick, or GUI via rqt plugin.
  • 🔗 MQTT broker flexibility: Compatible with HiveMQ, Mosquitto, or local MQTT brokers.
  • 🖥 Simulation and visualization: Full support for RViz and Gazebo with 3D robot models.
  • QoS and latency optimization: Adjustable MQTT Quality of Service and network tuning for low-latency control.
  • 🛠 Extensibility: Modular ROS node structure to easily add new sensors, actuators, or behaviors.
  • 🎓 Educational focus: Designed for learning ROS, MQTT, and robotics in academic or hobbyist contexts.
  • 📊 Logging and monitoring: Record and review robot data using rosbag or MQTT logs.
  • 🌐 Remote deployment: Send and run code on the EV3 over SSH without a physical connection.

📬 Contact

If you would like to contact me, please email juan@sebastiandaleman.com.
For comments or questions, feel free to create an issue in the repository.