Skip to main content

SO-ARM100 - Robotique éducative

Les bases d'un bras robot

https://docs.phospho.ai/learn/overview 

Simulation et pilotage du SO-ARM100 avec ROS2

Attention avant d'utiliser le robot avec ROS2, il faut avoir calibré les servomoteurs, par ex. avec le script de calibration du projet LeRobot

https://github.com/JafarAbdi/ros2_so_arm100 

Jumeau numérique

Pilotage de la simulation ou du vrai robot

https://github.com/tessel-la/robo-boy 

Adapter le tuto suivant au SO-ARM100 : https://innovation.iha.unistra.fr/books/robotique-open-source/page/programmer-un-robot-avec-moveit2-jumeau-numerique 

Contrôle des moteurs par un GUI de "jogging"

Joint Trajectory Controller

ros2 run rqt_joint_trajectory_controller rqt_joint_trajectory_controller

https://github.com/tessel-la/robo-boy 

Contrôle de l'outil sans collisions via le plugin MoveIt de RViz

Cartesian Trajectory

ros2 launch so_arm100_moveit_config moveit_rviz.launch.py

Réalisation d'un programme en Python

https://moveit.picknik.ai/main/doc/examples/motion_planning_python_api/motion_planning_python_api_tutorial.html#single-pipeline-planning-pose-goal 

# set plan start state to current state
panda_arm.set_start_state_to_current_state()

# set pose goal with PoseStamped message
pose_goal = PoseStamped()
pose_goal.header.frame_id = "panda_link0"
pose_goal.pose.orientation.w = 1.0
pose_goal.pose.position.x = 0.28
pose_goal.pose.position.y = -0.2
pose_goal.pose.position.z = 0.5
panda_arm.set_goal_state(pose_stamped_msg=pose_goal, pose_link="panda_link8")

# plan to goal
plan_and_execute(panda, panda_arm, logger)

En utilisant l'environnement de développement Jupyter Notebook https://moveit.picknik.ai/main/doc/examples/jupyter_notebook_prototyping/jupyter_notebook_prototyping_tutorial.html 

Pilotage du bras robot par LeRobot (IA, VR, etc.)

Environnement Python sous Windows ou Linux

Contrôle du bras par clavier ou manette

Avec LeRobot+Phospho https://docs.phospho.ai/basic-usage/teleop 

ou avec ROS2+MoveIt2 https://moveit.picknik.ai/main/doc/examples/jupyter_notebook_prototyping/jupyter_notebook_prototyping_tutorial.html 

Contrôle du bras par Oculus Quest

Depuis Windows :

Depuis Ubuntu avec ROS2 et moveit_servo :

Autre : https://github.com/lts0429/teleoperation 

Contrôle du bras via un modèle d'IA

https://docs.phospho.ai/basic-usage/inference 

Pilotage ST3215 depuis un ESP32 (embarqué, micro-ROS)

Sans utiliser la carte de contrôle Feetech/Waveshare

(5€) : https://github.com/sepastian/ESP32_ST3215 

Pilotage bluetooth depuis un smartphone

Utiliser l'ESP32 pour faire l'interface bluetooth vers une télécommande smartphone ? Avec ou sans carte de contrôle officielle (cf. ci-dessus) ?

Micro-ROS avec bras robot

  • approche pour grasping référencée capteur via un TOF-sensor

https://micro.ros.org/docs/tutorials/demos/openmanipulator_demo/ 

6-DoF Inertial Measurement Unit (LSM6DSL), composed of an accelerometer and a gyroscope, and a 3-DoF magnetometer (LIS3MDL). The fusion of the measurements fetched by these sensors outputs the pose, or relative orientation of the board with respect to a fixed reference frame.