Updated on: 2017-06-17
簡単なプログラムを利用してマニピュレータのサーボの動作を確認します。
サーボドライバーソフトウェアをコンパイルします。端末を起動し、以下のコマンドを実行します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
$ cd ~/Downloads/
$ git clone https://github.com/ROBOTIS-GIT/DynamixelSDK.git
$ cd DynamixelSDK/c/build/linux64/
$ make
mkdir -p ./.objects/
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c
../../src/dynamixel_sdk/group_bulk_read.c -o .objects/group_bulk_read.o
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c
../../src/dynamixel_sdk/group_bulk_write.c -o .objects/group_bulk_write.o
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c
../../src/dynamixel_sdk/group_sync_read.c -o .objects/group_sync_read.o
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c
../../src/dynamixel_sdk/group_sync_write.c -o .objects/group_sync_write.o
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c
../../src/dynamixel_sdk/packet_handler.c -o .objects/packet_handler.o
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c
../../src/dynamixel_sdk/port_handler.c -o .objects/port_handler.o
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c
../../src/dynamixel_sdk/protocol1_packet_handler.c -o .objects/protocol1_packet_handler.o
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c
../../src/dynamixel_sdk/protocol2_packet_handler.c -o .objects/protocol2_packet_handler.o
gcc -O2 -O3 -DLINUX -D_GNU_SOURCE -Wall -c -I../../include -m64 -fPIC -g -c
../../src/dynamixel_sdk_linux/port_handler_linux.c -o .objects/port_handler_linux.o
g++ -shared -fPIC -m64 -o ./libdxl_x64_c.so ./.objects/group_bulk_read.o
./.objects/group_bulk_write.o ./.objects/group_sync_read.o ./.objects/group_sync_write.o
./.objects/packet_handler.o ./.objects/port_handler.o
./.objects/protocol1_packet_handler.o ./.objects/protocol2_packet_handler.o
./.objects/port_handler_linux.o -lrt
$
サーボ確認プログラムのソースを取得します。
1
2
3
$ cd ~/Downloads/
$ git clone https://github.com/gbiggs/dynamixel_servo_check.git
$ cd dynamixel_servo_check
サーボドライバーのライブラリとヘッダーをコピーします。
1
2
3
4
$ cp -r ~/Downloads/DynamixelSDK/c/include/dynamixel_sdk/ .
$ cp ~/Downloads/DynamixelSDK/c/build/linux64/libdxl_x64_c.so .
$ ls
CMakeLists.txt dynamixel_sdk libdxl_x64_c.so LICENSE README.md servo_check.c
サーボ確認プログラムをコンパイルします。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$ mkdir build
$ cd build
$ cmake ../
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/geoff/Downloads/dynamixel_servo_check/build
$ make
[ 50%] Building C object CMakeFiles/servo_check.dir/servo_check.c.o
[100%] Linking C executable servo_check
[100%] Built target servo_check
$ ls
CMakeCache.txt CMakeFiles cmake_install.cmake Makefile servo_check
シリアルポートへアクセスするために、下記のコマンドにパーミッショングループに自分のユーザを追加します。
1
$ sudo gpasswd -a ユーザ名 dialout
上記でユーザ名
を自分のユーザ名に変更します。
上記のようにパーミッショングループにユーザを追加しないとサーボ制御ソフトウェアはハードウェアへアクセスできなくて、エラーになります。
また、 実行後は一旦ログアウトして再ログインしてください。
サーボ確認プログラムを実行しサーボの動きを確認します。
プログラムにサーボIDを指定します。CRANE+のサーボIDは1~5です。
注意:プログラムを実行すると指定したサーボは高速で真ん中の位置に移動します。電源を入れる前にマニピュレータをまっすぐ上向きに近い姿勢にしてください。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ cd ~/Downloads/dynamixel_servo_check/build/
$ ./servo_check 1
Opened port
Changed buadrate
Dynamixel has been successfully connected
[ID:003] GoalPos:512 PresPos:760
[ID:003] GoalPos:512 PresPos:757
[ID:003] GoalPos:512 PresPos:744
[ID:003] GoalPos:512 PresPos:730
[ID:003] GoalPos:512 PresPos:718
[ID:003] GoalPos:512 PresPos:705
[ID:003] GoalPos:512 PresPos:687
[ID:003] GoalPos:512 PresPos:672
[ID:003] GoalPos:512 PresPos:656
[ID:003] GoalPos:512 PresPos:640
[ID:003] GoalPos:512 PresPos:623
[ID:003] GoalPos:512 PresPos:604
[ID:003] GoalPos:512 PresPos:586
[ID:003] GoalPos:512 PresPos:564
[ID:003] GoalPos:512 PresPos:543
[ID:003] GoalPos:512 PresPos:522
1から5まで、全サーボの動作を確認しましょう。