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.
colcon build --symlink-install
source install/setup.bashLaunch RViz + Franka demo:
ros2 launch franka_express franka_express.launch.py
ros2 service call /choochoo std_srvs/srv/Empty- Unified
MotionPlanningInterfacecombining 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
The /choochoo empty service call does the following:
- Scan the scene to detect the track and locomotive
- Move to car staging area
- Scan the area to identify the position and orientation of each car
- Move to the track area
- Scan the area to identify the position and orientation of the eventual car placement location
- Move to each car
- Perform a second scan to obtain a more precise location of the car
- Pick up the car
- Move to the designated railing location
- Place the car onto the track
- Move to the location of the front car bogie
- Pinch the gripper and lift slightly to align the bogie with the track axis, thus placing the car perfectly onto the rails
- Release
- Perform the same action to the back car bogie
- Perform the same loop for the second car
- Move to the control box area
- Perform a scan to identify the location of the switch
- Move to just behind the switch
- 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
colcon test
colcon test-result --verboseIncludes:
- Integration tests
rosdoc2 build .https://drive.google.com/file/d/1snmk2Zt31OA4DnytgAo4E7UKgeFU1oXo/view?usp=sharing