Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Adlink-ROS/adlink_ddsbot
The ROS 1/2 based robots swarm architecture (opensplice DDS)
https://github.com/Adlink-ROS/adlink_ddsbot
adlink-ros dds opensplice ros ros2
Last synced: 25 days ago
JSON representation
The ROS 1/2 based robots swarm architecture (opensplice DDS)
- Host: GitHub
- URL: https://github.com/Adlink-ROS/adlink_ddsbot
- Owner: Adlink-ROS
- License: apache-2.0
- Created: 2017-09-12T09:33:25.000Z (over 7 years ago)
- Default Branch: release-1.0
- Last Pushed: 2022-12-26T19:47:44.000Z (almost 2 years ago)
- Last Synced: 2024-08-04T00:03:32.057Z (4 months ago)
- Topics: adlink-ros, dds, opensplice, ros, ros2
- Language: C++
- Homepage:
- Size: 6.13 MB
- Stars: 41
- Watchers: 12
- Forks: 30
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# ADLink DDSBot (ROS 1/2 based swarm robots architecture)
## Abstract
Swarm robots using Opensplice DDS with ROS 1&2
[Official Slides]
[Youtube Video]
[![alt text](http://img.youtube.com/vi/7ZIDkLKD4Y8/0.jpg)](https://www.youtube.com/watch?v=7ZIDkLKD4Y8)## Developer & Team
HaoChih Lin ([email protected])
Chester Tseng ([email protected])
Erik Boasson ([email protected])
Ryan Chen ([email protected])ADLINK Technology, Inc
Advanced Robotic Platform Group## License
Apache 2.0
Copyright 2017 ADLINK Technology, Inc.## Software Architecture
![alt text](https://github.com/Adlink-ROS/adlink_ddsbot/blob/release-1.0/document/adlink_ddsbot_softarch.jpg)
## Hardware Architecture
![alt text](https://github.com/Adlink-ROS/adlink_ddsbot/blob/release-1.0/document/adlink_ddsbot_hardarch.jpg)
Build your own low-cost ddsbot (~250USD)
[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)[Arduino firmware]
For UNO (motor control): adlink_ddsbot/document/arduino/motor_control/motor_control.ino
For Nano (GY85 IMU): adlink_ddsbot/document/arduino/Razor_AHRS/Razor_AHRS.ino## Tutorial
### System prerequisite
[Desktop]
* ROS 1
(Kinetic:
* ROS 2 (tested on Ardent)
* create your own catkin_ws
(
* Install required dependencies:
`$ 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`
* `git clone adlink_ddsbot to your catkin_ws/src and compile`### Simulation (stage, two computers)
1. Check the hostname (should be unique in the network)
2. Check the system time synchronization ($ sudo ntpdate IP_TARGET)
3. Open a terminal (remember to source ros2 & ros1 setup.bash)
4. `$ export HOSTNAME`
5. `$ roslaunch adlink_ddsbot Swarm_Sim_Stage.launch`
6. `$ ros2 run ros1_bridge parameter_bridge`
7. Repeat the same steps on another computer/robot
(both should be in the same network)
8. Then, each robot can be aware of all the others shown on the rviz.### Real robot (raspberryPi3)
[Image files]
Download pre-built image for Pi3 (ubuntu mate 16.04, ros 1&2, 13GB)
link:
Extract the file from .gz file:
`$ gunzip -c ADLINK_DDSBot_Pi3_20171002.img.gz > ADLINK_DDSBot_Pi3_20171002.img`
Burn image file to SD card[Setup steps]
1. Connect Pi3 with your desktop by either ethernet cable or debug cable
2. Power-on and login: (passward is: adlinkros)
* hdmi display: you can see the ADLink logo on the desktop
* ethernet: the default id address of provided image is 10.0.0.1 (`$ ssh [email protected]`)
* debug cable: enter the password
3. Change robot's hostname and connect to local network
4. Synchronize the system time through AP server/specific computer
(`$ sudo ntpdate IP_ADDRESS`)
5. Change the ROS 1 multi-machines variables in .bashrc
(for each robot, it has own roscore)
6. For Single robot test: `$ roslaunch adlink_ddsbot Adlink_DDSBot_Nav_Single.launch`
7. For Swarm robots demo:
* `$ roslaunch adlink_ddsbot Adlink_DDSBot_Nav_Swarm.launch`
* `$ ros2 run ros1_bridge parameter_bridge`
8. Using remote computer to initial & set goal for the ddsbot through RVIZ
9. Do the same thing on another ddsbots (in the same network),
once the ros1_bridge has been executed, all others ddsbots can be visualized on RVIZ.[Node Graph]
![alt text](https://github.com/Adlink-ROS/adlink_ddsbot/blob/release-1.0/document/adlink_ddsbot_nodes.png)