{"id":19963320,"url":"https://github.com/advrhumanoids/xbot2_examples","last_synced_at":"2025-08-19T00:07:05.804Z","repository":{"id":46248238,"uuid":"271576268","full_name":"ADVRHumanoids/xbot2_examples","owner":"ADVRHumanoids","description":"Examples and tutorials on the new XBot2 framework -- WIP","archived":false,"fork":false,"pushed_at":"2025-03-10T09:50:40.000Z","size":1489,"stargazers_count":9,"open_issues_count":9,"forks_count":4,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-05-03T22:35:50.543Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ADVRHumanoids.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-06-11T15:04:26.000Z","updated_at":"2024-06-09T15:16:11.000Z","dependencies_parsed_at":"2025-05-03T22:32:19.234Z","dependency_job_id":"560472b3-b26c-493c-812f-9d8a45342f64","html_url":"https://github.com/ADVRHumanoids/xbot2_examples","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ADVRHumanoids/xbot2_examples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fxbot2_examples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fxbot2_examples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fxbot2_examples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fxbot2_examples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ADVRHumanoids","download_url":"https://codeload.github.com/ADVRHumanoids/xbot2_examples/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fxbot2_examples/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271078577,"owners_count":24695471,"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","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-13T02:15:36.475Z","updated_at":"2025-08-19T00:07:05.716Z","avatar_url":"https://github.com/ADVRHumanoids.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xbot2_examples\n### Examples for the XBot2.0 middleware\n\nThis repository containes commented examples of use for the [**XBot2.0**](https://advrhumanoids.github.io/xbot2/) real-time middleware for robotics. The IIT-Teleop robot, a 5-dof robotic arm, is provided as testing platform.\nFollow the link and install the framework before you go ahead!\n\n## Contents\n\n- [Simulating a robotic system with Gazebo](docs/gazebo-sim.md)\n- [Writing a simple control module as an *XBot2 Plugin*](src/homing_example/README.md)\n- [Configuring the middleware](config/README.md)\n- Inter-plugin communication ([data streaming](src/talker_listener/README.md), [rpc-like](src/client_server/README.md))\n- [Using ROS from a real-time plugin](src/ros_from_rt/README.md)\n- [Adding a custom device](src/device/README.md)\n- [Controlling the robot from ROS](src/ros_api/README.md)\n\n## How to build\n\nStandard CMake workflow\n\n - `mkdir build \u0026\u0026 cd build`\n - `ccmake \u003cpath-to-repo\u003e`\n - select a build type and an install folder (must be visible to the dynamic linker), type `c` and then `g`\n - `make -j install`\n - `sudo ldconfig` might be required if installing to `/usr/local`\n\n ## How to setup\n\n  - make sure that the robot sdf and meshes are visible to Gazebo; for instance, you can add the following line to your `.bashrc`\n   ```\n   export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:\u003cpath-to-repo\u003e/models/database\n   ```\n- set the XBot2 configuration file to the provided example with `set_xbot2_config \u003cpath-to-repo\u003e/config/teleop_simple_example.yaml` *(note: this is optional as this information can be provided later as a command line argument)*\n\nNote: a more complete `teleop_complete_example.yaml` is available, too; it requires to enable the `XBOT2_EXAMPLES_WITH_GZ` flag during compilation.\n\n\n ## How to run\n\n- load the provided `.world` file to Gazebo with the following command:\n  ```\n  gazebo \u003cpath-to-repo\u003e/world/teleop_xbot2.world\n  ```\n  you should now see the robot inside Gazebo; a simple bash script `\u003cpath-to-repo\u003e/run_simulation.bash` provides a shorthand for this command.\n- run XBot2 with `xbot2-core` or `xbot2-core --verbose` *(note: add `--config \u003cpath-to-repo\u003e/config/teleop_simple_example.yaml` if you did not use the  `set_xbot2_config` command during the setup phase)*\n\n\nYou should now be able to (for instance)\n \n - get the list of loaded plugins -\u003e `rosservice call /xbotcore/get_plugin_list`\n - monitor execution time -\u003e `rostopic echo /xbotcore/statistics`\n - monitor joint state -\u003e `rostopic echo /xbotcore/joint_states`\n\n\u003ch2\u003eRunning inside Docker container \u003cimg src=\"https://www.docker.com/sites/default/files/d8/styles/role_icon/public/2019-07/horizontal-logo-monochromatic-white.png\" alt=\"drawing\" width=\"100\"/\u003e \u003c/h2\u003e\n\n - [install docker](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository)\n   and set it up so that it [does not require sudo permissions](https://docs.docker.com/engine/install/linux-postinstall/)\n - [install nvidia container toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker) if you have an nvidia card\n - `./docker/run.sh` runs the container (the first time it will also download a crazy amount of data!)\n - to spawn more `bash` sessions inside the same container instance, do `./docker/attach.sh`\n - open three `bash` sessions\n - terminal #1: `./start.sh` (starts `roscore` and `gazebo`)\n - terminal #2: `xbot2-core` (XBot2 executable)\n - terminal #3: `xbot2-gui` (GUI should appear)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvrhumanoids%2Fxbot2_examples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadvrhumanoids%2Fxbot2_examples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvrhumanoids%2Fxbot2_examples/lists"}