Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions cleanup_srdf_complete.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
#!/bin/bash
# Script complet pour nettoyer et corriger le fichier SRDF

echo "🧹 Nettoyage complet du fichier SRDF..."

WORKSPACE_PATH="$HOME/Robot5A-Simulation"
SRDF_FILE=$(find $WORKSPACE_PATH -name "armr5.srdf" -type f | head -1)

if [ -z "$SRDF_FILE" ]; then
echo "❌ Fichier SRDF (armr5.srdf) non trouvé!"
exit 1
fi

echo "📁 Fichier SRDF trouvé : $SRDF_FILE"

# Sauvegarde
BACKUP_FILE="${SRDF_FILE}.backup_complete_$(date +%Y%m%d_%H%M%S)"
cp "$SRDF_FILE" "$BACKUP_FILE"
echo "💾 Sauvegarde créée : $BACKUP_FILE"

# Compter les problèmes avant nettoyage
ARUCO_BEFORE=$(grep -c "aruco_plane" "$SRDF_FILE" 2>/dev/null || echo "0")
echo "📊 Lignes aruco_plane avant nettoyage : $ARUCO_BEFORE"

# ÉTAPE 1: Supprimer toutes les références aux aruco_plane
echo "🗑️ Suppression de toutes les références aruco_plane..."
sed -i '/aruco_plane/d' "$SRDF_FILE"

# ÉTAPE 2: Ajouter les règles manquantes pour toutes les caméras
echo "📷 Ajout des règles de collision pour toutes les caméras..."

# Créer un fichier temporaire avec les nouvelles règles
TEMP_FILE=$(mktemp)

# Copier tout sauf la balise de fermeture </robot>
sed '$d' "$SRDF_FILE" > "$TEMP_FILE"

# Ajouter les nouvelles règles pour les caméras manquantes
cat >> "$TEMP_FILE" << 'EOF'

<!-- RÈGLES DE COLLISION CAMÉRAS 3-7 - AJOUTÉES AUTOMATIQUEMENT -->

<!-- Camera 3 collisions -->
<disable_collisions link1="camera_link3" link2="base_link" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_link1" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_link2" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_link3" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_link4" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_link5" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_GripperLeft_Link1" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_GripperLeft_Link2" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_GripperLeft_Link3" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_GripperRight_Link1" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_GripperRight_Link2" reason="Camera"/>
<disable_collisions link1="camera_link3" link2="R5A_GripperRight_Link3" reason="Camera"/>

<!-- Camera 4 collisions -->
<disable_collisions link1="camera_link4" link2="base_link" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_link1" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_link2" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_link3" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_link4" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_link5" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_GripperLeft_Link1" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_GripperLeft_Link2" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_GripperLeft_Link3" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_GripperRight_Link1" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_GripperRight_Link2" reason="Camera"/>
<disable_collisions link1="camera_link4" link2="R5A_GripperRight_Link3" reason="Camera"/>

<!-- Camera 5 collisions (PROBLÉMATIQUE) -->
<disable_collisions link1="camera_link5" link2="base_link" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_link1" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_link2" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_link3" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_link4" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_link5" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_GripperLeft_Link1" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_GripperLeft_Link2" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_GripperLeft_Link3" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_GripperRight_Link1" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_GripperRight_Link2" reason="Camera"/>
<disable_collisions link1="camera_link5" link2="R5A_GripperRight_Link3" reason="Camera"/>

<!-- Camera 6 collisions -->
<disable_collisions link1="camera_link6" link2="base_link" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_link1" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_link2" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_link3" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_link4" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_link5" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_GripperLeft_Link1" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_GripperLeft_Link2" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_GripperLeft_Link3" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_GripperRight_Link1" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_GripperRight_Link2" reason="Camera"/>
<disable_collisions link1="camera_link6" link2="R5A_GripperRight_Link3" reason="Camera"/>

<!-- Camera 7 collisions -->
<disable_collisions link1="camera_link7" link2="base_link" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_link1" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_link2" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_link3" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_link4" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_link5" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_GripperLeft_Link1" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_GripperLeft_Link2" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_GripperLeft_Link3" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_GripperRight_Link1" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_GripperRight_Link2" reason="Camera"/>
<disable_collisions link1="camera_link7" link2="R5A_GripperRight_Link3" reason="Camera"/>

</robot>
EOF

# Remplacer le fichier original
mv "$TEMP_FILE" "$SRDF_FILE"

# Vérifications finales
ARUCO_AFTER=$(grep -c "aruco_plane" "$SRDF_FILE" 2>/dev/null || echo "0")
CAMERAS_TOTAL=$(grep -c "camera_link" "$SRDF_FILE")

echo ""
echo "✅ Nettoyage terminé !"
echo "📊 Références aruco_plane supprimées : $ARUCO_BEFORE"
echo "📊 Références aruco_plane restantes : $ARUCO_AFTER"
echo "📷 Total lignes caméras : $CAMERAS_TOTAL"
echo ""
echo "🔧 Maintenant recompilez :"
echo " cd $WORKSPACE_PATH"
echo " colcon build --packages-select robot_moveit_config"
echo " source install/setup.bash"
echo " ros2 launch robot_control visual_sim.launch.py"
4 changes: 1 addition & 3 deletions src/robot_control/launch/moveit_control.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ def generate_launch_description():
# MoveIt configuration using MoveItConfigsBuilder
moveit_config = (
MoveItConfigsBuilder("robot_moveit_config", package_name="robot_moveit_config")
.robot_description(
file_path=xacro_file, mappings={"use_sim_time": "true"}
)
.robot_description(file_path=xacro_file, mappings={"use_sim_time": "true"})
.robot_description_semantic("config/armr5.srdf")
.robot_description_kinematics("config/kinematics.yaml")
.joint_limits("config/joint_limits.yaml")
Expand Down
4 changes: 1 addition & 3 deletions src/robot_control/launch/moveit_control2.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,7 @@ def generate_launch_description():
# MoveIt configuration using MoveItConfigsBuilder
moveit_config = (
MoveItConfigsBuilder("robot_moveit_config", package_name="robot_moveit_config")
.robot_description(
file_path=xacro_file, mappings={"use_sim_time": "true"}
)
.robot_description(file_path=xacro_file, mappings={"use_sim_time": "true"})
.robot_description_semantic("config/armr5.srdf")
.robot_description_kinematics("config/kinematics.yaml")
.joint_limits("config/joint_limits.yaml")
Expand Down
4 changes: 1 addition & 3 deletions src/robot_control/launch/moveit_control_gui.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ def generate_launch_description():
# MoveIt configuration using MoveItConfigsBuilder
moveit_config = (
MoveItConfigsBuilder("robot_moveit_config", package_name="robot_moveit_config")
.robot_description(
file_path=xacro_file, mappings={"use_sim_time": "true"}
)
.robot_description(file_path=xacro_file, mappings={"use_sim_time": "true"})
.robot_description_semantic("config/armr5.srdf")
.robot_description_kinematics("config/kinematics.yaml")
.joint_limits("config/joint_limits.yaml")
Expand Down
30 changes: 17 additions & 13 deletions src/robot_control/launch/visual_sim.launch.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,14 @@
)
from launch.event_handlers import OnProcessExit, OnProcessStart
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.conditions import IfCondition, UnlessCondition # Added for conditional execution
from launch.substitutions import LaunchConfiguration, PythonExpression # Added for launch configurations and expressions
from launch.conditions import (
IfCondition,
UnlessCondition,
) # Added for conditional execution
from launch.substitutions import (
LaunchConfiguration,
PythonExpression,
) # Added for launch configurations and expressions
from launch_ros.actions import Node, SetParameter
import xacro
from moveit_configs_utils import MoveItConfigsBuilder
Expand All @@ -40,13 +46,11 @@ def generate_launch_description():

# Declare the 'num_cameras' launch argument
num_cameras_arg = DeclareLaunchArgument(
'num_cameras',
default_value='1',
description='Number of cameras (1 or 2)'
"num_cameras", default_value="1", description="Number of cameras (1 or 2)"
)

# Launch configuration to access 'num_cameras' argument
num_cameras = LaunchConfiguration('num_cameras')
num_cameras = LaunchConfiguration("num_cameras")

# Package Directories
pkg_name = "robot_description" # Name of the robot description package
Expand Down Expand Up @@ -187,7 +191,7 @@ def generate_launch_description():
parameters=[
{"use_sim_time": True},
],
condition=UnlessCondition(PythonExpression(['"', num_cameras, '" == "2"']))
condition=UnlessCondition(PythonExpression(['"', num_cameras, '" == "2"'])),
)

# Aruco Detector Double Node
Expand All @@ -198,7 +202,7 @@ def generate_launch_description():
parameters=[
{"use_sim_time": True},
],
condition=IfCondition(PythonExpression(['"', num_cameras, '" == "2"']))
condition=IfCondition(PythonExpression(['"', num_cameras, '" == "2"'])),
)

# Launch Visual Joint State Publisher Node
Expand All @@ -214,10 +218,10 @@ def generate_launch_description():
[
num_cameras_arg, # Added the launch argument
Node(
package='joint_state_publisher',
executable='joint_state_publisher',
output='screen',
parameters=[{'use_sim_time': True}]
package="joint_state_publisher",
executable="joint_state_publisher",
output="screen",
parameters=[{"use_sim_time": True}],
),
SetParameter(name="use_sim_time", value=True), # Enable simulation time
RegisterEventHandler(
Expand All @@ -237,7 +241,7 @@ def generate_launch_description():
target_action=load_arm_controller,
on_exit=[
load_gripper_controller,
move_group_node
move_group_node,
], # Load gripper controller before move group
)
),
Expand Down
8 changes: 7 additions & 1 deletion src/robot_description/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,11 @@ install(
${CMAKE_CURRENT_SOURCE_DIR}/urdf/r5a_v_ros.urdf.xacro
DESTINATION share/${PROJECT_NAME}/urdf
)
# Installer les matériaux
install(DIRECTORY media/materials/
DESTINATION share/${PROJECT_NAME}/materials/)

ament_package()
install(DIRECTORY worlds/
DESTINATION share/${PROJECT_NAME}/worlds/)

ament_package()
Loading
Loading