#ROS対応ロボット(WHILL)の自律移動
##概要
ロボットを自律移動させたい.
第1回 WHILL(ROS対応)をUbuntuPCとraspi経由でDS4から動かす
第2回 urgでSLAMして自己位置推定(amcl)と自律移動(move_base)する
第3回 経路計画
第4回 物体追跡/追従
##前準備
###WHILLパッケージおよび依存パッケージのインストール
https://github.com/WHILL/ros_whill/blob/melodic-devel/package.xml
https://github.com/wjwwood/serial
mkdir -p srg_ws/src && cd srg_ws/src
git clone https://github.com/WHILL/ros_whill.git
git clone https://github.com/wjwwood/serial.git
cd .. && catkin build
##WHILLをターミナルから動かす
###WHILLを繋いでいるシリアルポートを指定
source
ubuntu@ubuntu:~/catkin_ws$ dmesg | grep tty
[ 0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 bcm2708_fb.fbwidth=0 bcm2708_fb.fbheight=0 bcm2708_fb.fbswap=1 smsc95xx.macaddr=DC:A6:32:84:C3:C1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000 net.ifnames=0 dwc_otg.lpm_enable=0 console=ttyS0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc
[ 0.000638] printk: console [tty1] enabled
[ 2.847410] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 14, base_baud = 0) is a PL011 rev2
[ 2.852118] printk: console [ttyS0] disabled
[ 2.852159] fe215040.serial: ttyS0 at MMIO 0x0 (irq = 16, base_baud = 62500000) is a 16550
[ 3.112960] printk: console [ttyS0] enabled
[ 14.393234] usb 1-1.2: pl2303 converter now attached to ttyUSB0
[ 276.511974] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
[ 857.327384] usb 1-1.2: pl2303 converter now attached to ttyUSB0
今回WHILLはttyUSB0ですね。
ROS講座にも書かれているとおり、USBはttyUSBXで命名される(ArduinoはttyACMX)ので、次のように環境変数を設定する。
export TTY_WHILL=/dev/ttyUSB0
これで準備おk
roslaunch ros_whill ros_whill.launch
rostopic pub /whill/controller/cmd_vel geometry_msgs/Twist "linear:
x: 1.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
これでWHILLが一瞬動く
##WHILLをPS4から操作できるようにする
ROSでPS4のコントローラ(DualShock4)を使う方法
Linux のコマンドラインで Bluetooth 接続
を参考にしようとしたら、raspiの方がbluetoothをonにできないという状況だったのでPCから接続することにし、ubuntu PCとraspiで通信させる。
参考
###joy stick準備
sudo apt-get install ros-melodic-joy -y
sudo apt-get install ros-melodic-joystick-drivers -y
sudo pip install ds4drv
sudo apt-get install ros-melodic-teleop-twist-joy
これで準備が完了
###DS4から動かす
以下,ROS_MASTER_URIとROS_IPは適宜自分のものに読み替えてください.
#pcのIP
export ROS_IP=192.168.201.121
#PCが有線LANのとき
export ROS_IP=192.168.201.123
#master ここではraspi
export ROS_MASTER_URI=http://192.168.201.131:11311
sudo ds4drv #start presing DS4's share button and home button long until LED flashes
rosrun joy joy_node &
rosrun teleop_twist_joy teleop_node cmd_vel:=whill/controller/cmd_vel
ssh ubuntu@192.168.201.131
export ROS_IP=192.168.201.131 ##raspiのIP
cd ~/catkin_ws/
source devel/setup.bash
roslaunch ros_whill ros_whill.launch
DS4の□ボタンを押しながら左スティックを回すといける
###エラー集
何故か急にrostopic echo /joy
が反応しなくなった
何故かは不明だがjoy関連のパッケージを消して、
sudo apt-get install ros-melodic-joy -y
sudo apt-get install ros-melodic-joystick-drivers -y
で入れ直したら解決した
もしくはこれをやり直したほうがいいかも
http://wiki.ros.org/joy/Tutorials/ConfiguringALinuxJoystick