Bras Robot Arduino ROS2

Bras robot low-cost

Modèles commerciaux fermés

Niryo Ned 2

https://niryo.com/fr/produit/bras-robotise-6-axes/ 

https://github.com/NiryoRobotics 

DAGU Six-servo Robot Arm

image.png

https://seafile.unistra.fr/d/693101e6046d4819a3af/ 

https://arexx.com/product/robot-arm/ 

www.arexx.com.cn 

Modèles Open Source

https://github.com/AntoBrandi/Robotics-and-ROS-2-Learn-by-Doing-Manipulators 

Open Manipulator-X

https://emanual.robotis.com/docs/en/platform/openmanipulator_x/specification/#specification 

SO-ARM100

https://github.com/TheRobotStudio/SO-ARM100 

https://github.com/huggingface/lerobot/blob/main/examples/10_use_so100.md 

https://medium.com/@sarohapranav/my-experiences-and-tips-for-creating-a-robotic-so100-arm-3df779a4aae7 

https://github.com/JafarAbdi/ros2_so_arm100 

Cartes de contrôle

OpenCR1.0

https://emanual.robotis.com/docs/en/parts/controller/opencr10/ 

Waveshare Serial Bus Servo Driver Board

 https://www.waveshare.com/wiki/Bus_Servo_Adapter_(A) 

Feetech FE-URT-1 

https://www.feetechrc.com/FE-URT1-C001.html 

AREXX Intelligence Centre

https://seafile.unistra.fr/d/693101e6046d4819a3af/ 

image.png

image.png

Servomoteurs

Dynamixel XM430-W350

https://emanual.robotis.com/docs/en/dxl/x/xm430-w350/ 

Feetech STS3215

https://www.feetechrc.com/en/2020-05-13_56655.html 


Pilotage des servomoteurs : TTL, RS232, RS485

Modes de contrôle des servomoteurs

Regarder la classification des constructeurs permet de se rendre compte des différentes manières de piloter un servomoteur :

Cela va donc du contrôle PWM jusqu'aux bus et protocoles industriels :

Introduction au contrôle PLC

https://celka.fr/ocw/plc-control/modbus/intro-modbus/intro/ 

Protocoles de communication

Dynamixel :

Feetech :

https://esp32io.com/tutorials/esp32-rs485 

SO-ARM100

LeRobot sur Ubuntu

Installation

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# Vérifier que la clé SHA256 de Miniconda3-latest-Linux-x86_64.sh ici : https://repo.anaconda.com/miniconda/ correspond à :
sha256sum ~/Miniconda3-latest-Linux-x86_64.sh
bash ~/Miniconda3-latest-Linux-x86_64.sh
source ~/.bashrc
conda create -y -n lerobot python=3.10
conda activate lerobot
git clone https://github.com/huggingface/lerobot.git ~/lerobot
conda install ffmpeg -c conda-forge
cd ~/lerobot && pip install -e ".[feetech]"

Ne pas activer conda au démarrage : conda config --set auto_activate_base false

Ne pas configurer le shell pour initialiser conda au démarrage : conda init --reverse $SHELL

Configurer les servomoteurs

La carte FE-URT-1 fournie par Feetech n'est pas détectée à cause d'un conflit avec un paquet de brail. On le désinstalle : 

sudo apt-get autoremove brltty

https://askubuntu.com/questions/1321442/how-to-look-for-ch340-usb-drivers/1472246#1472246 

https://github.com/huggingface/lerobot/blob/main/examples/10_use_so100.md#c-configure-the-motors 

python lerobot/scripts/find_motors_bus_port.py
sudo chmod 666 /dev/ttyACM0
sudo chmod 666 /dev/ttyACM1

gedit ~/lerobot/lerobot/common/robot_devices/robots/configs.py

python lerobot/scripts/configure_motor.py \
  --port /dev/tty.usbmodem58760432961 \
  --brand feetech \
  --model sts3215 \
  --baudrate 1000000 \
  --ID 1

Construction et assemblage mécanique

ROS2 et MoveIt2

Installer les paquets ROS2 du SO-ARM100 :

mkdir -p ~/ws_so_arm100/src
cd ~/ws_so_arm100/src
git clone --recurse-submodules https://github.com/JafarAbdi/ros2_so_arm100
cd ~/ws_so_arm100
sudo rosdep init
rosdep update && rosdep install --ignore-src --from-paths src -y
colcon build --symlink-install # dans une VM ajouter --parallel-workers 1
source install/setup.bash
ros2 launch so_arm100_moveit_config demo.launch.py hardware_type:=mock_components # hardware_type:=real for running with hardware

Tester la démo en simulation :

Pilotage ST3215 depuis un ESP32

https://github.com/sepastian/ESP32_ST3215