{"id":18456481,"url":"https://github.com/pollen-robotics/reachy_2023","last_synced_at":"2025-04-08T04:34:58.903Z","repository":{"id":155090769,"uuid":"571605399","full_name":"pollen-robotics/reachy_2023","owner":"pollen-robotics","description":"Reachy 2023 workspace","archived":false,"fork":false,"pushed_at":"2025-01-09T16:16:50.000Z","size":31040,"stargazers_count":19,"open_issues_count":27,"forks_count":10,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2025-03-23T06:41:25.700Z","etag":null,"topics":["robotics","ros2","rust"],"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/pollen-robotics.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":"2022-11-28T13:48:52.000Z","updated_at":"2025-01-28T13:29:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"f86ac1fa-2169-48ac-b68b-3a731e4b539c","html_url":"https://github.com/pollen-robotics/reachy_2023","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/pollen-robotics%2Freachy_2023","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pollen-robotics%2Freachy_2023/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pollen-robotics%2Freachy_2023/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pollen-robotics%2Freachy_2023/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pollen-robotics","download_url":"https://codeload.github.com/pollen-robotics/reachy_2023/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247779796,"owners_count":20994569,"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":["robotics","ros2","rust"],"created_at":"2024-11-06T08:11:39.071Z","updated_at":"2025-04-08T04:34:53.890Z","avatar_url":"https://github.com/pollen-robotics.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Installation\nAn alternative installation using Docker can be found [here](docker/README.md)\n\nThis guide is meant for an Ubuntu 22.04\n## Environment\n\n### ROS2 Humble\n\nhttps://docs.ros.org/en/humble/Installation.html\n\nWe use Cyclone DDS, here is\na [link](https://docs.ros.org/en/humble/Installation/DDS-Implementations/Working-with-Eclipse-CycloneDDS.html)\nfor reference, but there is no need to install more than what's already included in the following steps.\n\nAfter ROS2 Humble installation is completed, you should add the following to your bashrc.\n\n```commandline\nsource /opt/ros/humble/setup.bash\nexport RMW_IMPLEMENTATION=rmw_cyclonedds_cpp\n```\n\n### Rust\n\n```commandline\ncurl https://sh.rustup.rs -sSf | sh\n```\n\nYou may add to your bashrc, or source it anytime you want to build `reachy_ws`\n(the above script might have added this to your bashrc already)\n\n```commandline\nsource \"$HOME/.cargo/env\"\n```\n\n### Git LFS\n\n```commandline\napt-get install -y git-lfs\ngit lfs install\n```\n\nhttps://doc.rust-lang.org/cargo/getting-started/installation.html\n\n## Reachy WorkSpace\n\n### Create Reachy_2023 env\n\n```commandline\nmkdir ~/reachy_ws \u0026\u0026 cd ~/reachy_ws\nmkdir src \u0026\u0026 cd src\ngit clone https://github.com/pollen-robotics/reachy_2023.git\n```\n### Copy the configuration file\n```commandline\ncp ~/reachy_ws/src/reachy_2023/reachy_utils/reachy_utils/files/reachy.yaml ~/\n```\n\n### Build Reachy_2023 env\n\n```commandline\ncd ~/reachy_ws\n./src/reachy_2023/dependencies.sh\npip install -r ./src/reachy_2023/requirements.txt\ncolcon build --symlink-install\n```\n\nNow you can add the following lines to your bashrc\n\n```commandline\nsource ~/reachy_ws/install/setup.bash\nsource /usr/share/gazebo/setup.bash\n```\n\nIf there is multiple ROS2 environement on the same network, you should think about using adding ROS_DOMAIN_ID yo your\nbashrc as well.\n(choosing an integer between 0 and 101 inclusive as domain ID is a safe bet)\ne.g.\n\n```commandline\nexport ROS_DOMAIN_ID=42\n```\n\nFor a more detailed explanation os this mechanic, please have a look at\nthis [documentation](https://docs.ros.org/en/humble/Concepts/About-Domain-ID.html)\n\n### Nav\n\n## Reachy SDK API\n\n```commandline\nmkdir ~/dev \u0026\u0026 cd ~/dev\ngit clone https://github.com/pollen-robotics/reachy-sdk-api.git\ncd ~/dev/reachy-sdk-api/python\npip3 install -e .\npip3 install scipy\n```\n\n## Demos\n\n```commandline\nros2 launch reachy_bringup reachy.launch.py  -s\n```\n\nThis command should give you a list a currently accepted arguments by reachy.launch.py,\nif you want to try things by yourself. Let's walk you through some of these.\n\n### Software only {#custom-id}\n\n\u003cdetails\u003e\n  \u003csummary\u003eFake\u003c/summary\u003e\n  \n```commandline\nros2 launch reachy_bringup reachy.launch.py  fake:=true start_rviz:=true\n```\n\nIf you see a full_kit robot (torso, head and arms) inside rviz, then it should mean that most stuff\nwent right, or at least that not everything went wrong.\n\nFake robot enables to test the bare minimum.\nTo actually run some code, we will escalate this replacing fake by gazebo simulation.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eGazebo\u003c/summary\u003e\n  \n\n```commandline\nros2 launch reachy_bringup reachy.launch.py  gazebo:=true\n```\nAfter running this one, you should see Reachy inside Gazebo simulation tool. \nNothing should be moving yet, but we will see about it in the next sections.\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eROS2 CLI\u003c/summary\u003e\nLaunch Gazebo with the command provided in previous section.\nNow you can try to move some joints directly through ROS control using this kind of command :\n\n```commandline\nros2 topic pub /dynamic_joint_commands control_msgs/msg/DynamicJointState \"header:\n  stamp:\n    sec: 0\n    nanosec: 0\n  frame_id: ''\njoint_names:\n- l_shoulder_pitch\ninterface_values:\n- interface_names:\n  - position\n  values:\n  - -1.0\n\"\n```\n\nTo list available interfaces in ROS control, you can use\n\n```commandline\nros2 control list_hardware_interfaces\n```\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eReachy SDK\u003c/summary\u003e\n  \nTo test a bit further, you can start a fake instance and gazebo, with sdk_server on\n\n```commandline\nros2 launch reachy_bringup reachy.launch.py  gazebo:=true start_sdk_server:=true\n```\n\nThen try to move the robot through [Reachy's python SDK](https://github.com/pollen-robotics/reachy-sdk)\n\n```python\nimport reachy_sdk\n\nmy_awesome_reachy = reachy_sdk.ReachySDK(host=\"localhost\")\nmy_awesome_reachy.head.look_at(0.5, 0, -0.5, 4)\nmy_awesome_reachy.l_arm.l_elbow_pitch.goal_position = -90\n\nfrom reachy_sdk.trajectory import goto\n\ngoto({my_awesome_reachy.l_arm.l_elbow_pitch: 0}, 10)\n\n```\n\nMore info on how to use Reachy's Python SDK can be found on\n[its documentation](https://docs.pollen-robotics.com/sdk/getting-started/introduction/)\n\u003c/details\u003e\n\n### Full stack examples\n\nNow that is everything is set up properly on your environment, let's try to move some real stuff.\n\nTo be continued...\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpollen-robotics%2Freachy_2023","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpollen-robotics%2Freachy_2023","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpollen-robotics%2Freachy_2023/lists"}