|
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