Skip to content

Commit a35eec3

Browse files
committed
Update README.md
Signed-off-by: Gregory Mermet <g.mermet@ez-wheel.com>
1 parent e87b752 commit a35eec3

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

README.md

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ This package has been tested on ROS Melodic and Noetic, it contains ROS nodes to
88
| ------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
99
| [SWD® Core](https://www.ez-wheel.com/en/safety-gear-motor) <br />Safety gear motor | [SWD® 150](https://www.ez-wheel.com/en/swd-150-safety-wheel-drive) <br />Safety wheel drive | [SWD® StarterKit](https://www.ez-wheel.com/en/development-kit-for-agv-and-amr) <br />Development kit for AGV and AMR |
1010

11+
Users should regularly inform themselves about updates to this driver (best subscribe under "Watch").
1112
## Installation
1213

1314
This package has been tested on **x64_86** and **armhf** machines.
@@ -19,7 +20,7 @@ Some pre-built packages are available for ROS Noetic on Ubuntu 20.04 (for **x64_
1920
- `SWD firmware` (**`>= 1.0.1`**)
2021
- Ubuntu 20.04
2122
- ROS Noetic
22-
- `swd-services (>= 0.2.7)`
23+
- `swd-services` (**`>= 0.2.7`**)
2324

2425
### Ubuntu
2526

@@ -148,7 +149,7 @@ CANOpenEDSFile = /opt/ezw/usr/etc/ezw-canopen-dico/swd_core.eds
148149

149150
## Usage on your own IPC
150151

151-
As the minimal SWD® Starter Kit config files do not exist on your IPC, you can install them manually as specified above or install them via a third package.
152+
As the minimal SWD® Starter Kit config files do not exist on your IPC, you can install them manually as specified above or install them via a third package.
152153

153154
In this case, make sure you have added the ez-Wheel repository to your `/etc/apt/sources.list` as specified above.
154155

@@ -201,9 +202,9 @@ This controller drives two ez-Wheel SWD® wheels as a differential-drive robot.
201202

202203
### Parameters
203204

205+
- `baseline_m` of type **`double`**: The distance (in meters) between the 2 wheels (mandatory parameter).
204206
- `left_swd_config_file` of type **`string`**: Path to the `.ini` configuration file of the left motor (mandatory parameter).
205207
- `right_swd_config_file` of type **`string`**: Path to the `.ini` configuration file of the right motor (mandatory parameter).
206-
- `baseline_m` of type **`double`**: The distance (in meters) between the 2 wheels (mandatory parameter).
207208
- `pub_freq_hz` of type **`int`**: Frequency (in Hz) of published odometry and TFs (default `50`).
208209
- `command_timeout_ms` of type **`int`**: The delay (in milliseconds) before stopping the wheels if no command is received (default `1000`).
209210
- `base_frame` of type **`string`**: Frame ID for the moving platform, used in odometry and TFs (default `'base_link'`) (see [REP-150](https://www.ros.org/reps/rep-0105.html) for more info).
@@ -217,34 +218,38 @@ This controller drives two ez-Wheel SWD® wheels as a differential-drive robot.
217218
- `control_mode` of type **`string`**: This parameter selects the control mode of the robot, if `'Twist'` is selected, the node will subscribe to the `~cmd_vel` topic, if `'LeftRightSpeeds'` is selected, the node subscribe to `~set_speed` (default `'Twist'`).
218219
- `left_encoder_relative_error` of type **`double`**: Relative error for left wheel encoder, used to calculate variances and propagate them to calculate the uncertainties in the odometry message. Each encoder acquisition **`DIFF_LEFT_ENCODER`** is modeled as: **`DIFF_LEFT_ENCODER +/- abs(left_encoder_relative_error * DIFF_LEFT_ENCODER)`** (default `0.05` corresponding to 5% of error).
219220
- `right_encoder_relative_error` of type **`double`**: Relative error for right wheel encoder, used to calculate variances and propagate them to calculate the uncertainties in the odometry message. Each encoder acquisition **`DIFF_RIGHT_ENCODER`** is modeled as: **`DIFF_RIGHT_ENCODER +/- abs(right_encoder_relative_error * DIFF_RIGHT_ENCODER)`** (default `0.05` corresponding to 5% of error).
220-
- `fine_odometry` of type **`bool`**: Use fine odometry (default `false`). See fine_odometry.md for procedure to follow.
221221

222222
### Subscribed Topics
223223

224-
- `~cmd_vel` of type **`geometry_msgs::Twist`**: Target linear and angular velocities (when `control_mode:='Twist'`, this is the default).
225-
- `~set_speed` of type **`geometry_msgs::Point`**: Target speeds in rad/s for left (`Point.x`) and right (`Point.y`) wheels (when `control_mode:='LeftRightSpeeds'`).
226-
- `~soft_brake` of type **`std_msgs::Bool`**: Activate or release the soft brake, send `false` to release the brake, or `true` to activate it.
224+
- `/cmd_vel` of type **`geometry_msgs::Twist`**: Target linear and angular velocities (when `control_mode:='Twist'`, this is the default).
225+
- `/set_speed` of type **`geometry_msgs::Point`**: Target speeds in rad/s for left (`Point.x`) and right (`Point.y`) wheels (when `control_mode:='LeftRightSpeeds'`).
226+
- `/soft_brake` of type **`std_msgs::Bool`**: Activate or release the soft brake, send `false` to release the brake, or `true` to activate it.
227227

228228
### Published Topics
229229

230-
- `~odom` of type **`nav_msgs::Odometry`**: Odometry message based on wheels encoders, containing the pose and velocity of the robot with their's associated uncertainties. Unless disabled by the `publish_tf` parameter, TFs with the same information are also published.
231-
- `~safety` of type **`swd_ros_controllers::SafetyFunctions`**: Safety messages communicated by the wheels via CANOpen, the message includes information about Safe Torque Off (STO), Safety Limited Speed (SLS), Safe Direction Indication (forward/backward) (SDI+/-), and Safe Brake Control (SBC).
230+
- `/odom` of type **`nav_msgs::Odometry`**: Odometry message based on wheels encoders, containing the pose and velocity of the robot with their's associated uncertainties. Unless disabled by the `publish_tf` parameter, TFs with the same information are also published.
231+
- `/safety` of type **`swd_ros_controllers::SafetyFunctions`**: Safety messages communicated by the wheels via CANOpen, the message includes information about Safe Torque Off (STO), Safety Limited Speed (SLS), Safe Direction Indication (forward/backward) (SDI+/-), and Safe Brake Control (SBC).
232232

233233
## Custom message types
234234

235235
### The `swd_ros_controllers::SafetyFunctions` message
236236

237-
This message encodes the safety functions read from the SWD via CANOpen.
237+
This message provides information about CiA 402-4 CANopen safety drive functions.
238+
True if the safety drive function is enabled.
238239

239240
```
240241
Header header
241-
bool safe_torque_off
242-
bool safe_brake_control
243-
bool safety_limited_speed
244-
bool safe_direction_indication_forward
245-
bool safe_direction_indication_backward
242+
bool safe_torque_off # Safe Torque Off (STO)
243+
bool safe_brake_control # Safe Brake Control (SBC)
244+
bool safety_limited_speed # Safety Limited Speed (SLS)
245+
bool safe_direction_indication_forward # Safe Direction Indication (positive)
246+
bool safe_direction_indication_backward # Safe Direction Indication (negative)
246247
```
247248

249+
The main safe drive function is the STO whereby the immediately torque-off on the motor may be accompanied by an SBC command to close the brakes.
250+
The SLS functions cause the drive to decelerate (if required) and monitor whether the velocity is held within the defined limits.
251+
The functions SDIp and SDIn enable the motor movement only in the corresponding (positive or negative) direction.
252+
248253
## Support
249254

250255
For any questions, please [open a GitHub issue](https://github.com/ezWheelSAS/swd_ros_controllers/issues).

0 commit comments

Comments
 (0)