Project files
- config1 file
- launch2 files
- pics19 files
- step6 files
- urdf9 files
- CMakeLists.txt1 KB
- LICENSE11 KB
- package.xml1 KB
- Readme.md22 KB
Readme.md
Machine-translated by Robotheca from the original in Japanese (opens in a new tab). License: Apache-2.0 (opens in a new tab).
fcs4hand2310
Overview
This is a hand that uses four Futaba industrial servos, command-type servos (opens in a new tab).
The link members are intended to be made with a 3D printer. (Please make use of the data in the step folder.)
The hardware_fcs (opens in a new tab) is used to control it with ros2_control.
Launch files and configuration files are provided to control each joint angle with joint_trajectory_controller and to publish the current angles with joint_state_broadcaster.
Operation has been verified on Humble.
Parts List
TTL type
| Part name | Manufacturer | Model number | Quantity | Notes |
|---|---|---|---|---|
| Servo module | Futaba | 00400021-3 ROBOT SERVO RS304MDFF FUTABA (opens in a new tab) or 00400020-3 ROBOT SERVO RS303MRFF (opens in a new tab) | 4 | |
| Hub | Futaba | BA2082 TB-RV71EH-7.4V/3W (opens in a new tab) | 1 | Beware of similar model numbers. Use the one ending in "3W". |
| USB adapter | Futaba | 00400070-1 CONVERTER RSC-U485 JPN (opens in a new tab) | 1 | Used as a set with the TB-RV71EH-7.4V/3W (no substitute possible) |
| Power cable (hub side) | Futaba | BC0079 TB-RV71EH POWER CABLE (opens in a new tab) | 1 | Substitutable as long as it connects |
| EH 4-pin connector | JST | EHR-4 (opens in a new tab) | 4 | Add one more if you insert a termination resistor. |
| EH contacts | JST | (as needed) (opens in a new tab) | 12 | Servo modules generally have 3 pins, so these replace them with the hub's 4-pin connectors. Add two more if you insert termination resistors. |
| Motor power supply | (as needed) | (as needed) | 1 | Servo modules are rated at 4.8โ7.2 [V]; current capacity is unknown. |
| Power cable (supply side) | (custom made) | (custom made) | 1 | |
| Tapping screws | (as needed) | (M2 tapping 10 mm) | 34 | |
| Double-sided tape | (as needed) | (thin type) | (as needed) | Double-sided tape is used to fix the servo modules to the link parts. |
| Link parts | (as needed) | (3D print those in the step directory) | 1 each |
Work Overview
- Replace the connector of each servo module with EHR-4
- Screw the link members to the servo horns
- Attach the servo modules to the link members with double-sided tape
- Screw down the servo module holders at the base
- Make the power cables (hub side, power supply side)
- Wire connections, ID programming, operation check
Precautions
- The section from the USB adapter to the hub is RS-485, so it may be reassuring to add termination resistors at both ends.
RS-485 Type
Compared with the TTL type, RS-485 communication is more reliable, but the amount of work increases. In particular, if you wire the DF11 4-pin connector incorrectly, the consequences could be disastrous and dangerous.
- Change the servo modules to ones with the same external shape but RS-485 type (RS302CD or RS305CR) (opens in a new tab)
- Procure four additional BS3397 RS30x BOTTOM CASE-SHAFT (opens in a new tab) shaft-equipped bottom cases
- Procure one additional set of BS0168 RS2xx/RS3xx FREE HORN SET (opens in a new tab) free horns (5-piece set)
- Change the hubs to a two-piece set of โBA2083 TB-EH31DF-100 or BA2084 TB-EH31DF-200โ and โBA2085 TB DF31DF-100โ (opens in a new tab)
- Remove the power cable (hub side)
- Make a custom power cable (2 wires, from the power supply side to DF11-4, VCC, GND)
- Make a custom communication conversion cable (3 wires, converting EHR-4 to DF11-4, D+, D-, GND)
| ้จๅๅ | ใกใผใซใผๅ | ๅ็ช | ๆฐ้ | ๅ่ |
|---|---|---|---|---|
| Servo module | Futaba | 00400038-1 ROBOT SERVO RS302CDF3 FUTABA (opens in a new tab) or 00400065-3 RS305CR (opens in a new tab) | 4 | |
| Bottom case with shaft | Futaba | BS3397 RS30x BOTTOM CASE-SHAFT (opens in a new tab) | 4 | |
| Free horn | Futaba | BS0168 RS2xx/RS3xx FREE HORN SET (opens in a new tab) | 1 | Set of 5 |
| Hub (root side) | Futaba | BA2083 TB-EH31DF-100 or BA2084 TB-EH31DF-200 (opens in a new tab) | 1 | If you adjust the connector yourself, the same BA2085 TB DF31DF-100 (opens in a new tab) as the origin side is also acceptable |
| Hub (extension side) | Futaba | BA2085 TB DF31DF-100 (opens in a new tab) | 1 | |
| USB adapter | Futaba | 00400070-1 CONVERTER RSC-U485 JPN (opens in a new tab) | 1 | Used together with TB-RV71EH-7.4V/3W (no substitute) |
| DF11 4-pin connector | Hirose | DF11-4DS-2C (opens in a new tab) | 1 | For the power supply cable. Add 1 more if inserting a terminating resistor. |
| DF11 contact | Hirose | (as appropriate) (opens in a new tab) | 2 | Same as above (add 2 more if inserting a terminating resistor) |
| Motor power supply | (as appropriate) | (as appropriate) | 1 | The servo module is rated for 4.8โ7.2[V]; current capacity is unknown |
| Power cable | Self-made | (as needed) | | | | Tapping screw | (as needed) | (M2 tapping, 10mm) | 34 | | | Double-sided tape | (as needed) | (thin type) | (as needed) | Double-sided tape is used to fix the servo module to the link member | | Link member | (as needed) | (3D print from the files in the step directory) | 1 each | |
Construction Overview
- Replace the bottom case of each servo module with one that has a shaft
- Mark the wiring
- Remove the DF11 4-pin housing
- Replace the bottom case of the servo module
- Attach the DF11 4-pin housing (take care not to mix up the places where the signal wires are inserted)
- Screw the link member to the servo horn
- Attach the servo module to the link member with double-sided tape
- Screw the servo module holder on the base
- Make the power cable and the communication conversion cable
- Wire the connections, burn in the IDs, and check operation
Precautions
- It may be reassuring to place termination resistors at both ends of the RS-485 wiring.
- When replacing the bottom case, you need to take apart the DF11 4-pin connector once. The wire colors are the same, so be extremely careful not to mix them up.
Assembly Instructions
Please refer to the photo.
Standalone Operation Check Tool: python3 + dicot
dicot (opens in a new tab) is convenient. You can install it with pip3 install dicot.
After reading through the dicot README.md (opens in a new tab), reading the source (opens in a new tab) should help you find the names of the properties you want to access.
Serial devices can be read and written by members of the dialout group, so add your own Ubuntu user account to the dialout group. For example, if the user name is alice, run sudo adduser alice dialout and then restart.
Running on Linux
The RSC-U485 works with the FTDI driver (ftdi_sio), but the standard FTDI driver does not register the RSC-U485. To make it work immediately by hand, run the following command.
$ sudo su
# modrobe ftdi_sio
# echo 1115 0008 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id
To have it recognized automatically on future boots, create a file with any suitable name under /etc/udev/rules.d and write the following in it.
ATTR{idVendor}=="1115", ATTR{idProduct}=="0008", GROUP="dialout", MODE="0660", RUN+="/bin/sh -c '/sbin/modprobe ftdi_sio; /bin/sh -c \"echo 1115 0008\" > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"
Running on Windows
I believe it should work if you download and install the driver from the Futaba site (opens in a new tab), check which COM port it was assigned, and specify that COM port in dicot.
ros2_control ใงๅใใใจใใฎใณใใณใใฉใคใณ่ฆๆธ
ๅ จ่ปธ torque off (inactive ็ถๆ ใธ้ท็งป)
ros2 service call /controller_manager/set_hardware_component_state controller_manager_msgs/srv/SetHardwareComponentState "{name: fcs0, target_state: {id: 0, label: inactive}}"
ๅ จ่ปธ torque enable (active ็ถๆ ใธ้ท็งป)
ros2 service call /controller_manager/set_hardware_component_state controller_manager_msgs/srv/SetHardwareComponentState "{name: fcs0, target_state: {id: 0, label: active}}"
็ฎๆจ่งๅบฆใธๅไฝ๏ผใใใงใฏ [0, 0, 0, 0], ๅไฝใฏใฉใธใขใณ๏ผ
ros2 action send_goal /joint_trajectory_controller_fcs4hand2310/follow_joint_trajectory control_msgs/action/FollowJointTrajectory -f "{ trajectory: { joint_names: [ hndj0, hndj1, hndj2, hndj3 ], points : [ { positions: [0, 0, 0, 0], time_from_start: { sec: 0.5 }} ]}}"
About this repository
| File name | Overview |
|---|---|
| launch/fcs4hand2310.launch.py | Launch script. The ros2_control configuration is also coded here. |
| urdf/fcs2310.urdf | Describes the axis layout and outer shape. Used for preview. |
| urdf/fcs4hand2310ctrl.xacro | Top-level URDF. Loads fcs2310.urdf and adds the ros2_control tag and the hardware_fcs tag. |
| config/ros2_controllers_fcs4hand2310.yaml | Configuration of joint_trajectory_controller and joint_state_broadcaster |
| step/* | STEP files of the link parts (not needed to run with ros2_control) |
| pics/* | Photos taken during assembly (not needed to run with ros2_control) |
Script files
| File name | Overview |
|---|---|
| torque_free.sh | Puts ex_fcs0 (HardwareFCS) into the inactive state. During on_deactive() processing, servo off (Torque Enable = False) is sent to all servos. |
| torque_enable.sh | Puts ex_fcs0 (HardwareFCS) into the active state. During on_activate() processing, the command values are overwritten with the current values, and servo on (Torque Enable = True) is sent to all servos. |
| set_angles.py | Sends motion commands to joint_trajectory_controller_fcs4hand2310 (JointTrajectoryController). It runs ros2 action send_goal ... from python (a shortcut). |
โโโ CMakeLists.txt
โโโ Readme.md
โโโ config
โย ย โโโ ros2_controllers_fcs4hand2310.yaml
โโโ launch
โย ย โโโ fcs4hand2310.launch.py
โโโ package.xml
โโโ pics
โย ย โโโ pict00.jpg
โย ย โโโ pict01.jpg
โย ย ...
โโโ step
โย ย โโโ FCS4HAND2310_BASE.STEP
โย ย โโโ FCS4HAND2310_BASE_LID.STEP
โย ย ...
โโโ scripts
โย ย โโโ set_angles.py
โย ย โโโ torque_enable.sh
โย ย โโโ torque_free.sh
โโโ urdf
โโโ RS30x_BottomShaft.dae
โโโ fcs4hand2310.xacro
โโโ fcs2310.urdf
Files by @knaga-rgj, at commit 2f344bc, read from GitHub in your browser. Hardware license: Apache-2.0; software license: Apache-2.0. Robotheca doesn't review code: read it before running it.