Skip to content

theoHC/franka-express

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

407 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Northwest by Northwestern Railway

Authors: Theo Coulson, Andnet DeBour, and Derek Dietz

This project involves fine manipulation of HO scale model train cars. The robot will first identify, then pick and place two model cars into a section of Bachmann E-Z track. The robot is also capable of coupling the two trains together and running them with the assistance of a powered locomotive.

Quickstart Guide

colcon build --symlink-install
source install/setup.bash

Launch RViz + Franka demo:

ros2 launch franka_express franka_express.launch.py
ros2 service call /choochoo std_srvs/srv/Empty

Integration Layer

  • Unified MotionPlanningInterface combining planner, scene, and robot state, combined into package MovItPythonAPI
  • Aruco detection framework, compiled into package ArucoTracker
  • EasyHandEye calibration and Franka_Express compiled into package franka_express
  • Compatible with any user-defined ROS 2 node

Train Railer Demo

The /choochoo empty service call does the following:

  1. Scan the scene to detect the track and locomotive
  2. Move to car staging area
  3. Scan the area to identify the position and orientation of each car
  4. Move to the track area
  5. Scan the area to identify the position and orientation of the eventual car placement location
  6. Move to each car
  7. Perform a second scan to obtain a more precise location of the car
  8. Pick up the car
  9. Move to the designated railing location
  10. Place the car onto the track
  11. Move to the location of the front car bogie
  12. Pinch the gripper and lift slightly to align the bogie with the track axis, thus placing the car perfectly onto the rails
  13. Release
  14. Perform the same action to the back car bogie
  15. Perform the same loop for the second car
  16. Move to the control box area
  17. Perform a scan to identify the location of the switch
  18. Move to just behind the switch
  19. Move forward to flip the switch, thus running the locomotive

The package includes a launch file franka_express.launch.py that runs the full demo.

## Repository Structure
├── ArucoTracker
│   ├── aruco_tracker
│   │   ├── aruco_tracker
│   │   ├── config
│   │   ├── launch
│   │   ├── resource
│   │   └── test
│   ├── LICENSE
│   └── README.md
├── cross_reference
│   └── franka_express
├── final-project-north-western-northwestern
│   ├── easy_handeye2
│   │   ├── docs
│   │   ├── easy_handeye2
│   │   ├── easy_handeye2_msgs
│   │   ├── LICENSE.md
│   │   └── README.md
│   ├── franka_express
│   │   ├── config
│   │   ├── franka_express
│   │   ├── launch
│   │   ├── resource
│   │   └── test
│   ├── LICENSE
│   └── README.md
└── MovItPythonAPI
    ├── motion_planning
    │   ├── config
    │   ├── launch
    │   ├── motion_planning
    │   ├── resource
    │   └── test
    └── README.md

Testing

colcon test
colcon test-result --verbose

Includes:

  • Integration tests

Documentation

rosdoc2 build .

Video

https://drive.google.com/file/d/1snmk2Zt31OA4DnytgAo4E7UKgeFU1oXo/view?usp=sharing

About

System for placing HO scale trains onto track using Franka Emika Panda arm and RealSense camera

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors