EduQ (Educational Quadruped): Facilitates the understanding of theoretical concepts through hands-on practice
EduQ is a quadruped robot designed to promote STEAM education and, through practice, facilitate the learning of theoretical concepts studied in the early stages of engineering programs. This repository includes all the necessary files to build and simulate the robot using ROS2 Humble and Isaac Sim.
Before starting, make sure the following is installed:
- ROS 2 Humble: Installation Instructions.
- Nvidia Isaac Sim: Download and Installation.
commands
dependencies
Open a terminal and run the following commands:
git clone https://github.com/RAMEL-ESPOL/EduQ.git
cd EduQ/robot_ws/
source /opt/ros/humble/setup.bash
colcon buildThis clones the repository, sets up the ROS 2 environment, and compiles the packages. Once completed, you can close the terminal.
-
Launch Isaac Sim from Nvidia Omniverse.
-
In the Isaac Sim App Selector window, make the following configurations:
- In ROS Bridge Extension, select
omni.isaac.ros2_bridge. - In Use Internal ROS2 Libraries, select
humble. - Click the START button.
- In ROS Bridge Extension, select
-
In the main Isaac Sim window:
- Click the File tab and select Open.
- Navigate to the
argos2.usdfile in theEduQ/robot_ws/USDdirectory and open it. - Click the Play button to start the simulation.
Open a new terminal and run the following commands:
cd EduQ/robot_ws/
source install/setup.bash
ros2 launch package_control robot_control.launch.pyThis will load the robot controller and it will be ready to use. You can now use a PlayStation controller to control the robot during the simulation.
To run the simulation in Gazebo, open a new terminal and run the following commands:
cd EduQ/robot_ws/
source install/setup.bash
ros2 launch package_description gazebo.launch.pyThis will open Gazebo with the robot model and controller loaded and ready to use. You can now use a PlayStation controller to control the robot during the simulation.
-
Open a new terminal and execute the following commands:
cd EduQ/robot_ws/ source install/setup.bash ros2 launch package_description rviz.launch.py
-
In Rviz, set the fixed frame:
- Select
base_link.
- Select
-
Add the robot model visualization:
- Click the Add button.
- In the Rviz2 pop-up window, click on By display type.
- Select RobotModel and click the OK button.
-
Set the robot description topic:
- In the RobotModel section, select the topic
/robot_descriptionin Description Topic.
- In the RobotModel section, select the topic
To understand how to use the PS4 controller to control the Argos quadruped, it is essential to know both the robot's coordinate system and the function assigned to each button on the controller, which are presented below.
The robot has three operating modes: stand, crawl, and trot.
In this mode, the robot keeps all its legs in contact with the ground at all times. Meanwhile, it changes its orientation by varying the roll, pitch, and yaw angles. Press the X button to select stand mode. By moving the sticks, you can perform the following actions.
| Joystick/Button | Direction | Action |
|---|---|---|
| Left stick | Up | Linear movement +Z |
| Down | Linear movement -Z | |
| Right | Rotation -X | |
| Left | Rotation +X | |
| Right stick | Up | Rotation +Y |
| Down | Rotation -Y | |
| Right | Rotation -Z | |
| Left | Rotation +Z |
In this mode, the robot moves one leg at a time, which allows it to move forward, backward, and rotate around its own axis. Press the triangle button to select crawl mode. By moving the sticks, you can perform the following actions.
| Joystick/Button | Direction | Action |
|---|---|---|
| Left stick | Up | N/A |
| Down | N/A | |
| Left | Rotation +Z | |
| Right | Rotation -Z | |
| Right stick | Up | Linear movement +X |
| Down | Linear movement -X | |
| Left | N/A | |
| Right | N/A |
In this mode, the robot moves two diagonal legs simultaneously. Although this gait is not completely stable, a PID controller with IMU feedback is implemented to improve balance. This mode allows the robot to move omnidirectionally. Press the Circle button to select the trot mode. By moving the stick, you can perform the following actions.
| Joystick/Button | Direction | Action |
|---|---|---|
| Left stick | Up | N/A |
| Down | N/A | |
| Left | Rotation +Z | |
| Right | Rotation -Z | |
| Right stick | Up | Linear movement +X |
| Down | Linear movement -X | |
| Left | Linear movement +Y | |
| Right | Linear movement -Y |
First terminal
docker exec -it humble /bin/bash
cd home/ubuntu/EduQ/robot_ws/
source install/setup.bash
ros2 launch package_control robot_control.launch.pySecond terminal
xhost +local:docker
docker exec -it humble /bin/bash
cd home/ubuntu/EduQ/robot_ws/
source install/setup.bash
python3 UI/controller.pyThird terminal
docker exec -it humble /bin/bash
cd home/ubuntu/EduQ/robot_ws/
source install/setup.bash
ros2 run package_sim2real node_sim2realFirst terminal
docker exec -it humble /bin/bash
cd home/ubuntu/EduQ/robot_ws/
source install/setup.bash
ros2 run package_sim2real node_imu_realSecond terminal
docker exec -it humble /bin/bash
cd home/ubuntu/EduQ/robot_ws/
source install/setup.bash
ros2 run imu_filter_madgwick imu_filter_madgwick_node --ros-args -p use_mag:=falseThird terminal
xhost +local:docker
docker exec -it humble /bin/bash
cd home/ubuntu/EduQ/robot_ws/
source install/setup.bash
rviz2- Open RViz2 and set the Fixed Frame to
"odom". - To visualize the IMU reference frame:
- Click the "Add" button.
- Select "By display type".
- Click on "imu".
- Click "OK".
- Expand the IMU menu.
- In the "Topic" option, select
"/imu/data".






