Live Demo: https://robot-motion-planner.netlify.app
An AI-powered motion sequence planner that transforms natural language descriptions into precise robot arm trajectories, generating ROS2-compatible trajectory_msgs/JointTrajectory messages for seamless integration with MoveIt2.
- Natural Language Processing: Describe robot actions in plain English
- MoveIt2 Integration: Generate compatible trajectory messages for ROS2
- Real-time Visualization: Interactive 3D pose visualization
- Export Capabilities: YAML and JSON export formats
- Customizable Sequences: Complex multi-step motion sequences
- Real-time Processing: Instant trajectory generation
- Modern UI: Clean, responsive interface
- Frontend: Next.js 14, TypeScript, Tailwind CSS, shadcn/ui, Three.js
- Backend: Firebase Studio, Google Gemini (via Genkit), LangChain
- Robotics: ROS2 Humble, MoveIt2, trajectory_msgs
- Node.js 18+
- Python 3.8+
- ROS2 Humble
- MoveIt2
git clone https://github.com/yourusername/robot-motion-planner.git
cd robot-motion-planner
npm install
cp .env.example .env.local
npm run devpip install -r requirements.txt
firebase login
firebase init
firebase deploy# Install ROS2 Humble and MoveIt2
sudo apt install ros-humble-moveit
# Configure your robot's URDF/XACRO filesYou must set the following environment variable for Google GenAI integration:
GEMINI_API_KEY=your_actual_api_key_here
For local development, add this to your .env.local file. For deployment (e.g., Netlify), set it in your site environment variables.
- Open the web interface at
http://localhost:3000 - Describe your robot action using natural language:
"Make the robot wave its arm, then point to the left, and finally return to rest position" - Review the generated trajectory in the 3D visualization
- Export the trajectory in YAML or JSON format
- "Wave hello" → 3-point trajectory with arm rotation
- "Pick up object from table" → 5-point trajectory with approach, grasp, and retreat
- "Dance sequence" → Complex multi-step trajectory
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Write comprehensive tests
- Update documentation for new features
- Ensure ROS2 compatibility
This project is licensed under the MIT License - see the LICENSE file for details.