|
1 | 1 | # Technical requirements
|
2 | 2 |
|
3 |
| -In the https://github.com/ros-mobile-robots organization on GitHub |
4 |
| -are the required ROS packages to set up a differential drive robot. |
5 |
| -One of the main software repositories is https://github.com/ros-mobile-robots/diffbot. |
6 |
| -It includes packages for simulation and the configurations and software to operate a real |
7 |
| -robot and interact with it from a development PC. For the hardware, you can build your |
8 |
| -own two- or four-wheeled differential drive robot similar to the one present in the |
9 |
| -`diffbot_description` package or 3D print a more stable Remo robot with the stl files in |
10 |
| -https://github.com/ros-mobile-robots/remo_description. |
11 |
| - |
12 |
| -The next two sections describe the technical requirements for the software and hardware. |
| 3 | +To get started with building a ROS-based mobile robot, this section outlines the essential software and hardware you'll need. We'll explore key resources from the https://github.com/ros-mobile-robots organization on GitHub and provide options for building your own robot or using a pre-designed platform. Later sections will delve deeper into specific software installation and hardware components. |
13 | 4 |
|
14 | 5 | !!! info
|
15 |
| - This technical requirements page is here to give you an overview of what is required to get your robot up |
16 |
| - and running. You can already follow the steps in practice but they will be also |
17 |
| - mentioned in later sections (in more detail) when they are really needed. |
| 6 | + This technical requirements page is here to give you an overview of what is required to get your robot up and running. |
| 7 | + You can already follow the steps in practice but they will be also mentioned in later sections (in more detail) when they are really needed. |
18 | 8 |
|
19 | 9 | ## Software requirements
|
20 | 10 |
|
| 11 | +One of the main software repositories is https://github.com/ros-mobile-robots/diffbot. |
| 12 | +It includes packages for simulation and the configurations and software to operate a real |
| 13 | +robot and interact with it from a development PC (or dev machine). |
| 14 | + |
21 | 15 | The following sections give an overview about which software will be used:
|
22 | 16 |
|
23 | 17 | - [Operating Systems](#operating-system)
|
@@ -84,97 +78,18 @@ same local network and to enable the ssh protocol, to connect from the developme
|
84 | 78 | sudo apt install openssh-server
|
85 | 79 | ```
|
86 | 80 |
|
87 |
| -### Hardware Interface |
88 |
| - |
89 |
| -Another interface setup that is needed to work with the microcontroller, is to add your |
90 |
| -user to the `dialout` group on both machines, the SBC and the development PC. This can |
91 |
| -be done with the following command, followed by a system reboot: |
92 |
| - |
93 |
| -```console |
94 |
| -sudo adduser <username> dialout |
95 |
| -``` |
96 |
| - |
97 |
| -### Source Dependencies |
98 |
| - |
99 |
| -When you clone the diffbot repository in a new catkin workspace, you will find two |
100 |
| -YAML files, `diffbot_dev.repos` and `remo_robot.repos`, that list required source |
101 |
| -dependencies together with their version control type, the repository address, and a |
102 |
| -relative path where these dependencies are cloned. `remo_robot.repos` is here to clone |
103 |
| -source dependencies on the real robot. |
104 |
| - |
105 |
| -To make use of such YAML files and clone the listed dependencies, we use the commands |
106 |
| -from [`vcstool`](http://wiki.ros.org/vcstool), which replaces |
107 |
| -[`wstool`](http://wiki.ros.org/wstool): |
108 |
| - |
109 |
| -1. Install vcstool using the command: |
110 |
| - |
111 |
| - ```console |
112 |
| - sudo apt install python3-vcstool |
113 |
| - ``` |
114 |
| - |
115 |
| -2. In a new catkin workspace, clone the diffbot repository inside the src folder: |
116 |
| - |
117 |
| - ```console |
118 |
| - ros_ws/src$ git clone https://github.com/ros-mobile-robots/diffbot.git |
119 |
| - ``` |
120 |
| - |
121 |
| - for a specific tag (e.g. 1.0.0) you can use the following command: |
122 |
| - |
123 |
| - ```console |
124 |
| - ros_ws/src$ git clone --depth 1 --branch 1.0.0 https://github.com/ros-mobile-robots/diffbot.git |
125 |
| - ``` |
126 |
| - |
127 |
| -3. Make sure to execute the `vcs import` command from the root of the catkin |
128 |
| -workspace and pipe in the `diffbot_dev.repos` or `remo_robot.repos` |
129 |
| -YAML file, depending on where you execute the command, either the development |
130 |
| -PC or the SBC of Remo to clone the listed dependencies: |
131 |
| - |
132 |
| - ```console |
133 |
| - vcs import < src/diffbot/diffbot_dev.repos |
134 |
| - ``` |
135 |
| - |
136 |
| -4. Execute the next command on the SBC of the robot: |
137 |
| - |
138 |
| - ```console |
139 |
| - vcs import < src/diffbot/remo_robot.repos |
140 |
| - ``` |
141 |
| - |
142 |
| -### Binary Dependencies |
143 |
| - |
144 |
| -After obtaining the source dependencies with `vcstool`, we can compile the workspace. |
145 |
| -To successfully compile the packages of the repository, binary dependencies must be |
146 |
| -installed. As the required dependencies are specified in each ROS package's `package.xml`, |
147 |
| -the rosdep command can install the required ROS packages from the Ubuntu repositories: |
148 |
| - |
149 |
| -```console |
150 |
| -rosdep install --from-paths src --ignore-src -r -y |
151 |
| -``` |
152 |
| - |
153 |
| -### Build ROS Workspace |
154 |
| - |
155 |
| -Finally, the workspaces on the development machine and the SBC of the robot need to |
156 |
| -be built, either using `catkin_make` or catkin tools. `catkin_make` comes pre-installed with ROS. |
157 |
| - |
158 |
| -=== "catkin tools" |
159 |
| - |
160 |
| - ```console |
161 |
| - catkin build |
162 |
| - ``` |
163 |
| - |
164 |
| -=== "`catkin_make`" |
165 |
| - |
166 |
| - ```console |
167 |
| - catkin_make |
168 |
| - ``` |
169 |
| - |
170 |
| - |
171 | 81 | ## Hardware requirements
|
172 | 82 |
|
| 83 | +For the hardware, you can build your |
| 84 | +own two- or four-wheeled differential drive robot similar to the one present in the |
| 85 | +`diffbot_description` package or 3D print a more stable Remo robot with the stl files in |
| 86 | +https://github.com/ros-mobile-robots/remo_description. |
| 87 | + |
173 | 88 | The repository at https://github.com/ros-mobile-robots/remo_description contains the
|
174 | 89 | robot description of Remo. Remo is a modular mobile robot platform, which is based on
|
175 | 90 | NVIDIA's JetBot. The currently available parts can be 3D printed using the provided
|
176 | 91 | stl files in the [`remo_description`](https://github.com/ros-mobile-robots/remo_description) repository.
|
177 | 92 | To do this, you either need a 3D printer with a recommended build volume of 15x15x15 cm or to use
|
178 | 93 | a local or online 3D print service. Further details are found in [hardware setup](hardware_setup/3D_print.md).
|
179 | 94 |
|
180 |
| -On the following [components](#components) page you find a bill of materials and more details about each part. |
| 95 | +On the following [components](#components) page you find a bill of materials and more details about each part. |
0 commit comments