Skip to content

Commit 4349d63

Browse files
Update README for more clear instructions (#25)
* Add more details on how to setup the logger from source, like that you will need Git, Java, and Gradle. Added the commands to install them to make things easier for the user * Added a note on how logs are viewed in SCS2 to make it more clear to the user
1 parent 64098a1 commit 4349d63

File tree

1 file changed

+65
-24
lines changed

1 file changed

+65
-24
lines changed

README.md

Lines changed: 65 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -6,45 +6,73 @@ IHMC Robot Data Logger
66
## Logger computer system requirements
77

88
- Tons of hard drive space
9-
- The logger can take 100GB/hour easily, depending on the number of variables and video streams.
9+
- The logger can take 100GB/hour easily, depending on the number of variables and video streams.
1010
- 4 GB RAM (8 GB when more than one video stream is captured)
1111
- 2.5GHz or faster Intel i7 or Xeon E3, E5 or E7
12-
- 1 + n cores, where n is the number of video streams
13-
- Capture cards to record video feeds (optional)
14-
- [Magewell Pro Capture Card](https://www.magewell.com/products/pro-capture-sdi)
15-
- BlackMagic Decklink Mini Recorder Capture Card (Deprecated)
16-
- This is deprecated because [https://github.com/ihmcrobotics/ihmc-java-decklink-capture](https://github.com/ihmcrobotics/ihmc-java-decklink-capture) only works on Ubuntu 20.04 and is no longer supported by the maintainers of this repository. And that is required to use the BlackMagic Capture Card
12+
- 1 + n cores, where n is the number of video streams
13+
- [Optional] Capture cards to record video feeds
14+
- [Magewell Pro Capture Card](https://www.magewell.com/products/pro-capture-sdi)
15+
- [Deprecated] BlackMagic Decklink Mini Recorder Capture Card
16+
- This is deprecated because [https://github.com/ihmcrobotics/ihmc-java-decklink-capture](https://github.com/ihmcrobotics/ihmc-java-decklink-capture)
17+
only works on Ubuntu 20.04 and is no longer supported by the maintainers of this repository. And that is required to use the BlackMagic Capture Card
18+
19+
---
20+
21+
## Setting up the Logger from source (Ubuntu 22.04 / Magewell)
1722

18-
## Ubuntu 22.04 (recommended)
1923
- Install Ubuntu Desktop 22.04 LTS (it's convenient to have a GUI to work with)
20-
- Make sure to install OpenSSH
24+
- Make sure to install OpenSSH
25+
- Install Git:
26+
- `sudo apt install git`
27+
- Install Java:
28+
- `sudo apt update`
29+
- `sudo apt install openjdk-17-jdk`
30+
- Install Gradle: (we will install curl to help with this)
31+
- `sudo apt install curl`
32+
- `cd ~/Downloads`
33+
- `curl -sL https://services.gradle.org/distributions/gradle-8.1.1-all.zip -o gradle.zip\`
34+
- `unzip -q gradle.zip -d gradle`
35+
- `sudo mv gradle/gradle-8.1.1/ /opt/`
36+
- `sudo ln -s /opt/gradle-8.1.1/ /opt/gradle`
37+
- `sudo ln -s /opt/gradle/bin/gradle /usr/bin/gradle`
2138
- Install the firmware for the Magewell Capture Card: [Pro Capture Linux x86 Driver](https://www.magewell.com/downloads/pro-capture#/driver/linux-x86)
22-
- Setup a workspace where ihmc-robot-data-logger is cloned: `git clone https://github.com/ihmcrobotics/ihmc-robot-data-logger.git`
23-
- Reboot the computer
39+
- Setup a workspace where ihmc-robot-data-logger is cloned:
40+
- `git clone https://github.com/ihmcrobotics/ihmc-robot-data-logger.git`
41+
- Reboot the computer for Magewell Capture Card drivers to take effect
42+
- Note: In order to capture from the camera feed you need to setup those yaml files, ensure the right capture card type is being specified when making those
43+
files
2444

2545
---
46+
2647
## Publishing and configuring the logger
2748

2849
- Navigate to where you have cloned ihmc-robot-data-logger: `cd ihmc-robot-data-logger`
2950
- From there you can use `gradle deploy`. This will show a deploy GUI which allows installation and setup of a logger on a remote computer.
30-
- This GUI allows you to select several options for the deployed logger
51+
- This GUI allows you to select several options for the deployed logger
3152

32-
### Logging to a Network volume
53+
### Logging to a Network volume
3354

34-
If you would like to log to a network volume, ~/robotLogs can be a symbolic link to a mount point. The IHMC convention is to create a RobotLogs/incoming directory on the network storage volume, auto-mount this volume using the OS's fstab, and then symlinking the "incoming" directory to be the ~/robotLogs directory
55+
If you would like to log to a network volume, ~/robotLogs can be a symbolic link to a mount point. The IHMC convention is to create a RobotLogs/incoming
56+
directory on the network storage volume, auto-mount this volume using the OS's fstab, and then symlinking the "incoming" directory to be the ~/robotLogs
57+
directory
58+
59+
### Customizing the logging location
60+
If you would like to log somewhere other than ~/robotLogs, you can change the directory using the "-d" command line flag when you launch the logger
3561

36-
### Customizing the logging location
37-
If you would like to log somewhere other than ~/robotLogs, you can change the directory using the "-d" command line flag when you launch the logger
3862
---
63+
3964
## <p style="text-align:center;">Starting the Logger</p>
4065

4166
Depending on how the logger is deployed, it can be setup to automatically start when the computer boots, or restart at the beginning of each day.
42-
To start the logger navigate to `/opt/ihmc/logger/bin/` and run `./IHMCLogger`. This will start the logger manually if you have it configured to not run on boot or restart at the beginning of each day.
67+
To start the logger navigate to `/opt/ihmc/logger/bin/` and run `./IHMCLogger`. This will start the logger manually if you have it configured to not run on boot
68+
or restart at the beginning of each day.
4369
The Logger can also be run as a service, to see if thats the case this command `ps aux | grep java` tells you if java processes are running.
4470
The service should be `ihmc-robot-data-logger.service`.
4571

46-
Before starting the logger, you need to setup the camera file, and the host file. These are important to capturing video feeds, as well as logging from specific hosts.
47-
The steps below walk through how to set those two files up. They should be setup on the remote computer that is doing the logging. This is why we recommend using Ubuntu Desktop because setting these up are much simpler if you have access to the GUI.
72+
Before starting the logger, you need to setup the camera file, and the host file. These are important to capturing video feeds, as well as logging from specific
73+
hosts.
74+
The steps below walk through how to set those two files up. They should be setup on the remote computer that is doing the logging. This is why we recommend
75+
using Ubuntu Desktop because setting these up are much simpler if you have access to the GUI.
4876

4977
---
5078

@@ -66,20 +94,23 @@ cameras:
6694
name: Another-User-Friendly-Name
6795
identifier: /stream_topic
6896
```
69-
97+
7098
This adds two cameras to the logger, a capture card and a stream. The following fields are needed for each camera:
7199

72100
- type: CAPTURE_CARD_MAGEWELL or CAPTURE_CARD for capture cards or NETWORK_STREAM for streaming over DDS/RTPS
73101
- camera_id: An unique id from 0 to 127 to refer to the camera in the static hosts section
74102
- name: A user friendly name used to name the file of the recorded video when logging
75-
- identifier: For capture cards, this is the numeric id of the device, for NETWORK_STREAM this is the DDS topic name
103+
- identifier: For capture cards, this is the numeric id of the device, for NETWORK_STREAM this is the DDS topic name
76104

77105
---
106+
78107
## Setting up hosts
79108

80-
This file contains the hosts that will be logged when a server starts on that device. It is possible to configure the cameras from the `gradle deploy` but since they get changes often its important to know how to change it manually.
109+
This file contains the hosts that will be logged when a server starts on that device. It is possible to configure the cameras from the `gradle deploy` but since
110+
they get changes often its important to know how to change it manually.
81111

82112
Create a new file `~/.ihmc/ControllerHosts.yaml`. A basic setup looks like this:
113+
83114
```
84115
disableAutoDiscovery: false
85116
hosts:
@@ -90,7 +121,17 @@ hosts:
90121
cameras: [1, 2]
91122
```
92123

93-
This adds the host `10.0.0.10` without cameras and the host `10.0.0.11` with two cameras with camera_id 1 and 2.
124+
This adds the host `10.0.0.10` without cameras and the host `10.0.0.11` with two cameras with camera_id 1 and 2.
125+
126+
Alternatively, you can start `SCSVisualizer` from `ihmc-robot-data-visualizer` and add hosts using the GUI. After you close the visualizer, the hosts you added
127+
will be saved `~/.ihmc/ControllerHosts.yaml`. You can copy that file to the logger if it is on a different computer.
128+
129+
---
130+
131+
## Viewing Logs in SCS2
94132

95-
Alternatively, you can start `SCSVisualizer` from `ihmc-robot-data-visualizer` and add hosts using the GUI. After you close the visualizer, the hosts you added will be saved `~/.ihmc/ControllerHosts.yaml`. You can copy that file to the logger if it is on a different computer.
96-
133+
Simulation Construction Set 2 (SCS2) is used to view logs. This repository lives
134+
at [Simulation Construction Set 2](https://github.com/ihmcrobotics/simulation-construction-set-2).
135+
The Blackmagic capture cards will work with any version of SCS2. However, the Magewell capture card requires a newer release of SCS2. If videos are recorded in
136+
logs with Magewell, please use [release 17-0.27.3](https://github.com/ihmcrobotics/simulation-construction-set-2/releases/tag/0.27.3-java-17)
137+
or any release after this one. The 17-0.27.3 release is when support for Magewell was added to SCS2.

0 commit comments

Comments
 (0)