{"id":23163041,"url":"https://github.com/advrhumanoids/concert_nav2","last_synced_at":"2025-07-04T17:35:37.440Z","repository":{"id":267784703,"uuid":"900842632","full_name":"ADVRHumanoids/concert_nav2","owner":"ADVRHumanoids","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-28T15:39:08.000Z","size":79,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-10T05:14:29.213Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","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}},"created_at":"2024-12-09T15:14:38.000Z","updated_at":"2025-01-28T15:39:11.000Z","dependencies_parsed_at":"2024-12-12T12:37:27.213Z","dependency_job_id":"1d52ceab-b1cc-4f38-8229-6077e6c05b63","html_url":"https://github.com/ADVRHumanoids/concert_nav2","commit_stats":null,"previous_names":["advrhumanoids/concert_nav2"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fconcert_nav2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fconcert_nav2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fconcert_nav2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ADVRHumanoids%2Fconcert_nav2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ADVRHumanoids","download_url":"https://codeload.github.com/ADVRHumanoids/concert_nav2/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247249028,"owners_count":20908202,"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":[],"created_at":"2024-12-18T00:15:46.132Z","updated_at":"2025-04-04T20:35:51.777Z","avatar_url":"https://github.com/ADVRHumanoids.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Launch Ethercat Mster to communicate with the board on the Real Robot\nTerminal window #1\n```bash\nreset \u0026\u0026 ecat_master\n```\n# Launch xbot2 on the Real Robot\nTerminal window #2\n```bash\nxbot2-core --hw ec_imp -V\n```\n# Concert GUI Real Robot on Vsion Board\nTerminal window #3\n```bash\nssh_vsion\n```\n```bash\nros2\n```\n```bash\ncd ~/data/forest_ws/src/concert_config/config/xbot2_gui_server\n```\n```bash\nxbot2_gui_server concert_gui_config.yaml\n```\n# Concert Robot Workspace\n\nThis repository provides the necessary setup, scripts, and commands to launch and operate the **Concert** robot in a simulated environment. The setup includes **Gazebo** simulation, **SLAM**, and **Navigation** in **ROS 2** (Robot Operating System 2). Below are detailed instructions for building the Docker image, launching the robot, enabling navigation, running SLAM, saving/loading maps, and following waypoints.\n\n## Prerequisites\n\nEnsure you have the following installed:\n\n- **Docker and Docker Compose**:\n    - To install, follow the appropriate instructions for [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) on Ubuntu.\n\n## Setup and Docker Build\n\n1. **Build the Docker Image**:\n    ```bash\n    docker-compose build\n    ```\n\n2. **Run the Docker Container**:\n    ```bash\n    docker-compose up -d\n    ```\n\n## Launching Concert in Gazebo\n\nBefore launching the Concert robot model, set the required environment variable to specify the resource path for Gazebo:\n\n```bash\nexport GZ_SIM_RESOURCE_PATH=/home/user/data/forest_ws/ros_src/concert_description/concert_gazebo/models\n```\n\nTo launch the Concert robot model in the default Gazebo world, execute the following command:\n\n```bash\nros2 launch concert_gazebo modular.launch.py velodyne:=true\n```\n\nThis command launches the Concert robot in a simulated Gazebo environment with a Velodyne LiDAR sensor enabled.\n\nTo open **RViz** for visualizing sensor data, the robot's position, and the environment in 3D, use the following command:\n\n```bash\nrviz2 --ros-args -p use_sim_time:=true\n```\n\n## Setting Up Odometry\n\nTo start the odometry process, which helps the robot estimate its position and movement:\n\n```bash\nros2 launch concert_odometry_ros2 concert_odometry.launch.py\n```\n\n## Converting and Fusing PointCloud Data\n\nTo convert PointCloud data to LaserScan and fuse multiple LaserScans into a single `/scan` topic, use:\n\n```bash\nros2 launch concert_navigation master_lidar_conversion_fuse.launch.py\n```\n\nThis script converts the PointCloud data from the 3D LiDAR into a 2D LaserScan format suitable for SLAM and navigation.\n\n## Enabling SLAM (Simultaneous Localization and Mapping)\n\nTo start mapping the environment using the SLAM Toolbox and automatically save the map:\n\n```bash\nros2 launch concert_navigation master_mapping_slam_saver.launch.py\n```\n\n### Saving the Map\n\nOnce you've completed mapping, save the generated map using the `nav2_map_server` package:\n\n```bash\nros2 run nav2_map_server map_saver_cli -f maps/myworld\n```\n\nThis will save the map in the `maps/` directory under the filename `myworld`. Adjust the path and file name as needed.\n\n## Starting the Navigation Stack\n\nAfter completing the map creation, start the navigation stack by initializing localization using AMCL (Adaptive Monte Carlo Localization) to position the robot within the known map:\n\n```bash\nros2 launch concert_localization localization.launch.py\n```\n\nThis command enables AMCL, allowing the robot to localize itself in the previously created map.\n\n### Starting Path Planning with Nav2\n\nTo enable obstacle-avoiding path planning and navigate the Concert robot on the built map:\n\n```bash\nros2 launch concert_navigation path_planner.launch.py\n```\n\n## Autonomous Navigation and Simultaneous Mapping\n\nFor autonomous navigation while building a map simultaneously, use the SLAM Toolbox with its localization feature and the navigation stack. This setup enables the robot to explore the environment, build the map, and navigate autonomously.\n\n1. **Start SLAM Toolbox with Navigation Enabled**:\n    ```bash\n    ros2 launch concert_navigation master_mapping_slam_saver.launch.py\n    ```\n\n2. **Activate the Navigation Stack**:\n    After launching SLAM Toolbox, ensure that the navigation stack is enabled to allow for obstacle-avoiding path planning. Use the following command:\n\n    ```bash\n    ros2 launch concert_navigation path_planner.launch.py\n    ```\n## Aborting Goal CLI\n```bash\nros2 action send_goal /navigate_to_pose nav2_msgs/action/NavigateToPose \"{}\"\n```\n\n## 3D Mapping with RTAB-Map\n\nFor 3D mapping, Concert uses RTAB-Map, which allows real-time 3D mapping and localization. Since Concert has two 3D PointCloud sensors, you will also need to fuse their data.\n\n1. **Fuse the 3D PointClouds**:\n    To fuse the data from the two 3D PointCloud sensors, use the following command:\n    ```bash\n    ros2 launch concert_navigation master_cloud_multi_merger.launch.py\n    ```\n2. **Launch RTAB-Map for 3D Mapping**:\n    Use the following command to start the RTAB-Map process:\n    ```bash\n    ros2 launch concert_mapping rtab_vlp16.launch.py\n    ```\n### Saving PointClouds as `.pcd` Files\n\nTo save the fused PointCloud data into `.pcd` files for later use:\n\n```bash\nros2 launch concert_mapping pointcloud_to_pcd.launch.py\n```\n\nThe resulting `.pcd` files will be stored in the specified directory `concert_mapping/pointclouds/`.\n\n### Replacing the PointCloud with Saved `.pcd` Data\n\nTo load the saved `.pcd` file and use it as the PointCloud source:\n\n```bash\nros2 launch concert_mapping pcd_to_pointcloud.launch.py\n```\n\nThis replaces the live sensor data with the pre-saved PointCloud data, enabling operations using previously captured environments.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvrhumanoids%2Fconcert_nav2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadvrhumanoids%2Fconcert_nav2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadvrhumanoids%2Fconcert_nav2/lists"}