{"id":28314985,"url":"https://github.com/atticusrussell/ballbot","last_synced_at":"2025-09-11T14:03:58.335Z","repository":{"id":176444297,"uuid":"657390889","full_name":"atticusrussell/ballbot","owner":"atticusrussell","description":"ROS2 robot for learning and autonomous tennis ball retrieval","archived":false,"fork":false,"pushed_at":"2025-05-18T23:45:29.000Z","size":63884,"stargazers_count":5,"open_issues_count":8,"forks_count":2,"subscribers_count":3,"default_branch":"humble","last_synced_at":"2025-06-01T07:23:10.266Z","etag":null,"topics":["4wd","lidar","raspberry-pi","raspberry-pi-4","robot","robotics","ros","ros2","rpi4","yahboom"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atticusrussell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-06-23T00:54:49.000Z","updated_at":"2025-05-24T09:20:49.000Z","dependencies_parsed_at":"2023-08-25T03:38:39.446Z","dependency_job_id":"40e9b6b4-3302-4a24-a083-deeee3d0f59e","html_url":"https://github.com/atticusrussell/ballbot","commit_stats":null,"previous_names":["atticusrussell/catbot","atticusrussell/brobot","atticusrussell/ballbot"],"tags_count":0,"template":false,"template_full_name":"athackst/vscode_ros2_workspace","purl":"pkg:github/atticusrussell/ballbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atticusrussell%2Fballbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atticusrussell%2Fballbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atticusrussell%2Fballbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atticusrussell%2Fballbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atticusrussell","download_url":"https://codeload.github.com/atticusrussell/ballbot/tar.gz/refs/heads/humble","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atticusrussell%2Fballbot/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261243140,"owners_count":23129585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["4wd","lidar","raspberry-pi","raspberry-pi-4","robot","robotics","ros","ros2","rpi4","yahboom"],"created_at":"2025-05-24T20:09:59.380Z","updated_at":"2025-09-11T14:03:58.316Z","avatar_url":"https://github.com/atticusrussell.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BroBot\n\n![CI Testing](https://github.com/atticusrussell/catbot/actions/workflows/.github/workflows/ros-test.yaml/badge.svg)\n![CI Linting](https://github.com/atticusrussell/catbot/actions/workflows/.github/workflows/ros-lint.yaml/badge.svg)\n\n\nA 4WD differential drive robot is controlled using ROS2 Humble running on a Raspberry Pi 4 (running Ubuntu server 22.04). The vehicle is equipped with a camera for visual feedback and an RPLIDAR A1 sensor used for Simultaneous Localization and Mapping (SLAM), autonomous navigation and obstacle avoidance. The Linorobot2 project is leveraged through my use of a Teensy 4.1 running a Micro-ROS node to interface with 4 motors/encoders and an IMU.\n\nThe intent of the project is to explore robotics and computer vision by developing a robot that can detect a tennis ball, navigate toward it, and eventually return it to a person or designated base station — like a ball-retrieving assistant.\n\n\nSee [the workspace template](/template.md) for workspace usage instructions.\n\n\n***(Work in Progress)***\n\n## Tasks \n➡️ See the full task breakdown in [docs/TODO.md](docs/TODO.md)\n\n## Hardware\n####  BroBot Front View\n\u003cp align='center'\u003e\n    \u003cimg src=docs/images/20231024_200513.jpg\u003e\n\u003c/p\u003e\n\n####  BroBot Side View\n\u003cp align='center'\u003e\n    \u003cimg src=docs/images/20231024_200719.jpg\u003e\n\u003c/p\u003e\n\n####  BroBot Rear Top View\n\u003cp align='center'\u003e\n    \u003cimg src=docs/images/20231024_200519.jpg\u003e\n\u003c/p\u003e\n\n#### BroBot Initial Construction\n\u003cp align='center'\u003e\n    \u003cimg src=docs/images/wip_catbot.jpg width=\"1000\"\u003e\n\u003c/p\u003e\n\n### Part list\nThe following components were used in this project:\n\n| | Part |\n| --| --|\n|1| [Raspberry Pi 4 (4 GB)](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/)|\n|2| [AmazonBasics 128 GB SD Card](https://www.amazon.com/dp/B08TJRVWV1?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|3| [Yahboom Aluminum Alloy ROS Robot Car Chassis (4wd chassis)](https://category.yahboom.net/collections/a-chassis-bracket/products/ros-chassis)|\n|4| [L298N Motor Drivers](https://www.amazon.com/dp/B07BK1QL5T?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|5| [DFRobot DC-DC Power Module 25W DFR0205](https://www.digikey.com/en/products/detail/dfrobot/DFR0205/6588491)|\n|6| [Screw-down Terminal Block Strips Dual Row 10A 380V](https://www.amazon.com/dp/B08V4W637Q?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|7| [RPLIDAR A1](https://www.slamtec.com/en/Lidar/A1)|\n|8| [GeeekPi Fan Hat with OLED for RPi 4/3/2/B/+](https://www.amazon.com/dp/B09MVL8BWQ?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|9| [GeeekPi M2.5 Standoffs](https://www.amazon.com/dp/B07PHBTTGV?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|10| [Dupont Wires](https://www.amazon.com/dp/B01EV70C78?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|11| Arduino Uno|\n|12| Spare wires|\n\nSome other tools or parts used in the project are as follows:\n\n| | Tool/Part |\n| --| --|\n|1| [Soldering iron](https://www.amazon.com/gp/product/B00ANZRT4M/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8\u0026psc=1)|\n|2| [SOMELINE Ferrule Crimping Tool Kit](https://www.amazon.com/dp/B09FSWKRH5?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|3| Screwdriver set|\n|4| [Hot Glue Gun](https://www.amazon.com/dp/B00FI6QWBM?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|5| [Hot Glue](https://www.amazon.com/dp/B06X1CZWC5?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|6| [iCrimp IWS-3220M Micro Connector Pin Crimping Tool](https://www.amazon.com/dp/B078WPT5M1?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|7| [Connector Crimp Pin Cable Kit JST SYP Futaba](https://www.amazon.com/dp/B09MYWTHDZ?psc=1\u0026ref=ppx_yo2ov_dt_b_product_details)|\n|8| Zip ties |\n\n## Instructions\n### Devcontainers\nThe project can be built and developed in the VSCode devcontainers in `.devcontainer` .\n\nFor the devcontainers with GPU passthrough enabled, you first must [install the nvidia container toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html), either on Linux or on WSL2\n\n## Acknowledgments\n- [Allison Thackston](https://github.com/athackst/vscode_ros2_workspace)\n- [Articulated Robotics](https://articulatedrobotics.xyz/)\n- [Lidarbot](https://github.com/TheNoobInventor/lidarbot)\n- [linorobot2](https://github.com/linorobot/linorobot2)\n- [linrobot2_hardware](https://github.com/linorobot/linorobot2_hardware)\n- [ros2_rover](https://github.com/mgonzs13/ros2_rover/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatticusrussell%2Fballbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatticusrussell%2Fballbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatticusrussell%2Fballbot/lists"}