Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update YarpRobotLoggerDevice documentation #472

Merged
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ All notable changes to this project are documented in this file.
`System::ITaskControlMode`, `TSID::TSIDLinearTask` and `IK::IKLinearTask` classes (https://github.com/ami-iit/bipedal-locomotion-framework/pull/480)
- The joint torques is now correctly retrieved in QPTSID class (https://github.com/ami-iit/bipedal-locomotion-framework/pull/482)
- The motor velocity and positions are now returned in rad/s and rad (https://github.com/ami-iit/bipedal-locomotion-framework/pull/489)
- Fix `YarpRobotLoggerDevice` documentation (https://github.com/ami-iit/bipedal-locomotion-framework/pull/472)

## [0.5.0] - 2021-11-30
### Added
Expand Down
81 changes: 46 additions & 35 deletions devices/YarpRobotLoggerDevice/README.md
Original file line number Diff line number Diff line change
@@ -1,47 +1,58 @@
### iCubGenova04 strain2 FT-IMU logger
# YARPRobotLoggerDevice

A logger device based on `YarpSensorBridge` and `matioCpp` to record dataset from strain2 sensor boards mounted on the iCubGenova04 robot.
The **YARPRobotLoggerDevice** is a YARP device based on `YarpSensorBridge` and `matioCpp` to record dataset from a YARP-based robot.



### Launching
## :running: How to use the device

- Launch yarprobotinterface on the robot with `icub_wbd_inertials.xml`
lrapetti marked this conversation as resolved.
Show resolved Hide resolved
- Launch `yarprobotinterface` on the robot.

```
yarprobotinterface --config icub_wbd_inertials.xml
```
Depending on your logger configuration file and on the data you want to collect you should run the main `yarprobotinterface` with a different option. In order to use the [defaul logger configuration files](./app/robots), use the following commands:
- **iCubGenova04**

launch the `yarprobotinterface` with the `root_imu` device on the robot head
```
yarprobotinterface --config icub_wbd_inertials.xml
```
- **iCubGazeboV3**

- Launch the FT-IMU logger device,
open the robot model in gazebo and launch `whole-body-dynamics`
```
YARP_ROBOT_NAME=iCubGazeboV3 yarprobotinterface --config launch-wholebodydynamics.xml
```
in case you started gazebo with the real-time clock option (`gazebo -slibgazebo_yarp_clock.so`) add `YARP_CLOCK=/clock` to the previous command.
```
YARP_CLOCK=/clock YARP_ROBOT_NAME=iCubGazeboV3 yarprobotinterface --config launch-wholebodydynamics.xml
```

- Launch the logger device.

In order to use the [defaul logger configuration files](./app/robots), set the `YARP_ROBOT_NAME` environment variable and launch the `yarprobotinterface` as follow
```
YARP_ROBOT_NAME=iCubGenova04 yarprobotinterface --config launch-ft-imu-logger.xml
yarprobotinterface --config launch-yarp-robot-logger.xml
```

- Press Ctrl+c to close the device, and the dataset is stored as the device is closed.

Each dataset contains,

- a `time` vector with the receive time stamps.
- a struct for each strain-2 sensor attached on the robot (`l_foot_ft_imu`, `r_foot_ft_imu`, `r_leg_ft_imu`, `l_leg_ft_imu`) with each struct containing the corresponding FT sensor measurement, accelerometer, gyroscope and orientation sensor measurements.

Associated sensors,
- `l_leg_ft_imu`
- FT: `l_leg_ft_sensor`
- acc: `l_upper_leg_ft_acc_3b12`
- gyro: `l_upper_leg_ft_gyro_3b12`
- orientation: `l_upper_leg_ft_eul_3b12`
- `l_foot_ft_imu`
- FT: `l_foot_ft_sensor`
- acc: `l_foot_ft_acc_3b13`
- gyro: `l_foot_ft_gyro_3b13`
- orientation: `l_foot_ft_eul_3b13`
- `r_leg_ft_imu`
- FT: `r_leg_ft_sensor`
- acc: `r_upper_leg_ft_acc_3b11`
- gyro: `r_upper_leg_ft_gyro_3b11`
- orientation: `r_upper_leg_ft_eul_3b11`
- `r_foot_ft_imu`
- FT: `r_foot_ft_sensor`
- acc: `r_foot_ft_acc_3b14`
- gyro: `r_foot_ft_gyro_3b14`
- orientation: `r_foot_ft_eul_3b14`
## 💾 Data

Depending on the configuration file, each dataset can contain:
- `time` vector with the YARP clock time stamps.
- `joint_state` that containins
- `joints`: name of the joints
- `joint_positions`
- `joint_velocities`
- `joint_torques`
- `Motor_state` that contains
- `motor_currents`
- `motor_velocities`
- `motor_positions`
- `PID`
- `Motor_PWM`
- `Accelerometer` struct containing data for each selected source.
- `CartesianWrench` struct containing data for each selected source.
- `FT` struct containing data for each selected source.
- `Gyros` struct containing data for each selected source.
- `Orientation` struct containing data for each selected source as roll-pitch-yaw euler angles.