Skip to content

Commit 5a10015

Browse files
committed
Add technical requirements and refactor nav
1 parent 573428b commit 5a10015

File tree

2 files changed

+116
-1
lines changed

2 files changed

+116
-1
lines changed

docs/technical_requirements.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Technical requirements
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.
13+
14+
## Software requirements
15+
16+
For the development PC, you should have ROS Noetic installed on Ubuntu 20.04
17+
(https://releases.ubuntu.com/20.04/). On the Raspberry Pi 4 B Single-
18+
Board Computer (SBC) that is mounted on Remo, we use Ubuntu Mate 20.04 for arm64
19+
architecture (https://ubuntu-mate.org/download/arm64/focal/). To clone
20+
large stl files from the Git repository we use git-lfs. On both Ubuntu flavors it needs
21+
to be installed with the following terminal command:
22+
23+
```console
24+
sudo apt install git-lfs
25+
```
26+
27+
On both the development PC and the SBC of the robot, you need a connection to the
28+
same local network and to enable the ssh protocol, to connect from the development PC
29+
(client) to the robot, which is running an open-ssh server. Install it on Ubuntu Mate
30+
20.04 with the following:
31+
32+
```console
33+
sudo apt install openssh-server
34+
```
35+
36+
Another interface setup that is needed to work with the microcontroller, is to add your
37+
user to the `dialout` group on both machines, the SBC and the development PC. This can
38+
be done with the following command, followed by a system reboot:
39+
40+
```console
41+
sudo adduser <username> dialout
42+
```
43+
44+
When you clone the diffbot repository in a new catkin workspace, you will find two
45+
YAML files, `diffbot_dev.repos` and `remo_robot.repos`, that list required source
46+
dependencies together with their version control type, the repository address, and a
47+
relative path where these dependencies are cloned. `remo_robot.repos` is here to clone
48+
source dependencies on the real robot.
49+
50+
To make use of such YAML files and clone the listed dependencies, we use the commands
51+
from [`vcstool`](http://wiki.ros.org/vcstool), which replaces
52+
[`wstool`](http://wiki.ros.org/wstool):
53+
54+
1. In a new catkin workspace, clone the diffbot repository inside the src folder:
55+
56+
```console
57+
ros_ws/src$ git clone https://github.com/ros-mobile-robots/diffbot.git
58+
```
59+
60+
for a specific tag (e.g. 1.0.0) you can use the following command:
61+
62+
```console
63+
ros_ws/src$ git clone --depth 1 --branch 1.0.0 https://github.com/ros-mobile-robots/diffbot.git
64+
```
65+
66+
2. Make sure to execute the `vcs import` command from the root of the catkin
67+
workspace and pipe in the `diffbot_dev.repos` or `remo_robot.repos`
68+
YAML file, depending on where you execute the command, either the development
69+
PC or the SBC of Remo to clone the listed dependencies:
70+
71+
```console
72+
vcs import < src/diffbot/diffbot_dev.repos
73+
```
74+
75+
3. Execute the next command on the SBC of the robot:
76+
77+
```console
78+
vcs import < src/diffbot/remo_robot.repos
79+
```
80+
81+
After obtaining the source dependencies with `vcstool`, we can compile the workspace.
82+
To successfully compile the packages of the repository, binary dependencies must be
83+
installed. As the required dependencies are specified in each ROS package's `package.xml`,
84+
the rosdep command can install the required ROS packages from the Ubuntu repositories:
85+
86+
```console
87+
rosdep install --from-paths src --ignore-src -r -y
88+
```
89+
90+
Finally, the workspaces on the development machine and the SBC of the robot need to
91+
be built, either using `catkin_make` or catkin tools. `catkin_make` comes pre-installed with ROS.
92+
93+
=== "catkin tools"
94+
95+
```console
96+
catkin build
97+
```
98+
99+
=== "`catkin_make`"
100+
101+
```console
102+
catkin_make
103+
```
104+
105+
106+
## Hardware requirements
107+
108+
The repository at https://github.com/ros-mobile-robots/remo_description contains the
109+
robot description of Remo. Remo is a modular mobile robot platform, which is based on
110+
NVIDIA's JetBot. The currently available parts can be 3D printed using the provided
111+
stl files in the [`remo_description`](https://github.com/ros-mobile-robots/remo_description) repository.
112+
To do this, you either need a 3D printer with a recommended build volume of 15x15x15 cm or to use
113+
a local or online 3D print service. Further details are found in [hardware setup](hardware_setup/3D_print.md).

mkdocs.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,9 @@ plugins:
7979

8080
nav:
8181
- Home: index.md
82-
- Components: components.md
82+
- Getting Started:
83+
- Technical Requirements: technical_requirements.md
84+
- Components: components.md
8385
- Robotics Theory:
8486
- theory/index.md
8587
- Preliminaries:

0 commit comments

Comments
 (0)