Skip to content

solonso/agilex_scout_xarm

Repository files navigation

AgileX Scout + xArm Gazebo Environment

Complete ROS Melodic environment for AgileX Scout mobile robot with xArm6 manipulator running in Gazebo simulation.

Structure

~/docker/agilex_scout_xarm/
├── docker/
│   ├── compose.yaml           # Docker Compose configuration
│   └── melodic.Dockerfile     # ROS Melodic desktop-full image
├── scripts/
│   ├── run_melodic.sh         # Quick start: launch container and shell in
│   ├── build_melodic.sh       # Build Docker image
│   ├── rebuild_with_robot_packages.sh  # Full rebuild including robot packages
│   └── quick_restore_python38.sh       # Restore Python 3.8 environment
├── catkin_ws/                 # Catkin workspace (bind-mounted)
│   ├── src/
│   │   ├── integration/       # Custom integration packages
│   │   ├── scout_*/          # Scout robot packages (symlinks)
│   │   └── sensors/          # Sensor packages
│   └── build/                # Build artifacts (ignored by git)
├── repos/                     # Robot repositories (bind-mounted)
│   ├── agx_xarm_bringup/     # Minimal bringup launch files
│   ├── scout_xarm_base/      # Scout robot base
│   ├── scout_xarm_description/  # URDF descriptions
│   ├── ugv_gazebo_sim/       # Gazebo simulation environments
│   ├── moveit_config/        # MoveIt configuration
│   └── silvanus/             # Additional robot packages
├── home/                      # Container user configuration
│   └── .bashrc               # Auto-setup on shell start
└── notes/                     # RViz configurations and notes

Quick Start

cd ~/docker/agilex_scout_xarm
sudo ./scripts/run_melodic.sh

This will:

  1. Start the melodic_bridge container in detached mode
  2. Open an interactive bash shell inside the container
  3. Auto-source ROS and catkin workspace
  4. Change to catkin workspace directory

Running Simulations

Scout Gazebo Simulation

roslaunch scout_gazebo_sim scout_empty_world.launch

Minimal Bringup (Hardware)

roslaunch agx_xarm_bringup bringup_minimal.launch use_rviz:=true

Teleop Control

Base (Scout) Teleop:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/cmd_vel

Arm (xArm6) Teleop:

rosrun teleop_twist_keyboard xarm6_keyboard_teleop.py

Controls:

  • q/a: Joint 1 (Base yaw)
  • w/s: Joint 2 (Shoulder)
  • e/d: Joint 3 (Elbow)
  • r/f: Joint 4 (Wrist roll)
  • t/g: Joint 5 (Wrist pitch)
  • y/h: Joint 6 (Wrist yaw)
  • u/j: Increase/decrease all speeds
  • z: Reset all joints to 0
  • x: Move to home position

Docker Management

# Build the Docker image
sudo ./scripts/build_melodic.sh

# Complete rebuild with robot packages
sudo ./scripts/rebuild_with_robot_packages.sh

# Quick restore Python 3.8 environment
./scripts/quick_restore_python38.sh

# Stop container
sudo docker compose -f docker/compose.yaml down

Issues and Recovery

See RECOVERY_GUIDE.md for troubleshooting Docker issues.

Common problems:

  • Python 3.8 missing → Run quick_restore_python38.sh
  • Workspace not building → Run restore_integration.sh inside container
  • Missing packages → Check PERMANENT_SETUP.md

Git Workflow

This repository tracks:

  • Docker configuration files
  • Custom ROS packages (integration/)
  • Launch files and RViz configs
  • Build scripts and recovery tools

NOT tracked:

  • Build artifacts (build/, devel/, log/)
  • Large model files
  • Nested git repositories (use submodules if needed)

Notes

  • Container uses network_mode: host for ROS communication
  • GPU access enabled for visualization
  • X11 forwarding configured for RViz
  • Robot packages are bind-mounted from host
  • Teleop keyboard needs TTY allocation (run via run_melodic.sh script)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published