The following environment is assumed.
catkin_ws/
|- DynamixelSDK_jp_custom
|- realsense-ros_jp_custom
└- DynamixelExamples
DynamixelPanTilt/
other_example_to_be_released_later/
pantilt_bringup
: is used for starting up a real machine.pantilt_gazebo
: is used for simulating in gazebo.pantilt_description
: defines 3D model for gazebo simulation or visualization.pantilt_control
: is used for controlling pantilt.
$ roslaunch pantilt_gazebo simulation_with_coke.launch
$ roslaunch pantilt_control tracking_target_color.launch
$ roslaunch pantilt_bringup pantilt_bringup.launch
$ roslaunch pantilt_control tracking_target_color.launch
puntilt_control/scripts/tracking_target.py
内にて以下の様にPose2D
型の'target_position/ratio
トピックをsubscribeしています.
rospy.Subscriber('/target_position/ratio', Pose2D, callback_target)
Pose2D
型のx
, y
フィールドの値はrealsenseの画角に対して物体の位置の割合を示します.
x
, y
ともに0
が中央,±1
が画面の端です.xが左右,yが上下です.
tracking_target
ノードではこれらの値を0
にするようにPID制御をかけています.
姿勢を表すtheta
は現状では使用しておりません.
以下のコマンドでU2D2が刺さっているUSBを特定して,BUSID
を控える
PS C:\Windows\system32> usbipd wsl list
以下のコマンドでWSLが認識するようにする.
PS C:\Windows\system32> usbipd wsl attach --distribution {Linux Distro} --busid {BUSID}
上記コマンドの反対で,WSLとの接続を解除する
PS C:\Windows\system32> usbipd wsl detach --busid {BUSID}
note: 管理者で実行する必要あり.
以下のコマンドなどでwsl側からUSBデバイスが見えていることを確認する
$ ls /dev/tty* -la
$ lsusb
$ dmesg
以下のコマンドでUSBデバイスに権限を与える <- ここで詰まった.
$ sudo chmod 777 /dev/ttyUSB0
参考 https://qiita.com/baggio/items/28c13ed8ac09fc7ebdf1#usb%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AE%E6%8E%A5%E7%B6%9A%E6%96%B9%E6%B3%95 ただし,最後のWSL kernelのBuildは不要だった.