J'ai installé Ubuntu-16.04, ROS Kinetic sur Raspberry Pi 3 et j'ai essayé d'exécuter l'exemple.
--Installation d'Ubuntu-16.04
Référence: Utilisation d'Ubuntu 14.04 avec Raspberry Pi 2 Référence: Graver l'image du système d'exploitation Raspberry Pi sur le blog Mac OS X- @ ledsun
Téléchargez l'image Ubuntu-16.04 (ubuntu-16.04-preinstalled-server-armhf + raspi3.img.xz) ci-dessous ARM/RaspberryPi - Ubuntu Wiki
Décompressez ci-dessous.
$ xz -dv ubuntu-16.04-preinstalled-server-armhf+raspi3.img.xz
Identifiez la carte SD avec diskutil list
etc. Cette fois / dev / disk2
Graver sur la carte SD.
$ diskutil unmountDisk /dev/disk2
$ sudo dd if=ubuntu-16.04-preinstalled-server-armhf+raspi3.img of=/dev/rdisk2 bs=1m
L'adresse IP de RPi pour Roomba est supposée être fixée à «192.168.0.1».
$ sudo apt-get install -y wpasupplicant wireless-tools linunx-firmware
$ sudo vi /etc/network/interfaces.d/wlan.cfg
$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
$ sudo vi /etc/default/networking
$ sudo ifup wlan0
text:/etc/network/interfaces.d/wlan.cfg
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0 #Dans votre propre environnement
gateway 192.168.0.254 #Ensemble
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
/etc/wpa_supplicant/wpa_supplicant.conf
update_config=1
network={
proto=WPA2
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
ssid="your_ssid"
psk=**************** #Voir ci-dessous
}
/etc/default/networking
CONFIGURTE_INTERFACES=no
** Référence ** La génération de phrase secrète est la suivante
$ sudo sh -c "wpa_passphrase your_ssid > /etc/wpa_supplicant/wpa_supplicant.conf"
# reading passphrase from stdin
pass_phrase
network={
ssid="your_ssid"
#psk="pass_phrase"
psk=****************
}
Référence: Installer ROS kinetic sur Ubuntu 16.04 LTS de Raspberry Pi 3 | GarretCafe
Presque identique à Exemple de ROS facile à exécuter sur une machine virtuelle.
$ sudo apt-get update
$ sudo apt-get install -y chrony ntpdate
$ sudo ntpdate ntp.nict.jp
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install -y ros-kinetic-ros-base # No GUI tools
$ sudo rosdep init
$ rosdep update
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo apt-get install -y python-rosinstall
$ source /opt/ros/kinetic/setup.bash
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws/
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
$ vi ~/.bashrc
$ source ~/.bashrc
.bashrc
source /opt/ros/kinetic/setup.bash
source ~/catkin_ws/devel/setup.bash
export ROS_IP=192.168.0.1
export ROS_MASTER_URI=http://${ROS_IP}:11311
export DISPLAY=:0
alias cw='cd ~/catkin_ws'
alias cs='cd ~/catkin_ws/src'
alias cm='cd ~/catkin_ws && catkin_make'
Référence: Exécutez Roomba avec ROS (compatible catkin) - blog Cryborg Robotics Référence: Catkin Super Introduction (Partie 3) - Utilisez le package rosbuild: Donnez un bouquet à Hanaoka
Référentiel: https://github.com/NetBUG/roomba_500_series
Si c'est une fois, catkin_make
ou catkin_make install
échouera, mais s'il est exécuté plusieurs fois, il réussira finalement.
$ cd ~/catkin_ws/src
$ git clone https://github.com/NetBUG/cereal_port
$ git clone https://github.com/NetBUG/roomba_500_series
$ rosdep install cerial_port
$ rosdep install roomba_500_series
$ cd ~/catkin_ws
$ catkin_make
$ catkin_make install
$ cd ~/catkin_ws/src
$ catkin_create_pkg roomba rospy std_msgs
roscore démarre sans autorisation même s'il n'est pas décrit.
$ roscd roomba
$ mkdir launch
$ mkdir scripts
$ vi launch/roomba.launch
$ vi scripts/sample.py
roomba.launch
<launch>
<node pkg="roomba_500_series" name="roomba560_node" type="roomba560_node" />
</launch>
sample.py
#!/usr/bin/env python
import rospy
from geometry_msgs.msg import Twist
rospy.init_node("sample")
pub = rospy.Publisher("cmd_vel", Twist, queue_size=10)
while not rospy.is_shutdown():
vel = Twist()
direction = raw_input("f: forward, b: backward, l: left, r: right, s: stop, q: quit > ")
if "f" in direction:
vel.linear.x = +0.1
if "b" in direction:
vel.linear.x = -0.1
if "l" in direction:
vel.angular.z = +1.0
if "r" in direction:
vel.angular.z = -1.0
if "s" in direction:
vel.linear.x = 0.0
vel.angular.z = 0.0
if "q" in direction:
break
print vel
pub.publish(vel)
$ roscd roomba_ctl/scripts
$ chmod 755 sample.py
catkin_make
$ cd ~/catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
roslaunch
$ roslaunch roomba roomba.launch
Transmission directe de rostopic
$ export ROS_IP=<Mon adresse IP> #Vérifier avec ifconfig
$ rostopic pub -1 cmd_vel geometry_msgs/Twist "[0, 0, 0]" "[0, 0, 0.1]" && rostopic pub -1 cmd_vel geometry_msgs/Twist "[0, 0, 0]" "[0, 0, 0]"
Ou ci-dessous (opérez à partir de sample.py)
$ export ROS_IP=<Mon adresse IP> #Vérifier avec ifconfig
$ roscd roomba
$ ./sample.py
Recommended Posts