Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 3panda/4c5edd7b131b1372b101b4f44e331e9d to your computer and use it in GitHub Desktop.
Save 3panda/4c5edd7b131b1372b101b4f44e331e9d to your computer and use it in GitHub Desktop.
RaspberryPi3b+にROS MelodicでiRobotCreate2(Roomba600)を動かすまで

※__注意未整理です __

RaspberryPi3b+にROS MelodicでiRobotCreate2(Roomba600)を動かすまで

iRobotCreate2は掃除をしないRoomba600 seriesです。 なので以下はRoomba600 seriesでも適用出来ます。

ROS Melodic

こちらを参考 http://wiki.ros.org/melodic/Installation/Ubuntu

変更点は最小構成にしたいのでros-melodic-ros-baseを入れている事

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

最小構成にしたい

sudo apt install ros-melodic-ros-base

依存関係でエラーが出たら指示どおり以下

sudo apt --fix-broken install
sudo apt install python-pip
sudo -H pip install rosdep
sudo rosdep init 
sudo rosdep update

sudo apt-get install python-catkin-tools
sudo apt install -y python-rosinstall
sudo apt install -y build-essential

catkin_makeからcatkin buildに変更する前提ですすすめる そのため必要

sudo apt install -y python-catkin-tools 

入れてみる(いらないかも)

sudo apt install python-rosinstall-generator
sudo apt install python-wstool

bashrcに記述

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc

反映

source ~/.bashrc

init(最初だけする)

source /opt/ros/melodic/setup.bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin init
source devel/setup.bash

build(何か変更したら)

source /opt/ros/melodic/setup.bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin build
source devel/setup.bash

build

Raspberry Pi3では通常4コア並列のビルドが走るそうですが、メモリ不足でフリーズするので -j2オプションで2コア下げてbuildする

catkin build create_autonomy -j2

シリアル-USB変換アダプタ→ルンバ

電圧がRaspberryPiは5vでRoombaは3.3V そのためシリアル変換をしないとRoombaが壊れる

基本的にここを参考にする https://karaage.hatenadiary.jp/entry/2017/05/12/073000

RxD→TxD TxD→RxD

RxDが受信、TxDが送信

シリアル通信がはじめてでこれが分からずに数日詰まった。

RaspberryPiからノートPCにトピックを送る

RaspberryPiとRoobaが繋がったのでRaspberryPiからノートPCにネットワーク間でのトピック通信を行う。 ノートPCからsshでラズパイに入って、ROS_HOSTNAMEとROS_MASTER_URIを設定する。

ssh <IP_RASPI3>
export ROS_HOSTNAME=<IP_RASPI3>
export ROS_MASTER_URI=http://<IP_RASPI3>:11311

前提 IPが以下の場合(※aaとかbbとかは本当は数字、説明用)

RaspberryPi IP:192.168.0.aa
ノートPC IP:192.168.0.bbb

Raspberry Pi

export ROS_IP=192.168.0.aa

ルンバと通信するためのTopicを出力するlaunchを実行

roslaunch ca_driver create_2.launch

ノートPC

ROS_MASTER_URI=http://192.168.0.aa:11311/
export ROS_IP=192.168.0.bbb
rostopic list

topicが出てくる見れるようになる

/battery/capacity
/battery/charge
/battery/charge_ratio
/battery/charging_state
/battery/current
/battery/temperature
/battery/voltage
/bumper
/check_led
/clean_button
/cmd_vel
/day_button
/debris_led
/define_song
/diagnostics
/dock
/dock_button
/dock_led
/hour_button
/ir_omni
/joint_states
/minute_button
/mode
/odom
/play_song
/power_led
/rosout
/rosout_agg
/set_ascii
/spot_button
/spot_led
/tf
/tf_static
/undock
/wheeldrop

Twistが確認出来るのでpubする

rostopic pub -1 /cmd_vel geometry_msgs/Twist -- "[2.0, 0.0, 0.0]" "[0.0, 0.0, 1.8]"

ルンバ動く!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment