{"id":13763097,"url":"https://github.com/memristor/mep3","last_synced_at":"2025-05-10T16:32:14.997Z","repository":{"id":39794233,"uuid":"420931782","full_name":"memristor/mep3","owner":"memristor","description":"Memristor Eurobot Platform based on ROS 2","archived":false,"fork":false,"pushed_at":"2025-05-09T09:44:42.000Z","size":17284,"stargazers_count":34,"open_issues_count":22,"forks_count":8,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-09T10:41:11.479Z","etag":null,"topics":["behaviortree","c","cpp","eurobot","python","ros","ros-navigation","rviz","webots"],"latest_commit_sha":null,"homepage":"https://memristorrobotics.com","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/memristor.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":"2021-10-25T08:04:12.000Z","updated_at":"2025-05-04T14:23:56.000Z","dependencies_parsed_at":"2023-12-19T15:55:52.628Z","dependency_job_id":"abe03424-e81a-4a0e-b15a-e6de3e23c604","html_url":"https://github.com/memristor/mep3","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memristor%2Fmep3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memristor%2Fmep3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memristor%2Fmep3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memristor%2Fmep3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memristor","download_url":"https://codeload.github.com/memristor/mep3/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253445667,"owners_count":21909838,"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":["behaviortree","c","cpp","eurobot","python","ros","ros-navigation","rviz","webots"],"created_at":"2024-08-03T15:00:32.798Z","updated_at":"2025-05-10T16:32:14.990Z","avatar_url":"https://github.com/memristor.png","language":"C","funding_links":[],"categories":["Open Source Projects"],"sub_categories":["Video Tutorials"],"readme":"# mep3\nMemristor Eurobot Platform based on ROS 2\n![image](https://user-images.githubusercontent.com/13640533/156475608-3f8c7692-c462-4a7d-8078-786c2713d709.png)\n\n## Installation\n\nMake sure you have [ROS 2 Humble](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html) installed and follow the steps below:\n\n```sh\n# Source ROS 2\nsource /opt/ros/humble/local_setup.bash\n\n# Create a workspace\nmkdir -p ~/ros2_ws/src\ncd ~/ros2_ws\ngit clone git@github.com:memristor/mep3.git src/mep3\n# On embedded device: touch src/mep3/mep3_simulation/COLCON_IGNORE\n\n# Install dependencies\nsudo apt install python3-vcstool\n# vcs import src \u003c src/mep3/mep3.repos\nrosdep update\nrosdep install --from-paths src --ignore-src -r\n\n# Build the packages\ncolcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo\n\n# Source this workspace\nsource install/local_setup.bash\n```\n\n⚠️ **Recommended:**\nPlease check alternative installation methods [here](./docker).\n\n## Bringup\n\nStart the ROS app on a physical robot or a simulation with multiple robots.\n\n### Physical\n\nStart the ROS app on SBC (we support Raspberry Pi):\n```sh\nros2 launch mep3_bringup robot_launch.py bt:=false color:=blue\n```\n\nImportant parameters are:\n- `namespace`: Whether to load a configuration for a big or small robot (can be `big` or `small`).\n- `color`: Team color (can be `blue` or `green`).\n- `bt`: Whether to run a behavior tree (can be `true` or `false`).\n- `strategy`: Name of the behavior tree you want run.\n\n### Simulation\n\nStart the simulation on a PC:\n```sh\nros2 launch mep3_bringup simulation_launch.py\n```\n\nImportant parameters are:\n- `color`: Team color (can be `blue` or `green`).\n- `bt`: Whether to run a behavior tree (can be `true` or `false`).\n- `big_strategy`: Name of the behavior tree you want run for the big robot.\n- `small_strategy`: Name of the behavior tree you want run for the small robot.\n\n### Demo\n\n#### Teleoperation\n\u003e[!NOTE]\nRun simulation without behavior tree\n\n```sh\nros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r cmd_vel:=big/cmd_vel\n```\n(use `i`, `j`, `l`, and `,` keys move to the robot)\n\n#### Visualization \u0026 navigation\n```sh\nros2 launch mep3_bringup rviz_launch.py namespace:=big\n```\n(use `2D Goal Pose` to navigate the robot)\n\n## Tips\n\n### Live strategies\n\nTo iterate quickly on behaviors you can load any strategy that contains `live` in the name.\nAs soon as any of the files in the [`mep3_behavior/strategies`](mep3_behavior/strategies) directory is changed the behavior node will reload.\n\n### Webots world simulation\n\n- Open [`mep3_simulation/webots_data/worlds/eurobot.wbt`](./mep3_simulation/webots_data/worlds/eurobot.wbt) in Webots\n  ```sh\n  webots ~/ros2_ws/src/mep3/mep3_simulation/webots_data/worlds/eurobot.wbt\n  ```\n- Stop simulation and set time to `00:00:00`\n- Save changes\n- Commit all changes except for [`Viewpoint`](./mep3_simulation/webots_data/worlds/eurobot.wbt#L5-L7)\n\n### Testing\n\n- Change working directory to `~/ros2_ws`\n- Run the following command:\n  ```sh\n  source /opt/ros/humble/local_setup.bash\n  colcon test --event-handlers console_cohesion+ --return-code-on-test-failure\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemristor%2Fmep3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemristor%2Fmep3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemristor%2Fmep3/lists"}