You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+12-14
Original file line number
Diff line number
Diff line change
@@ -31,8 +31,6 @@ In addition, the single actuator fixed directly on the back of the hand barely a
31
31
>This `README` is basically a mirror of the [_qb SoftHand_ ROS wiki](http://wiki.ros.org/Robots/qbhand) and it is supplied only for offline documentation. Please, refer to the online wiki whenever you can; it is our main and most updated reference for _qb SoftHand_ ROS related application.
32
32
33
33
## Installation
34
-
>At the moment the _qb SoftHand_ related ROS packages have been tested only on Ubuntu Xenial 16.04. We are currently working to improve the compatibility with the major distributions of linux, this requires time though. We apologize for the inconvenience and we will be glad if you report any problem encountered with not yet supported distros.
35
-
36
34
### Requirements
37
35
If you have never set it up, you probably need to add your linux user to the `dialout` group to grant right access to the serial port resources. To do so, just open a terminal and execute the following command:
38
36
```
@@ -99,7 +97,7 @@ The Communication Handler Node has no parameters to be set, therefore it is alwa
On start, it scans the serial communication resources connected to you system and shows a list of the devices it has found. By default it never scans again for new devices, apart from asking it explicitly during the initialization of a control Node.
100
+
On start, it scans the serial communication resources connected to your system and shows a list of the devices it has found. By default, it never scans again for new devices, apart from asking it explicitly during the initialization of a control Node.
103
101
104
102
This is a simple example when starting the Communication Handler with two _qbrobotics®_ devices connected on two distinct USB ports:
105
103
```
@@ -124,19 +122,19 @@ Regardless the control mode chosen for the given application, and apart form a c
For the sake of simplicity, we are going to cover all the control modes for a single _qb SoftHand_, but it is just a matter of putting things together and set the launch file parameters properly to control several devices together ([qb_chain_control](http://wiki.ros.org/qb_hand_control) is dedicated for such a scope).
125
+
For the sake of simplicity, we are going to cover all the control modes for a single _qb SoftHand_, but it is just a matter of putting things together and set the launch file parameters properly to control several devices together ([qb_chain_control](http://wiki.ros.org/qb_chain_control) is dedicated for such a scope).
128
126
129
-
All the control modes are initialized in the same manner but with distinct command line arguments. The default single-device control Node which brings everything up and simply waits for commands on the abovementioned Action topic is the following:
127
+
All the control modes are initialized in the same manner but with distinct command line arguments. The default single-device control Node which brings everything up and simply waits for commands on the above-mentioned Action topic is the following:
-`activation_on_initialization [false]`: Activates the motor at startup (the device will not move since the first command reference is received).
133
+
-`activate_on_initialization [false]`: Activates the motor at startup (the device will not move since the first command reference is received).
136
134
-`device_id [1]`: Each device has its own ID, you need to set the one of the actual device connect to your system.
137
135
-`standalone [false]`: Starts the Communication Handler together with the control Node. If you set this to `false` (or remove it since the default value is `false`), you need to launch the Communication Handler in a separate terminal.
138
136
139
-
It is worth noting that the activation of the motor can be postponed to improved safety if you are not aware of the state of the system at startup. To do so just set `activation_on_initialization:=false` (or remove it since the default value is `false`) and make a call to the Communication Handler `activate_motors` Service, when your system is ready, e.g. as follows:
137
+
It is worth noting that the activation of the motor can be postponed to improved safety if you are not aware of the state of the system at startup. To do so just set `activate_on_initialization:=false` (or remove it since the default value is `false`) and make a call to the Communication Handler `activate_motors` Service, when your system is ready, e.g. as follows:
-`control_duration [0.01]`: The duration of the control loop expressed in seconds.
146
144
-`get_currents [true]`: Choose whether or not to retrieve current measurements from the device.
147
145
-`get_positions [true]`: Choose whether or not to retrieve position measurements from the device.
148
-
-`get_distinct_packages [false]`: Choose whether or not to retrieve current and position measurements from the device in two distinct packages.
146
+
-`get_distinct_packages [true]`: Choose whether or not to retrieve current and position measurements from the device in two distinct packages.
149
147
-`max_repeats [3]`: The maximum number of consecutive repetitions to mark retrieved data as corrupted.
150
148
-`set_commands [true]`: Choose whether or not to send command positions to the device.
151
-
-`set_commands_async [false]`: Choose whether or not to send commands without waiting for ack.
152
-
-`use_rviz [true]`: Choose whether or not to use rviz. If enabled you should see a virtual hand on screen performing a similar behavior.
149
+
-`set_commands_async [true]`: Choose whether or not to send commands without waiting for ack.
150
+
-`use_rviz [false]`: Choose whether or not to use rviz. If enabled you should see a virtual hand on screen performing a similar behavior.
153
151
154
-
>Be aware that the _qb SoftHand_ is desensorized and therefore it is not possible to know exactly the position of each finger: the screen visualization is just the result of an estimation of the closure value and may differ form the real configuration of your _qb SoftHand_ (e.g. when grasping an object).
152
+
>Be aware that the _qb SoftHand_ is desensorized and therefore it is not possible to know exactly the position of each finger: the screen visualization is just the result of an estimation of the closure value and may differ from the real configuration of your _qb SoftHand_ (e.g. when grasping an object).
155
153
156
154
The followings are particular control modes which are enabled with few parameters, but the concepts of this paragraph hold for all of them.
157
155
@@ -178,7 +176,7 @@ To start this mode just add `use_waypoints:=true` to the general `roslaunch` com
178
176
```
179
177
where `robot_name` and `robot_package` are two additional launch file arguments.
180
178
181
-
######Customization
179
+
##### Customization
182
180
You can modify the waypoint trajectory to replicate the behavior you want: either change the `<robot_package>_control/config/<robot_name>_waypoints.yaml` or add another custom application-specific file in the `config` directory. In the second case you need to set the argument `robot_name` properly when launching the command from the terminal.
183
181
184
182
The waypoint configuration is as follows:
@@ -216,7 +214,7 @@ waypoints:
216
214
#### 3. API Control
217
215
If you need a complex (i.e. real) control application, e.g. the _qb SoftHand_ is mounted on a robot which uses computer vision aid to grasp objects, the previous two control modes don't really help much. What we provide for real applications is the full ROS libraries to manage and control the _qb SoftHand_.
218
216
219
-
You have to dig into the [qb_hand](http://wiki.ros.org/qb_hand) package documentation and find what better suite for your needs, e.g. extend the `qbDeviceControl` class provided, or even redesign some of its parts by following an approach similar to ours.
217
+
You have to dig into the [qb_hand](http://wiki.ros.org/qb_hand) package documentation and find what better suits for your needs, e.g. extend the `qbDeviceControl` class provided, or even redesign some of its parts by following an approach similar to ours.
220
218
221
219
>Our recommendation is to use as much as possible our resources, classes and macros to help you while developing your application. Don't reinvent the wheel!
Copy file name to clipboardexpand all lines: qb_hand_control/launch/control.launch
+3-3
Original file line number
Diff line number
Diff line change
@@ -13,17 +13,17 @@
13
13
<!-- read/write settings -->
14
14
<argname="get_currents"default="true"doc="Choose whether or not to retrieve current measurements from the device."/>
15
15
<argname="get_positions"default="true"doc="Choose whether or not to retrieve position measurements from the device."/>
16
-
<argname="get_distinct_packages"default="false"doc="Choose whether or not to retrieve current and position measurements from the device in two distinct packages."/>
16
+
<argname="get_distinct_packages"default="true"doc="Choose whether or not to retrieve current and position measurements from the device in two distinct packages."/>
17
17
<argname="max_repeats"default="3"doc="The maximum number of consecutive repetitions to mark retrieved data as corrupted."/>
18
18
<argname="set_commands"default="true"doc="Choose whether or not to send command positions to the device."/>
19
-
<argname="set_commands_async"default="false"doc="Choose whether or not to send commands without waiting for ack."/>
19
+
<argname="set_commands_async"default="true"doc="Choose whether or not to send commands without waiting for ack."/>
20
20
<!-- initialization settings -->
21
21
<argname="activate_on_initialization"default="false"doc="Choose whether or not to activate the motors on node startup."/>
22
22
<argname="rescan_on_initialization"default="false"doc="Choose whether or not to rescan the serial ports on node startup."/>
23
23
<!-- launch settings -->
24
24
<argname="standalone"default="false"doc="Choose whether or not to start the Communication Handler."/>
25
25
<argname="use_controller_gui"default="false"doc="Choose whether or not to use the controller GUI."/>
26
-
<argname="use_rviz"default="true"doc="Choose whether or not to use rviz."/>
26
+
<argname="use_rviz"default="false"doc="Choose whether or not to use rviz."/>
27
27
<argname="use_waypoints"default="false"doc="Choose whether or not to use the waypoint references."/>
0 commit comments