{"id":13798883,"url":"https://github.com/Adlink-ROS/adlink_ddsbot","last_synced_at":"2025-05-13T06:31:48.176Z","repository":{"id":118564441,"uuid":"103251074","full_name":"Adlink-ROS/adlink_ddsbot","owner":"Adlink-ROS","description":"The ROS 1/2 based robots swarm architecture (opensplice DDS)","archived":false,"fork":false,"pushed_at":"2022-12-26T19:47:44.000Z","size":6428,"stargazers_count":41,"open_issues_count":1,"forks_count":30,"subscribers_count":12,"default_branch":"release-1.0","last_synced_at":"2024-08-04T00:03:32.057Z","etag":null,"topics":["adlink-ros","dds","opensplice","ros","ros2"],"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/Adlink-ROS.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}},"created_at":"2017-09-12T09:33:25.000Z","updated_at":"2024-07-18T06:49:01.000Z","dependencies_parsed_at":"2023-07-04T03:03:44.903Z","dependency_job_id":null,"html_url":"https://github.com/Adlink-ROS/adlink_ddsbot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Adlink-ROS%2Fadlink_ddsbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Adlink-ROS%2Fadlink_ddsbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Adlink-ROS%2Fadlink_ddsbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Adlink-ROS%2Fadlink_ddsbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Adlink-ROS","download_url":"https://codeload.github.com/Adlink-ROS/adlink_ddsbot/tar.gz/refs/heads/release-1.0","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225183789,"owners_count":17434182,"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":["adlink-ros","dds","opensplice","ros","ros2"],"created_at":"2024-08-04T00:00:56.040Z","updated_at":"2024-11-18T13:31:40.756Z","avatar_url":"https://github.com/Adlink-ROS.png","language":"C++","readme":"# ADLink DDSBot (ROS 1/2 based swarm robots architecture)\n\n## Abstract\n\nSwarm robots using Opensplice DDS with ROS 1\u00262  \n[Official Slides] \u003chttps://github.com/Adlink-ROS/adlink_ddsbot/blob/release-1.0/document/Next-Gen_Smart_Manufacturing.pdf\u003e  \n[Youtube Video] \u003chttps://www.youtube.com/watch?v=7ZIDkLKD4Y8\u003e  \n[![alt text](http://img.youtube.com/vi/7ZIDkLKD4Y8/0.jpg)](https://www.youtube.com/watch?v=7ZIDkLKD4Y8)\n\n## Developer \u0026 Team\n\nHaoChih Lin (haochih.lin@adlinktech.com)  \nChester Tseng (chester.tseng@adlinktech.com)  \nErik Boasson (erik.boasson@adlinktech.com)  \nRyan Chen (ryanjb.chen@adlinktech.com)\n\nADLINK Technology, Inc  \nAdvanced Robotic Platform Group\n\n## License\n\nApache 2.0  \nCopyright 2017 ADLINK Technology, Inc.\n\n## Software Architecture\n\n![alt text](https://github.com/Adlink-ROS/adlink_ddsbot/blob/release-1.0/document/adlink_ddsbot_softarch.jpg)\n\n## Hardware Architecture\n\n![alt text](https://github.com/Adlink-ROS/adlink_ddsbot/blob/release-1.0/document/adlink_ddsbot_hardarch.jpg)  \nBuild your own low-cost ddsbot (~250USD)  \n[Assembling PDF] [adlink_ddsbot/document/hardware/adlink_ddsbot_hardware.pdf](https://github.com/Adlink-ROS/adlink_ddsbot/blob/release-1.0/document/hardware/adlink_ddsbot_hardware.pdf)\n\n[Arduino firmware]  \nFor UNO (motor control): adlink_ddsbot/document/arduino/motor_control/motor_control.ino  \nFor Nano (GY85 IMU): adlink_ddsbot/document/arduino/Razor_AHRS/Razor_AHRS.ino\n\n## Tutorial\n\n### System prerequisite\n\n[Desktop]\n\n* ROS 1\n  (Kinetic: \u003chttp://wiki.ros.org/kinetic/Installation/Ubuntu)\u003e\n* ROS 2 (tested on Ardent)\n* create your own catkin_ws\n  (\u003chttp://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment)\u003e\n* Install required dependencies:  \n  `$ sudo apt-get install git ros-kinetic-navigation ros-kinetic-geographic-msgs ros-kinetic-slam-gmapping ros-kinetic-mrpt-slam ros-kinetic-mrpt-icp-slam-2d ros-kinetic-robot-localization ros-kinetic-stage* -y`\n* `git clone adlink_ddsbot to your catkin_ws/src and compile`\n\n### Simulation (stage, two computers)\n\n1. Check the hostname (should be unique in the network)\n2. Check the system time synchronization ($ sudo ntpdate IP_TARGET)\n3. Open a terminal (remember to source ros2 \u0026 ros1 setup.bash)\n4. `$ export HOSTNAME`\n5. `$ roslaunch adlink_ddsbot Swarm_Sim_Stage.launch`\n6. `$ ros2 run ros1_bridge parameter_bridge`\n7. Repeat the same steps on another computer/robot\n    (both should be in the same network)\n8. Then, each robot can be aware of all the others shown on the rviz.\n\n### Real robot (raspberryPi3)\n\n[Image files]\nDownload pre-built image for Pi3 (ubuntu mate 16.04, ros 1\u00262, 13GB)  \nlink: \u003chttps://drive.google.com/open?id=0BxI3PXhTd_3HWmh2c2VSbWFNRHM\u003e  \nExtract the file from .gz file:\n`$ gunzip -c ADLINK_DDSBot_Pi3_20171002.img.gz \u003e ADLINK_DDSBot_Pi3_20171002.img`\nBurn image file to SD card\n\n[Setup steps]\n\n1. Connect Pi3 with your desktop by either ethernet cable or debug cable\n2. Power-on and login: (passward is: adlinkros)\n   * hdmi display: you can see the ADLink logo on the desktop\n   * ethernet: the default id address of provided image is 10.0.0.1 (`$ ssh pi@10.0.0.1`)\n   * debug cable: enter the password\n3. Change robot's hostname and connect to local network\n4. Synchronize the system time through AP server/specific computer\n    (`$ sudo ntpdate IP_ADDRESS`)\n5. Change the ROS 1 multi-machines variables in .bashrc\n    (for each robot, it has own roscore)\n6. For Single robot test: `$ roslaunch adlink_ddsbot Adlink_DDSBot_Nav_Single.launch`\n7. For Swarm robots demo:\n   * `$ roslaunch adlink_ddsbot Adlink_DDSBot_Nav_Swarm.launch`\n   * `$ ros2 run ros1_bridge parameter_bridge`\n8. Using remote computer to initial \u0026 set goal for the ddsbot through RVIZ\n9. Do the same thing on another ddsbots (in the same network),\n    once the ros1_bridge has been executed, all others ddsbots can be visualized on RVIZ.\n\n[Node Graph]\n![alt text](https://github.com/Adlink-ROS/adlink_ddsbot/blob/release-1.0/document/adlink_ddsbot_nodes.png)\n","funding_links":[],"categories":["Packages"],"sub_categories":["Demonstrations"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAdlink-ROS%2Fadlink_ddsbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAdlink-ROS%2Fadlink_ddsbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAdlink-ROS%2Fadlink_ddsbot/lists"}