Padbot X3
Synced from the repository
This page mirrors the auki_robotics_padbot_x3 README (branch develop).
The repository is the source of truth.
Demonstrating posemesh domain map deployment on Padbot X3 and W2 robots
Overviewβ
This project demonstrates how to integrate and deploy posemesh domain maps on Padbot robots (X3 and W2 models). The system provides a complete solution for autonomous robot navigation using spatial domain data, enabling robots to understand their environment and navigate intelligently within defined domains.
Key Featuresβ
π€ Robot Integrationβ
- Padbot X3 & W2 Support: Full compatibility with both robot models
- SLAM Integration: Real-time Simultaneous Localization and Mapping
- Autonomous Navigation: Intelligent pathfinding using domain maps
- Pose Tracking: Continuous robot position and orientation monitoring
πΊοΈ Posemesh Domain Integrationβ
- Domain Authentication: Secure access to posemesh spatial domains
- Map Download: Automatic retrieval of domain-specific maps (STCM format)
- Navmesh Generation: Dynamic navigation mesh creation for pathfinding
- Raycast Support: Spatial querying for obstacle detection and avoidance
π± React Native GUIβ
- Cross-Platform: Android and iOS support
- Real-time Monitoring: Live robot status and battery monitoring
- Configuration Management: Easy setup and credential management
- Connection Status: Visual feedback for robot and domain connectivity
π§ Advanced Featuresβ
- Home Dock Management: Automatic home position setting and navigation
- Patrol Points: Configurable waypoint-based navigation
- Battery Monitoring: Real-time battery status tracking
- Logging System: Comprehensive debug and error logging
Architectureβ
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β React Native β β Android SDK β β Padbot Robot β
β GUI βββββΊβ Integration βββββΊβ (X3/W2) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β Domain Utils β β SLAM Utils β β Hardware SDK β
β (Posemesh) β β (Slamtec) β β (Padbot) β
βββββββββββββββββββ ββββββββββββββββββββ βββββββββββββββββββ
β β
βΌ βΌ
βββββββββββββββββββ ββββββββββββββββββββ
β Posemesh API β β Domain Maps β
β (Auth β β (STCM Format) β
β & Maps) β β β
βββββββββββββββββββ ββββββββββββββββββββ
Prerequisitesβ
Hardware Requirementsβ
- Padbot X3 or Padbot W2 robot
- Android device or emulator for GUI
- Network connectivity for domain access
Software Requirementsβ
- Node.js (>= 18)
- React Native CLI
- Android Studio (for Android development)
- Java Development Kit (JDK)
- Posemesh Account with domain access
Dependenciesβ
- React Native 0.78.0
- React 19.0.0
- Slamtec SDK for Android
- Padbot Robot SDK
Installation & Setupβ
1. Clone the Repositoryβ
git clone <repository-url>
cd auki_padbot_w3
2. Install Dependenciesβ
cd RobotGUI
npm install
3. Android Setupβ
# Navigate to Android directory
cd android
# Install Gradle dependencies
./gradlew clean
./gradlew build
4. Configurationβ
Edit RobotGUI/android/app/src/auki_padbot_x3/assets/config.yaml:
# Default configuration
email: "your-email@example.com"
domain_id: "your-domain-id"
slam_ip: "192.168.11.1" # Robot IP address
slam_port: 1445
timeout_ms: 1000
# Domain Configuration
domain:
map_endpoint: "https://dsc.auki.network/spatial/crosssection"
raycast_endpoint: "https://dsc.auki.network/spatial/raycast"
navmesh_endpoint: "https://dsc.auki.network/spatial/restricttonavmesh"
### 5. Build and Run
```bash
# Start Metro bundler
npm start
# Run on Android device/emulator
npm run android
Usageβ
Initial Setupβ
- Launch the App: Start the React Native application
- Configure Credentials: Enter your posemesh email, password, and domain ID
- Test Connection: Verify robot and domain connectivity
- Set Home Position: Configure the robot's home dock location
Robot Controlβ
- Connect: Establish connection with the Padbot robot
- Download Map: Retrieve domain-specific spatial map
- Set Pose: Initialize robot position and orientation
- Navigate: Execute autonomous navigation commands
Domain Integrationβ
- Authentication: Secure access to posemesh domains
- Map Retrieval: Download STCM format domain maps
- Navmesh Generation: Create navigation meshes for pathfinding
- Pose Reporting: Continuous position updates to domain
Further information can be found at https://github.com/aukilabs/auki_robotics_map_utils
API Referenceβ
Domain Utils Moduleβ
// Authentication
authenticate(email: string, password: string, domainId: string): Promise<AuthResult>
// Map Operations
downloadMap(): Promise<MapResult>
getNavmeshCoord(coordinates: CoordMap): Promise<NavmeshResult>
// Pose Management
writeRobotPose(poseData: string, method: string, dataId?: string): Promise<PoseResult>
SLAM Utils Moduleβ
// Connection Management
checkConnectionSdk(): Promise<ConnectionStatus>
connectToRobot(ip: string, port: number): Promise<ConnectionResult>
// Navigation
navigateHomeWithSdk(x: number, y: number, yaw: number): Promise<NavigationResult>
setHomeDock(x: number, y: number, z: number, yaw: number, pitch: number, roll: number): Promise<HomeDockResult>
Configuration Optionsβ
Robot Settingsβ
- IP Address: Robot network address (default: 192.168.11.1)
- Port: SLAM service port (default: 1445)
- Timeout: Connection timeout in milliseconds
Domain Settingsβ
- Map Endpoint: Domain map download URL
- Raycast Endpoint: Spatial query service URL
- Navmesh Endpoint: Navigation mesh generation URL
Navigation Settingsβ
- Patrol Points: Configurable waypoint coordinates
- Speed Settings: Different speeds for various operations
- Home Dock: Robot charging station position
Troubleshootingβ
Common Issuesβ
Connection Problemsβ
# Check robot network connectivity
ping 192.168.11.1
# Verify SLAM service is running
telnet 192.168.11.1 1445
Authentication Errorsβ
- Verify posemesh credentials
- Check domain ID validity
- Ensure network connectivity to posemesh services
Build Issuesβ
# Clean and rebuild
cd android
./gradlew clean
./gradlew build
# Clear React Native cache
npx react-native start --reset-cache
Debug Loggingβ
Enable debug logging by checking the logs in:
debug_log.txt- General application logslogcat.txt- Android system logs
Developmentβ
Project Structureβ
auki_padbot_w3/
βββ RobotGUI/ # React Native application
β βββ android/ # Android-specific code
β β βββ auki_padbot_x3/ # Main application code
β β βββ components/ # Reusable UI components
β β βββ screens/ # Application screens
β β βββ utils/ # Utility functions
β βββ package.json
βββ ReferenceFiles/ # Reference implementations
βββ sdk_analysis/ # SDK documentation
Adding New Featuresβ
- Native Modules: Add Android/Kotlin modules in
android/app/src/main/java/ - React Components: Create new components in
src/auki_padbot_x3/components/ - Screens: Add new screens in
src/auki_padbot_x3/screens/ - Configuration: Update
config.yamlfor new settings
Contributingβ
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Supportβ
For technical support or questions:
- Email: robotics@aukilabs.com
- Documentation: Check the
ReferenceFiles/directory for additional documentation - Issues: Report bugs and feature requests through the project repository
Auki Labs - Share your vision.