https://github.com/labsir-un/hexapod_unal
Desarrollos robot hexapodo
https://github.com/labsir-un/hexapod_unal
hexapod-robot proyect ros2
Last synced: 22 days ago
JSON representation
Desarrollos robot hexapodo
- Host: GitHub
- URL: https://github.com/labsir-un/hexapod_unal
- Owner: labsir-un
- Created: 2025-03-04T13:56:08.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-05T01:08:06.000Z (12 months ago)
- Last Synced: 2025-06-05T04:58:13.675Z (12 months ago)
- Topics: hexapod-robot, proyect, ros2
- Language: Python
- Homepage:
- Size: 34.6 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Hexapod ROS 2
## Authors
* **Andres Camilo Torres Cajamarca** – *Mechatronics Engineering Student*
* **Felipe Chaves Delgadillo** – *Mechatronics Engineering Student*
## Tutors
* **Ph.D. Eng. Pedro Fabián Cárdenas Herrera**
* **Ph.D. Eng. Ricardo Emiro Ramírez Heredia**
## Description
A set of ROS 2 Humble packages designed to control an 18-degree-of-freedom (DOF) hexapod robot, including inverse kinematics, transformation, and motor control nodes.
## User Manual
### Connection with Robot
You can use either the Raspberry Pi connected to the robot or a laptop.
#### Using Laptop
To use these packages, install the following prerequisites:
* [Ubuntu 22.04](https://releases.ubuntu.com/jammy/)
* [ROS 2 Humble](https://docs.ros.org/en/humble/index.html)
* [DynamixelSDK](https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_sdk/download/)
Then, run the following commands in an Ubuntu terminal:
```bash
git clone https://github.com/antorresca/Hexapod
cd Hexapod
colcon build
source install/setup.bash
```
Once completed, proceed to the Launching ROS 2 Nodes section to run the system.
#### Using Raspberry Pi and SSH
If using the Raspberry Pi via SSH, first ensure that you are connected to the 'LabFabEx' Wi-Fi network. If you do not have the password, please contact the laboratory manager.
Then, in a Windows CMD or a Unix terminal, connect to the Raspberry Pi using the following credentials:
*User: Hexapodo*
*Password: ***ask to team*** *
Run the following command:
```bash
ssh hexapodo@hexapodo
```
Once logged in, proceed to the steps in the ***Launching ROS 2 Nodes*** section.
### Launching ROS 2 Nodes
The following ROS 2 nodes must be launched in this order, using a new terminal (or tmux pane) for each one:
* *gui_node*
* *cinematica_node*
* *transformation_node*
* *dynamixel_node*
```bash
# In separate terminals (or tmux panes), run in this order:
ros2 run gui_node gui_client
ros2 run transformation_node transformation_node
ros2 run cinematica_node cinematica_node
ros2 run dynamixel_node dynamixel_node
```
Notes:
* Ensure that all nodes are properly built and available in your workspace.
* The gui_node will remain in a loop until transformation_node is launched, and transformation_node will stay in a loop until cinematica_node is launched.
* If the U2D2 is not connected, dynamixel_node will not work and will attempt to reconnect every 10 seconds.
* Always check the logger for information about the status and functionality of the nodes.
In *gui_node*, when you type **'1'**, the program will start, and the trajectory will be calculated in *cinematica_node*.
Then, *transformation_node* will retrieve the first array of positions and attempt to send it to *dynamixel_node* via an action.
Once *dynamixel_node* reaches all the positions, *transformation_node* will retrieve the next position, repeating the process until the user stops it.
## More information
### Understanding ROS2 nodes, topics, services and actions
This project consists of five nodes: three general nodes, one for simulation, and one for hardware. Communication between nodes is handled through topics, services, and actions, as shown below.

### Video
https://github.com/user-attachments/assets/eb56e972-26f8-436f-b74e-e61149061cad
#### Avance
https://github.com/user-attachments/assets/610ccf62-d634-4932-befa-e8fde37b9160
#### Giros
https://github.com/user-attachments/assets/363c9b54-b7d7-47bb-8460-3d7c6445cb0d
https://github.com/user-attachments/assets/74d0b48a-5a30-4c76-9d68-66923a830aa5
#### Reversa
https://github.com/user-attachments/assets/5f408fc8-d56d-40ce-a2b4-17a4077839e3
#### Simulación
https://github.com/user-attachments/assets/7af156b1-5c92-4b90-be09-eba2ca43c969