{"id":24519802,"url":"https://github.com/chapulina/dolly","last_synced_at":"2025-04-09T07:07:20.042Z","repository":{"id":34416658,"uuid":"177352675","full_name":"chapulina/dolly","owner":"chapulina","description":"🤖🐑 It's a sheep, it's a dolly, it's a following robot. Dolly was born to be cloned.","archived":false,"fork":false,"pushed_at":"2024-03-14T00:17:05.000Z","size":72023,"stargazers_count":235,"open_issues_count":9,"forks_count":65,"subscribers_count":6,"default_branch":"galactic","last_synced_at":"2025-04-02T04:08:34.771Z","etag":null,"topics":["differential-drive","follower","gazebo","hacktoberfest","ignition-gazebo","ignition-robotics","robot","robotics","robotics-simulation","ros","ros2","sheep"],"latest_commit_sha":null,"homepage":"","language":"C++","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/chapulina.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}},"created_at":"2019-03-24T00:04:30.000Z","updated_at":"2025-02-28T09:58:28.000Z","dependencies_parsed_at":"2025-02-28T08:52:03.126Z","dependency_job_id":null,"html_url":"https://github.com/chapulina/dolly","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chapulina%2Fdolly","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chapulina%2Fdolly/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chapulina%2Fdolly/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chapulina%2Fdolly/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chapulina","download_url":"https://codeload.github.com/chapulina/dolly/tar.gz/refs/heads/galactic","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247994121,"owners_count":21030050,"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":["differential-drive","follower","gazebo","hacktoberfest","ignition-gazebo","ignition-robotics","robot","robotics","robotics-simulation","ros","ros2","sheep"],"created_at":"2025-01-22T01:52:30.042Z","updated_at":"2025-04-09T07:07:20.024Z","avatar_url":"https://github.com/chapulina.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build and test](https://github.com/chapulina/dolly/actions/workflows/ci.yml/badge.svg)](https://github.com/chapulina/dolly/actions/workflows/ci.yml)\n\n# Dolly the robot\n\n_It's a sheep, it's a dolly, it's a following robot. Born to be cloned._\n\nPackages for launching Dolly demo, which uses ROS 2 and either\n[Gazebo](https://gazebosim.org) or [Ignition](https://ignitionrobotics.org).\n\nGazebo | Ignition\n-- | --\n![Dolly Gazebo](images/dolly.gif) | ![Dolly Ignition](images/dolly_ign.gif)\n\n## Versions\n\nDolly is known to work on the following systems.\n\nBranch | ROS | Gazebo-classic | Ignition | OS\n-- | -- | -- | -- | --\n[crystal](https://github.com/chapulina/dolly/tree/crystal) | Crystal | Gazebo 9 | :x: | Ubuntu Bionic\n[dashing](https://github.com/chapulina/dolly/tree/dashing) | Dashing | Gazebo 9 | :x: | Ubuntu Bionic, macOS Sierra\n[eloquent](https://github.com/chapulina/dolly/tree/eloquent) | Eloquent | Gazebo 9, Gazebo 11 | Citadel | Ubuntu Bionic\n[foxy](https://github.com/chapulina/dolly/tree/foxy) | Foxy | Gazebo 11 | Citadel | Ubuntu Focal\n[galactic](https://github.com/chapulina/dolly/tree/galactic) | Galactic, Rolling | Gazebo 11 | Edifice, Fortress | Ubuntu Focal\n\n## Packages\n\nThis repository contains the following packages:\n\n* `dolly`: Metapackage which provides all other packages.\n* `dolly_follow`: Provides node with follow logic.\n* `dolly_gazebo`: Robot model, simulation world and launch scripts for Gazebo-classic.\n* `dolly_ignition`: Robot model, simulation world and launch scripts for Ignition.\n* `dolly_tests`: Simulation-based automated tests\n\n## Install\n\nIt's encouraged that you build Dolly from source, to learn about how to\ndevelop your own packages. But in case you just want to give it a quick\ntry, there are binaries available too.\n\n### From binaries\n\nDolly has been released into several ROS distros. These are the currently\nsupported ones:\n\n| ROS      | Packages                       |\n|----------|--------------------------------|\n| Foxy     | `ros-foxy-dolly`               |\n|          | `ros-foxy-dolly-follow`        |\n|          | `ros-foxy-dolly-gazebo`        |\n|          | `ros-foxy-dolly-ignition `     |\n| Galactic | `ros-galactic-dolly`           |\n|          | `ros-galactic-dolly-follow`    |\n|          | `ros-galactic-dolly-gazebo`    |\n|          | `ros-galactic-dolly-ignition ` |\n| Rolling  | `ros-rolling-dolly`            |\n|          | `ros-rolling-dolly-follow`     |\n|          | `ros-rolling-dolly-gazebo`     |\n|          | `ros-rolling-dolly-ignition `  |\n\n### From source\n\nInstall instructions for Ubuntu Bionic.\n\n1. Install at least one simulator,\n   [Gazebo](http://gazebosim.org/tutorials?cat=install) or\n   [Ignition](https://ignitionrobotics.org/docs/edifice/install)\n\n1. Install the appropriate ROS 2 version as instructed\n   [here](https://index.ros.org/doc/ros2/Installation/Linux-Install-Debians/).\n\n1. Clone Dolly, choose the branch according to your ROS distro:\n\n        mkdir -p ~/ws/src\n        cd ~/ws/src\n        git clone https://github.com/chapulina/dolly -b \u003cdistro\u003e\n\n1. Install dependencies:\n\n        cd ~/ws\n        rosdep install --from-paths src --ignore-src -r -y\n\n1. Build and install:\n\n        cd ~/ws\n        colcon build\n\n## Run\n\n### Gazebo-classic\n\nIf you had Gazebo installed when compiling Dolly's packages, Gazebo support\nshould be enabled.\n\n1. Setup environment variables (the order is important):\n\n        . /usr/share/gazebo/setup.sh\n        . ~/ws/install/setup.bash\n\n    \u003e *Tip*: If the command `ros2 pkg list | grep dolly_gazebo` comes up empty\n      after setting up the environment, Gazebo support wasn't correctly setup.\n\n1. Launch Dolly in a city (this will take some time to download models):\n\n        ros2 launch dolly_gazebo dolly.launch.py world:=dolly_city.world\n\n1. Launch Dolly in an empty world:\n\n        ros2 launch dolly_gazebo dolly.launch.py world:=dolly_empty.world\n\n### Ignition\n\n1. Setup environment variables:\n\n        . ~/ws/install/setup.bash\n\n    \u003e *Tip*: If the command `ros2 pkg list | grep dolly_ignition` comes up empty\n      after setting up the environment, Ignition support wasn't correctly setup.\n\n1. Launch Dolly in a station:\n\n        ros2 launch dolly_ignition dolly.launch.py\n\n## Featured\n\n* QConSF 2018\n    * 🎥 [Open Source Robotics: Hands on with Gazebo and ROS 2](https://www.youtube.com/watch?v=Gwbk6Qf_TqY)\n    * ⌨️ [Source code](https://github.com/chapulina/simslides/tree/QConSF_Nov2018)\n* InfoQ\n    * 📰 [Open Source Robotics: Getting Started with Gazebo and ROS 2](https://www.infoq.com/articles/ros-2-gazebo-tutorial/)\n* The Construct's ROS tutorials\n    * 🎥 [ROS Developers LIVE Class #70: How to Control a Robot with ROS2 (Dashing)](https://www.youtube.com/watch?v=qB4SaP3TZog)\n    * 🎥 [ROS Developers Live Class n.71: How to visualize sensor data in ROS2](https://www.youtube.com/watch?v=s3fBGSpmER0)\n    * 🎥 [Exploring ROS2 with wheeled robot - #1 - Launch ROS2 Simulation](https://www.youtube.com/watch?v=T4iRJqESQAk)\n    * 🎥 [Exploring ROS2 with wheeled robot - #2 - How to subscribe to ROS2 laser scan topic](https://www.youtube.com/watch?v=2-qO79V_Cik)\n    * 🎥 [Exploring ROS2 using wheeled Robot - #3 - Moving the Robot](https://www.youtube.com/watch?v=SinvFQ9Vobg)\n* ROSConJP 2019\n    * 🎥 [これからのGazebo: ROSのシミュレーションの次世代](https://vimeo.com/370247782)\n    * ⌨️ [Source code](https://github.com/chapulina/rosconjp_2019)\n* ROS Developers Day 2020\n    * 🎥 [Hands-on with Ignition and ROS2 | ROSDevDay2020 Trailer #1](https://www.youtube.com/watch?v=VO0ZUrr7ib8)\n    * 🎥 [Hands-on with Ignition and ROS2](https://youtu.be/nLp4uzN5NMs?t=622)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchapulina%2Fdolly","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchapulina%2Fdolly","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchapulina%2Fdolly/lists"}