doodledroid
Science Score: 31.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.2%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: HarrisonBounds
- License: wtfpl
- Language: Python
- Default Branch: main
- Size: 3.05 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
DoodleDroid
Group Members:
David Matthews, Christian Tongate, Harrison Bounds, Yanni Kechriotis, Zhengxiao Han
Overview
A franka robot arm is used to draw portraits as line art. Users can take a photo of themselves or others which the robot will convert to pen strokes and draw them on a paper detected and localized using april tags.
https://github.com/user-attachments/assets/d116fecf-2de2-481f-8cd0-af1a74ca4b40
Secondary roles:
Dev-ops: David Reliability: Harrison Code hygienist: Christian Integration: Han Hardware Engineer: Yanni
Quickstart
Install
Follow NU-MSR github to install realsense https://nu-msr.github.io/hackathon/computer_setup.html#org20c2832
Follow instructions on https://nu-msr.github.io/ros_notes/ros2/franka.html to setup Franka environment
Also install:
sudo apt install ros-jazzy-usb-cam
sudo apt install ros-jazzy-apriltag-ros
sudo apt install ros-jazzy-image-pipeline
Build
- colcon build
- source install/setup.bash ## Run
- Print out the 11x17" page with the 4 april tags on it. Do not scale it.
- Place the page on the Franka table.
- Follow instructions on https://nu-msr.github.io/ros_notes/ros2/franka.html to connect to the Franka arm and start the controllers and moveit.
- On your machine, run
ros2 launch doodle_droid all.launch.xmlto launch the system. - Start by calibrating the system run
ros2 service call /calibrate std_srvs/srv/Empty. Once calibration is complete, you can: - Take a photo: run
ros2 service call /take_picture std_srvs/srv/Empty. Retake your photo if desired, or if the output looks good, - Draw the photo: run
ros2 service call /draw std_srvs/srv/Empty. Wait patiently for your commissioned piece. - Once the robot returns to the `ready' pose. Disable with the enabling device and collect the masterpiece. Prep new image.
Nodes, Launchfiles, and System Architecture
Nodes
- calibrator: places robot in calibration pose and looks for april tags on the paper worspace. Publishes Pose of paper origin (xyz & quaternion) on the
surface_posetopic. - image processor: when
/take_pictureservice is called, captures image from USB camera or file (depending on configuration) and processes it into line art. publishes lines over/new_imagetopic which the route planner listens to. - route planner: listens on the
/new_imagetopic. when sets of polylines are received, the route planner node uses an approximation of the Travelling Salseman Problem to order the polylines in preparation for efficient drawing. These line segments are chained together with pen-up and pen-down motions to ensure no lines are drawn to connect sequential drawn lines. The route planner applies the calibration received from the calibration node to transform the drawing route into the paper frame for robot execution. When the/drawservice is called, this node uses moveit to draw the image. ## Launchfiles: - all.launch.xml
- starts all nodes described above, as well as 3rd party nodes (e.g. intel realsense node, and usb cam node) for the entire system to function as described above.
Owner
- Login: HarrisonBounds
- Kind: user
- Repositories: 3
- Profile: https://github.com/HarrisonBounds
Citation (citations.txt)
[1] https://github.com/LingDong-/linedraw/tree/master
GitHub Events
Total
- Watch event: 2
- Member event: 4
- Push event: 137
- Pull request event: 30
- Create event: 6
Last Year
- Watch event: 2
- Member event: 4
- Push event: 137
- Pull request event: 30
- Create event: 6
Dependencies
- setuptools *